@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.
Files changed (498) hide show
  1. package/CHANGELOG.md +1 -11
  2. package/dist/PerpsController.cjs +66 -2224
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts +79 -933
  5. package/dist/PerpsController.d.cts.map +1 -1
  6. package/dist/PerpsController.d.mts +79 -933
  7. package/dist/PerpsController.d.mts.map +1 -1
  8. package/dist/PerpsController.mjs +64 -2221
  9. package/dist/PerpsController.mjs.map +1 -1
  10. package/dist/index.cjs +1 -32
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +2 -6
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.mts +2 -6
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +1 -9
  17. package/dist/index.mjs.map +1 -1
  18. package/package.json +4 -19
  19. package/dist/__mocks__/hyperliquidMock.cjs +0 -68
  20. package/dist/__mocks__/hyperliquidMock.cjs.map +0 -1
  21. package/dist/__mocks__/hyperliquidMock.d.cts +0 -15
  22. package/dist/__mocks__/hyperliquidMock.d.cts.map +0 -1
  23. package/dist/__mocks__/hyperliquidMock.d.mts +0 -15
  24. package/dist/__mocks__/hyperliquidMock.d.mts.map +0 -1
  25. package/dist/__mocks__/hyperliquidMock.mjs +0 -65
  26. package/dist/__mocks__/hyperliquidMock.mjs.map +0 -1
  27. package/dist/__mocks__/providerMocks.cjs +0 -144
  28. package/dist/__mocks__/providerMocks.cjs.map +0 -1
  29. package/dist/__mocks__/providerMocks.d.cts +0 -44
  30. package/dist/__mocks__/providerMocks.d.cts.map +0 -1
  31. package/dist/__mocks__/providerMocks.d.mts +0 -44
  32. package/dist/__mocks__/providerMocks.d.mts.map +0 -1
  33. package/dist/__mocks__/providerMocks.mjs +0 -136
  34. package/dist/__mocks__/providerMocks.mjs.map +0 -1
  35. package/dist/__mocks__/serviceMocks.cjs +0 -187
  36. package/dist/__mocks__/serviceMocks.cjs.map +0 -1
  37. package/dist/__mocks__/serviceMocks.d.cts +0 -58
  38. package/dist/__mocks__/serviceMocks.d.cts.map +0 -1
  39. package/dist/__mocks__/serviceMocks.d.mts +0 -58
  40. package/dist/__mocks__/serviceMocks.d.mts.map +0 -1
  41. package/dist/__mocks__/serviceMocks.mjs +0 -180
  42. package/dist/__mocks__/serviceMocks.mjs.map +0 -1
  43. package/dist/aggregation/SubscriptionMultiplexer.cjs +0 -459
  44. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +0 -1
  45. package/dist/aggregation/SubscriptionMultiplexer.d.cts +0 -222
  46. package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +0 -1
  47. package/dist/aggregation/SubscriptionMultiplexer.d.mts +0 -222
  48. package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +0 -1
  49. package/dist/aggregation/SubscriptionMultiplexer.mjs +0 -455
  50. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +0 -1
  51. package/dist/aggregation/index.cjs +0 -9
  52. package/dist/aggregation/index.cjs.map +0 -1
  53. package/dist/aggregation/index.d.cts +0 -6
  54. package/dist/aggregation/index.d.cts.map +0 -1
  55. package/dist/aggregation/index.d.mts +0 -6
  56. package/dist/aggregation/index.d.mts.map +0 -1
  57. package/dist/aggregation/index.mjs +0 -5
  58. package/dist/aggregation/index.mjs.map +0 -1
  59. package/dist/constants/eventNames.cjs +0 -117
  60. package/dist/constants/eventNames.cjs.map +0 -1
  61. package/dist/constants/eventNames.d.cts +0 -106
  62. package/dist/constants/eventNames.d.cts.map +0 -1
  63. package/dist/constants/eventNames.d.mts +0 -106
  64. package/dist/constants/eventNames.d.mts.map +0 -1
  65. package/dist/constants/eventNames.mjs +0 -114
  66. package/dist/constants/eventNames.mjs.map +0 -1
  67. package/dist/constants/hyperLiquidConfig.cjs +0 -366
  68. package/dist/constants/hyperLiquidConfig.cjs.map +0 -1
  69. package/dist/constants/hyperLiquidConfig.d.cts +0 -276
  70. package/dist/constants/hyperLiquidConfig.d.cts.map +0 -1
  71. package/dist/constants/hyperLiquidConfig.d.mts +0 -276
  72. package/dist/constants/hyperLiquidConfig.d.mts.map +0 -1
  73. package/dist/constants/hyperLiquidConfig.mjs +0 -357
  74. package/dist/constants/hyperLiquidConfig.mjs.map +0 -1
  75. package/dist/constants/index.cjs +0 -23
  76. package/dist/constants/index.cjs.map +0 -1
  77. package/dist/constants/index.d.cts +0 -7
  78. package/dist/constants/index.d.cts.map +0 -1
  79. package/dist/constants/index.d.mts +0 -7
  80. package/dist/constants/index.d.mts.map +0 -1
  81. package/dist/constants/index.mjs +0 -7
  82. package/dist/constants/index.mjs.map +0 -1
  83. package/dist/constants/orderTypes.cjs +0 -31
  84. package/dist/constants/orderTypes.cjs.map +0 -1
  85. package/dist/constants/orderTypes.d.cts +0 -19
  86. package/dist/constants/orderTypes.d.cts.map +0 -1
  87. package/dist/constants/orderTypes.d.mts +0 -19
  88. package/dist/constants/orderTypes.d.mts.map +0 -1
  89. package/dist/constants/orderTypes.mjs +0 -27
  90. package/dist/constants/orderTypes.mjs.map +0 -1
  91. package/dist/constants/performanceMetrics.cjs +0 -61
  92. package/dist/constants/performanceMetrics.cjs.map +0 -1
  93. package/dist/constants/performanceMetrics.d.cts +0 -44
  94. package/dist/constants/performanceMetrics.d.cts.map +0 -1
  95. package/dist/constants/performanceMetrics.d.mts +0 -44
  96. package/dist/constants/performanceMetrics.d.mts.map +0 -1
  97. package/dist/constants/performanceMetrics.mjs +0 -58
  98. package/dist/constants/performanceMetrics.mjs.map +0 -1
  99. package/dist/constants/perpsConfig.cjs +0 -461
  100. package/dist/constants/perpsConfig.cjs.map +0 -1
  101. package/dist/constants/perpsConfig.d.cts +0 -343
  102. package/dist/constants/perpsConfig.d.cts.map +0 -1
  103. package/dist/constants/perpsConfig.d.mts +0 -343
  104. package/dist/constants/perpsConfig.d.mts.map +0 -1
  105. package/dist/constants/perpsConfig.mjs +0 -458
  106. package/dist/constants/perpsConfig.mjs.map +0 -1
  107. package/dist/constants/perpsErrorCodes.cjs +0 -79
  108. package/dist/constants/perpsErrorCodes.cjs.map +0 -1
  109. package/dist/constants/perpsErrorCodes.d.cts +0 -64
  110. package/dist/constants/perpsErrorCodes.d.cts.map +0 -1
  111. package/dist/constants/perpsErrorCodes.d.mts +0 -64
  112. package/dist/constants/perpsErrorCodes.d.mts.map +0 -1
  113. package/dist/constants/perpsErrorCodes.mjs +0 -76
  114. package/dist/constants/perpsErrorCodes.mjs.map +0 -1
  115. package/dist/platform-services/HyperLiquidClientService.cjs +0 -857
  116. package/dist/platform-services/HyperLiquidClientService.cjs.map +0 -1
  117. package/dist/platform-services/HyperLiquidClientService.d.cts +0 -263
  118. package/dist/platform-services/HyperLiquidClientService.d.cts.map +0 -1
  119. package/dist/platform-services/HyperLiquidClientService.d.mts +0 -263
  120. package/dist/platform-services/HyperLiquidClientService.d.mts.map +0 -1
  121. package/dist/platform-services/HyperLiquidClientService.mjs +0 -853
  122. package/dist/platform-services/HyperLiquidClientService.mjs.map +0 -1
  123. package/dist/platform-services/HyperLiquidSubscriptionService.cjs +0 -2170
  124. package/dist/platform-services/HyperLiquidSubscriptionService.cjs.map +0 -1
  125. package/dist/platform-services/HyperLiquidSubscriptionService.d.cts +0 -424
  126. package/dist/platform-services/HyperLiquidSubscriptionService.d.cts.map +0 -1
  127. package/dist/platform-services/HyperLiquidSubscriptionService.d.mts +0 -424
  128. package/dist/platform-services/HyperLiquidSubscriptionService.d.mts.map +0 -1
  129. package/dist/platform-services/HyperLiquidSubscriptionService.mjs +0 -2166
  130. package/dist/platform-services/HyperLiquidSubscriptionService.mjs.map +0 -1
  131. package/dist/platform-services/HyperLiquidWalletService.cjs +0 -140
  132. package/dist/platform-services/HyperLiquidWalletService.cjs.map +0 -1
  133. package/dist/platform-services/HyperLiquidWalletService.d.cts +0 -78
  134. package/dist/platform-services/HyperLiquidWalletService.d.cts.map +0 -1
  135. package/dist/platform-services/HyperLiquidWalletService.d.mts +0 -78
  136. package/dist/platform-services/HyperLiquidWalletService.d.mts.map +0 -1
  137. package/dist/platform-services/HyperLiquidWalletService.mjs +0 -136
  138. package/dist/platform-services/HyperLiquidWalletService.mjs.map +0 -1
  139. package/dist/providers/AggregatedPerpsProvider.cjs +0 -777
  140. package/dist/providers/AggregatedPerpsProvider.cjs.map +0 -1
  141. package/dist/providers/AggregatedPerpsProvider.d.cts +0 -466
  142. package/dist/providers/AggregatedPerpsProvider.d.cts.map +0 -1
  143. package/dist/providers/AggregatedPerpsProvider.d.mts +0 -466
  144. package/dist/providers/AggregatedPerpsProvider.d.mts.map +0 -1
  145. package/dist/providers/AggregatedPerpsProvider.mjs +0 -773
  146. package/dist/providers/AggregatedPerpsProvider.mjs.map +0 -1
  147. package/dist/providers/HyperLiquidProvider.cjs +0 -5172
  148. package/dist/providers/HyperLiquidProvider.cjs.map +0 -1
  149. package/dist/providers/HyperLiquidProvider.d.cts +0 -881
  150. package/dist/providers/HyperLiquidProvider.d.cts.map +0 -1
  151. package/dist/providers/HyperLiquidProvider.d.mts +0 -881
  152. package/dist/providers/HyperLiquidProvider.d.mts.map +0 -1
  153. package/dist/providers/HyperLiquidProvider.mjs +0 -5168
  154. package/dist/providers/HyperLiquidProvider.mjs.map +0 -1
  155. package/dist/providers/index.cjs +0 -11
  156. package/dist/providers/index.cjs.map +0 -1
  157. package/dist/providers/index.d.cts +0 -6
  158. package/dist/providers/index.d.cts.map +0 -1
  159. package/dist/providers/index.d.mts +0 -6
  160. package/dist/providers/index.d.mts.map +0 -1
  161. package/dist/providers/index.mjs +0 -6
  162. package/dist/providers/index.mjs.map +0 -1
  163. package/dist/routing/ProviderRouter.cjs +0 -148
  164. package/dist/routing/ProviderRouter.cjs.map +0 -1
  165. package/dist/routing/ProviderRouter.d.cts +0 -124
  166. package/dist/routing/ProviderRouter.d.cts.map +0 -1
  167. package/dist/routing/ProviderRouter.d.mts +0 -124
  168. package/dist/routing/ProviderRouter.d.mts.map +0 -1
  169. package/dist/routing/ProviderRouter.mjs +0 -144
  170. package/dist/routing/ProviderRouter.mjs.map +0 -1
  171. package/dist/routing/index.cjs +0 -9
  172. package/dist/routing/index.cjs.map +0 -1
  173. package/dist/routing/index.d.cts +0 -6
  174. package/dist/routing/index.d.cts.map +0 -1
  175. package/dist/routing/index.d.mts +0 -6
  176. package/dist/routing/index.d.mts.map +0 -1
  177. package/dist/routing/index.mjs +0 -5
  178. package/dist/routing/index.mjs.map +0 -1
  179. package/dist/selectors.cjs +0 -161
  180. package/dist/selectors.cjs.map +0 -1
  181. package/dist/selectors.d.cts +0 -345
  182. package/dist/selectors.d.cts.map +0 -1
  183. package/dist/selectors.d.mts +0 -345
  184. package/dist/selectors.d.mts.map +0 -1
  185. package/dist/selectors.mjs +0 -153
  186. package/dist/selectors.mjs.map +0 -1
  187. package/dist/services/AccountService.cjs +0 -313
  188. package/dist/services/AccountService.cjs.map +0 -1
  189. package/dist/services/AccountService.d.cts +0 -53
  190. package/dist/services/AccountService.d.cts.map +0 -1
  191. package/dist/services/AccountService.d.mts +0 -53
  192. package/dist/services/AccountService.d.mts.map +0 -1
  193. package/dist/services/AccountService.mjs +0 -309
  194. package/dist/services/AccountService.mjs.map +0 -1
  195. package/dist/services/DataLakeService.cjs +0 -219
  196. package/dist/services/DataLakeService.cjs.map +0 -1
  197. package/dist/services/DataLakeService.d.cts +0 -49
  198. package/dist/services/DataLakeService.d.cts.map +0 -1
  199. package/dist/services/DataLakeService.d.mts +0 -49
  200. package/dist/services/DataLakeService.d.mts.map +0 -1
  201. package/dist/services/DataLakeService.mjs +0 -215
  202. package/dist/services/DataLakeService.mjs.map +0 -1
  203. package/dist/services/DepositService.cjs +0 -96
  204. package/dist/services/DepositService.cjs.map +0 -1
  205. package/dist/services/DepositService.d.cts +0 -37
  206. package/dist/services/DepositService.d.cts.map +0 -1
  207. package/dist/services/DepositService.d.mts +0 -37
  208. package/dist/services/DepositService.d.mts.map +0 -1
  209. package/dist/services/DepositService.mjs +0 -92
  210. package/dist/services/DepositService.mjs.map +0 -1
  211. package/dist/services/EligibilityService.cjs +0 -156
  212. package/dist/services/EligibilityService.cjs.map +0 -1
  213. package/dist/services/EligibilityService.d.cts +0 -48
  214. package/dist/services/EligibilityService.d.cts.map +0 -1
  215. package/dist/services/EligibilityService.d.mts +0 -48
  216. package/dist/services/EligibilityService.d.mts.map +0 -1
  217. package/dist/services/EligibilityService.mjs +0 -152
  218. package/dist/services/EligibilityService.mjs.map +0 -1
  219. package/dist/services/FeatureFlagConfigurationService.cjs +0 -258
  220. package/dist/services/FeatureFlagConfigurationService.cjs.map +0 -1
  221. package/dist/services/FeatureFlagConfigurationService.d.cts +0 -100
  222. package/dist/services/FeatureFlagConfigurationService.d.cts.map +0 -1
  223. package/dist/services/FeatureFlagConfigurationService.d.mts +0 -100
  224. package/dist/services/FeatureFlagConfigurationService.d.mts.map +0 -1
  225. package/dist/services/FeatureFlagConfigurationService.mjs +0 -254
  226. package/dist/services/FeatureFlagConfigurationService.mjs.map +0 -1
  227. package/dist/services/MarketDataService.cjs +0 -875
  228. package/dist/services/MarketDataService.cjs.map +0 -1
  229. package/dist/services/MarketDataService.d.cts +0 -289
  230. package/dist/services/MarketDataService.d.cts.map +0 -1
  231. package/dist/services/MarketDataService.d.mts +0 -289
  232. package/dist/services/MarketDataService.d.mts.map +0 -1
  233. package/dist/services/MarketDataService.mjs +0 -871
  234. package/dist/services/MarketDataService.mjs.map +0 -1
  235. package/dist/services/RewardsIntegrationService.cjs +0 -94
  236. package/dist/services/RewardsIntegrationService.cjs.map +0 -1
  237. package/dist/services/RewardsIntegrationService.d.cts +0 -30
  238. package/dist/services/RewardsIntegrationService.d.cts.map +0 -1
  239. package/dist/services/RewardsIntegrationService.d.mts +0 -30
  240. package/dist/services/RewardsIntegrationService.d.mts.map +0 -1
  241. package/dist/services/RewardsIntegrationService.mjs +0 -90
  242. package/dist/services/RewardsIntegrationService.mjs.map +0 -1
  243. package/dist/services/ServiceContext.cjs +0 -3
  244. package/dist/services/ServiceContext.cjs.map +0 -1
  245. package/dist/services/ServiceContext.d.cts +0 -110
  246. package/dist/services/ServiceContext.d.cts.map +0 -1
  247. package/dist/services/ServiceContext.d.mts +0 -110
  248. package/dist/services/ServiceContext.d.mts.map +0 -1
  249. package/dist/services/ServiceContext.mjs +0 -2
  250. package/dist/services/ServiceContext.mjs.map +0 -1
  251. package/dist/services/TradingService.cjs +0 -1481
  252. package/dist/services/TradingService.cjs.map +0 -1
  253. package/dist/services/TradingService.d.cts +0 -308
  254. package/dist/services/TradingService.d.cts.map +0 -1
  255. package/dist/services/TradingService.d.mts +0 -308
  256. package/dist/services/TradingService.d.mts.map +0 -1
  257. package/dist/services/TradingService.mjs +0 -1477
  258. package/dist/services/TradingService.mjs.map +0 -1
  259. package/dist/services/index.cjs +0 -26
  260. package/dist/services/index.cjs.map +0 -1
  261. package/dist/services/index.d.cts +0 -11
  262. package/dist/services/index.d.cts.map +0 -1
  263. package/dist/services/index.d.mts +0 -11
  264. package/dist/services/index.d.mts.map +0 -1
  265. package/dist/services/index.mjs +0 -10
  266. package/dist/services/index.mjs.map +0 -1
  267. package/dist/services/utils.cjs +0 -16
  268. package/dist/services/utils.cjs.map +0 -1
  269. package/dist/services/utils.d.cts +0 -8
  270. package/dist/services/utils.d.cts.map +0 -1
  271. package/dist/services/utils.d.mts +0 -8
  272. package/dist/services/utils.d.mts.map +0 -1
  273. package/dist/services/utils.mjs +0 -12
  274. package/dist/services/utils.mjs.map +0 -1
  275. package/dist/types/chart.cjs +0 -42
  276. package/dist/types/chart.cjs.map +0 -1
  277. package/dist/types/chart.d.cts +0 -62
  278. package/dist/types/chart.d.cts.map +0 -1
  279. package/dist/types/chart.d.mts +0 -62
  280. package/dist/types/chart.d.mts.map +0 -1
  281. package/dist/types/chart.mjs +0 -39
  282. package/dist/types/chart.mjs.map +0 -1
  283. package/dist/types/hyperliquid-types.cjs +0 -3
  284. package/dist/types/hyperliquid-types.cjs.map +0 -1
  285. package/dist/types/hyperliquid-types.d.cts +0 -52
  286. package/dist/types/hyperliquid-types.d.cts.map +0 -1
  287. package/dist/types/hyperliquid-types.d.mts +0 -52
  288. package/dist/types/hyperliquid-types.d.mts.map +0 -1
  289. package/dist/types/hyperliquid-types.mjs +0 -2
  290. package/dist/types/hyperliquid-types.mjs.map +0 -1
  291. package/dist/types/index.cjs +0 -96
  292. package/dist/types/index.cjs.map +0 -1
  293. package/dist/types/index.d.cts +0 -1153
  294. package/dist/types/index.d.cts.map +0 -1
  295. package/dist/types/index.d.mts +0 -1153
  296. package/dist/types/index.d.mts.map +0 -1
  297. package/dist/types/index.mjs +0 -79
  298. package/dist/types/index.mjs.map +0 -1
  299. package/dist/types/transactionTypes.cjs +0 -28
  300. package/dist/types/transactionTypes.cjs.map +0 -1
  301. package/dist/types/transactionTypes.d.cts +0 -64
  302. package/dist/types/transactionTypes.d.cts.map +0 -1
  303. package/dist/types/transactionTypes.d.mts +0 -64
  304. package/dist/types/transactionTypes.d.mts.map +0 -1
  305. package/dist/types/transactionTypes.mjs +0 -23
  306. package/dist/types/transactionTypes.mjs.map +0 -1
  307. package/dist/utils/accountUtils.cjs +0 -65
  308. package/dist/utils/accountUtils.cjs.map +0 -1
  309. package/dist/utils/accountUtils.d.cts +0 -26
  310. package/dist/utils/accountUtils.d.cts.map +0 -1
  311. package/dist/utils/accountUtils.d.mts +0 -26
  312. package/dist/utils/accountUtils.d.mts.map +0 -1
  313. package/dist/utils/accountUtils.mjs +0 -61
  314. package/dist/utils/accountUtils.mjs.map +0 -1
  315. package/dist/utils/amountConversion.cjs +0 -61
  316. package/dist/utils/amountConversion.cjs.map +0 -1
  317. package/dist/utils/amountConversion.d.cts +0 -16
  318. package/dist/utils/amountConversion.d.cts.map +0 -1
  319. package/dist/utils/amountConversion.d.mts +0 -16
  320. package/dist/utils/amountConversion.d.mts.map +0 -1
  321. package/dist/utils/amountConversion.mjs +0 -54
  322. package/dist/utils/amountConversion.mjs.map +0 -1
  323. package/dist/utils/chartUtils.cjs +0 -98
  324. package/dist/utils/chartUtils.cjs.map +0 -1
  325. package/dist/utils/chartUtils.d.cts +0 -14
  326. package/dist/utils/chartUtils.d.cts.map +0 -1
  327. package/dist/utils/chartUtils.d.mts +0 -14
  328. package/dist/utils/chartUtils.d.mts.map +0 -1
  329. package/dist/utils/chartUtils.mjs +0 -94
  330. package/dist/utils/chartUtils.mjs.map +0 -1
  331. package/dist/utils/errorUtils.cjs +0 -22
  332. package/dist/utils/errorUtils.cjs.map +0 -1
  333. package/dist/utils/errorUtils.d.cts +0 -13
  334. package/dist/utils/errorUtils.d.cts.map +0 -1
  335. package/dist/utils/errorUtils.d.mts +0 -13
  336. package/dist/utils/errorUtils.d.mts.map +0 -1
  337. package/dist/utils/errorUtils.mjs +0 -18
  338. package/dist/utils/errorUtils.mjs.map +0 -1
  339. package/dist/utils/formatUtils.cjs +0 -987
  340. package/dist/utils/formatUtils.cjs.map +0 -1
  341. package/dist/utils/formatUtils.d.cts +0 -387
  342. package/dist/utils/formatUtils.d.cts.map +0 -1
  343. package/dist/utils/formatUtils.d.mts +0 -387
  344. package/dist/utils/formatUtils.d.mts.map +0 -1
  345. package/dist/utils/formatUtils.mjs +0 -966
  346. package/dist/utils/formatUtils.mjs.map +0 -1
  347. package/dist/utils/hyperLiquidAdapter.cjs +0 -454
  348. package/dist/utils/hyperLiquidAdapter.cjs.map +0 -1
  349. package/dist/utils/hyperLiquidAdapter.d.cts +0 -158
  350. package/dist/utils/hyperLiquidAdapter.d.cts.map +0 -1
  351. package/dist/utils/hyperLiquidAdapter.d.mts +0 -158
  352. package/dist/utils/hyperLiquidAdapter.d.mts.map +0 -1
  353. package/dist/utils/hyperLiquidAdapter.mjs +0 -439
  354. package/dist/utils/hyperLiquidAdapter.mjs.map +0 -1
  355. package/dist/utils/hyperLiquidOrderBookProcessor.cjs +0 -89
  356. package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +0 -1
  357. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +0 -58
  358. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +0 -1
  359. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +0 -58
  360. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +0 -1
  361. package/dist/utils/hyperLiquidOrderBookProcessor.mjs +0 -84
  362. package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +0 -1
  363. package/dist/utils/hyperLiquidValidation.cjs +0 -426
  364. package/dist/utils/hyperLiquidValidation.cjs.map +0 -1
  365. package/dist/utils/hyperLiquidValidation.d.cts +0 -143
  366. package/dist/utils/hyperLiquidValidation.d.cts.map +0 -1
  367. package/dist/utils/hyperLiquidValidation.d.mts +0 -143
  368. package/dist/utils/hyperLiquidValidation.d.mts.map +0 -1
  369. package/dist/utils/hyperLiquidValidation.mjs +0 -413
  370. package/dist/utils/hyperLiquidValidation.mjs.map +0 -1
  371. package/dist/utils/idUtils.cjs +0 -50
  372. package/dist/utils/idUtils.cjs.map +0 -1
  373. package/dist/utils/idUtils.d.cts +0 -38
  374. package/dist/utils/idUtils.d.cts.map +0 -1
  375. package/dist/utils/idUtils.d.mts +0 -38
  376. package/dist/utils/idUtils.d.mts.map +0 -1
  377. package/dist/utils/idUtils.mjs +0 -42
  378. package/dist/utils/idUtils.mjs.map +0 -1
  379. package/dist/utils/marginUtils.cjs +0 -137
  380. package/dist/utils/marginUtils.cjs.map +0 -1
  381. package/dist/utils/marginUtils.d.cts +0 -64
  382. package/dist/utils/marginUtils.d.cts.map +0 -1
  383. package/dist/utils/marginUtils.d.mts +0 -64
  384. package/dist/utils/marginUtils.d.mts.map +0 -1
  385. package/dist/utils/marginUtils.mjs +0 -131
  386. package/dist/utils/marginUtils.mjs.map +0 -1
  387. package/dist/utils/marketDataTransform.cjs +0 -227
  388. package/dist/utils/marketDataTransform.cjs.map +0 -1
  389. package/dist/utils/marketDataTransform.d.cts +0 -45
  390. package/dist/utils/marketDataTransform.d.cts.map +0 -1
  391. package/dist/utils/marketDataTransform.d.mts +0 -45
  392. package/dist/utils/marketDataTransform.d.mts.map +0 -1
  393. package/dist/utils/marketDataTransform.mjs +0 -220
  394. package/dist/utils/marketDataTransform.mjs.map +0 -1
  395. package/dist/utils/marketUtils.cjs +0 -420
  396. package/dist/utils/marketUtils.cjs.map +0 -1
  397. package/dist/utils/marketUtils.d.cts +0 -227
  398. package/dist/utils/marketUtils.d.cts.map +0 -1
  399. package/dist/utils/marketUtils.d.mts +0 -227
  400. package/dist/utils/marketUtils.d.mts.map +0 -1
  401. package/dist/utils/marketUtils.mjs +0 -404
  402. package/dist/utils/marketUtils.mjs.map +0 -1
  403. package/dist/utils/orderBookGrouping.cjs +0 -151
  404. package/dist/utils/orderBookGrouping.cjs.map +0 -1
  405. package/dist/utils/orderBookGrouping.d.cts +0 -76
  406. package/dist/utils/orderBookGrouping.d.cts.map +0 -1
  407. package/dist/utils/orderBookGrouping.d.mts +0 -76
  408. package/dist/utils/orderBookGrouping.d.mts.map +0 -1
  409. package/dist/utils/orderBookGrouping.mjs +0 -143
  410. package/dist/utils/orderBookGrouping.mjs.map +0 -1
  411. package/dist/utils/orderCalculations.cjs +0 -283
  412. package/dist/utils/orderCalculations.cjs.map +0 -1
  413. package/dist/utils/orderCalculations.d.cts +0 -107
  414. package/dist/utils/orderCalculations.d.cts.map +0 -1
  415. package/dist/utils/orderCalculations.d.mts +0 -107
  416. package/dist/utils/orderCalculations.d.mts.map +0 -1
  417. package/dist/utils/orderCalculations.mjs +0 -274
  418. package/dist/utils/orderCalculations.mjs.map +0 -1
  419. package/dist/utils/orderUtils.cjs +0 -159
  420. package/dist/utils/orderUtils.cjs.map +0 -1
  421. package/dist/utils/orderUtils.d.cts +0 -66
  422. package/dist/utils/orderUtils.d.cts.map +0 -1
  423. package/dist/utils/orderUtils.d.mts +0 -66
  424. package/dist/utils/orderUtils.d.mts.map +0 -1
  425. package/dist/utils/orderUtils.mjs +0 -151
  426. package/dist/utils/orderUtils.mjs.map +0 -1
  427. package/dist/utils/pnlCalculations.cjs +0 -107
  428. package/dist/utils/pnlCalculations.cjs.map +0 -1
  429. package/dist/utils/pnlCalculations.d.cts +0 -79
  430. package/dist/utils/pnlCalculations.d.cts.map +0 -1
  431. package/dist/utils/pnlCalculations.d.mts +0 -79
  432. package/dist/utils/pnlCalculations.d.mts.map +0 -1
  433. package/dist/utils/pnlCalculations.mjs +0 -97
  434. package/dist/utils/pnlCalculations.mjs.map +0 -1
  435. package/dist/utils/positionCalculations.cjs +0 -176
  436. package/dist/utils/positionCalculations.cjs.map +0 -1
  437. package/dist/utils/positionCalculations.d.cts +0 -85
  438. package/dist/utils/positionCalculations.d.cts.map +0 -1
  439. package/dist/utils/positionCalculations.d.mts +0 -85
  440. package/dist/utils/positionCalculations.d.mts.map +0 -1
  441. package/dist/utils/positionCalculations.mjs +0 -165
  442. package/dist/utils/positionCalculations.mjs.map +0 -1
  443. package/dist/utils/sortMarkets.cjs +0 -88
  444. package/dist/utils/sortMarkets.cjs.map +0 -1
  445. package/dist/utils/sortMarkets.d.cts +0 -21
  446. package/dist/utils/sortMarkets.d.cts.map +0 -1
  447. package/dist/utils/sortMarkets.d.mts +0 -21
  448. package/dist/utils/sortMarkets.d.mts.map +0 -1
  449. package/dist/utils/sortMarkets.mjs +0 -84
  450. package/dist/utils/sortMarkets.mjs.map +0 -1
  451. package/dist/utils/standaloneInfoClient.cjs +0 -34
  452. package/dist/utils/standaloneInfoClient.cjs.map +0 -1
  453. package/dist/utils/standaloneInfoClient.d.cts +0 -31
  454. package/dist/utils/standaloneInfoClient.d.cts.map +0 -1
  455. package/dist/utils/standaloneInfoClient.d.mts +0 -31
  456. package/dist/utils/standaloneInfoClient.d.mts.map +0 -1
  457. package/dist/utils/standaloneInfoClient.mjs +0 -30
  458. package/dist/utils/standaloneInfoClient.mjs.map +0 -1
  459. package/dist/utils/stringParseUtils.cjs +0 -49
  460. package/dist/utils/stringParseUtils.cjs.map +0 -1
  461. package/dist/utils/stringParseUtils.d.cts +0 -35
  462. package/dist/utils/stringParseUtils.d.cts.map +0 -1
  463. package/dist/utils/stringParseUtils.d.mts +0 -35
  464. package/dist/utils/stringParseUtils.d.mts.map +0 -1
  465. package/dist/utils/stringParseUtils.mjs +0 -44
  466. package/dist/utils/stringParseUtils.mjs.map +0 -1
  467. package/dist/utils/time.cjs +0 -37
  468. package/dist/utils/time.cjs.map +0 -1
  469. package/dist/utils/time.d.cts +0 -17
  470. package/dist/utils/time.d.cts.map +0 -1
  471. package/dist/utils/time.d.mts +0 -17
  472. package/dist/utils/time.d.mts.map +0 -1
  473. package/dist/utils/time.mjs +0 -33
  474. package/dist/utils/time.mjs.map +0 -1
  475. package/dist/utils/tpslValidation.cjs +0 -505
  476. package/dist/utils/tpslValidation.cjs.map +0 -1
  477. package/dist/utils/tpslValidation.d.cts +0 -182
  478. package/dist/utils/tpslValidation.d.cts.map +0 -1
  479. package/dist/utils/tpslValidation.d.mts +0 -182
  480. package/dist/utils/tpslValidation.d.mts.map +0 -1
  481. package/dist/utils/tpslValidation.mjs +0 -482
  482. package/dist/utils/tpslValidation.mjs.map +0 -1
  483. package/dist/utils/transactionUtils.cjs +0 -36
  484. package/dist/utils/transactionUtils.cjs.map +0 -1
  485. package/dist/utils/transactionUtils.d.cts +0 -17
  486. package/dist/utils/transactionUtils.d.cts.map +0 -1
  487. package/dist/utils/transactionUtils.d.mts +0 -17
  488. package/dist/utils/transactionUtils.d.mts.map +0 -1
  489. package/dist/utils/transactionUtils.mjs +0 -32
  490. package/dist/utils/transactionUtils.mjs.map +0 -1
  491. package/dist/utils/wait.cjs +0 -12
  492. package/dist/utils/wait.cjs.map +0 -1
  493. package/dist/utils/wait.d.cts +0 -8
  494. package/dist/utils/wait.d.cts.map +0 -1
  495. package/dist/utils/wait.d.mts +0 -8
  496. package/dist/utils/wait.d.mts.map +0 -1
  497. package/dist/utils/wait.mjs +0 -8
  498. package/dist/utils/wait.mjs.map +0 -1
@@ -1,1153 +0,0 @@
1
- import type { CaipAccountId, CaipChainId, CaipAssetId, Hex } from "@metamask/utils";
2
- import type { CandleData } from "./chart.mjs";
3
- import type { CandlePeriod, TimeDuration } from "./chart.mjs";
4
- export type * from "./chart.mjs";
5
- export type * from "./hyperliquid-types.mjs";
6
- export * from "./transactionTypes.mjs";
7
- /**
8
- * Stream channel keys for pausing/resuming WebSocket streams
9
- * Platform-specific implementations map their channels to these keys
10
- */
11
- export type PerpsStreamChannelKey = 'prices' | 'positions' | 'orders' | 'orderFills' | 'account' | 'orderBook' | 'candles' | 'oiCaps';
12
- /**
13
- * WebSocket connection states for real-time data management
14
- */
15
- export declare enum WebSocketConnectionState {
16
- Disconnected = "disconnected",
17
- Connecting = "connecting",
18
- Connected = "connected",
19
- Disconnecting = "disconnecting"
20
- }
21
- /**
22
- * Raw HyperLiquid ledger update structure from SDK
23
- * This matches the actual SDK types for userNonFundingLedgerUpdates
24
- */
25
- export type RawHyperLiquidLedgerUpdate = {
26
- hash: string;
27
- time: number;
28
- delta: {
29
- type: string;
30
- usdc?: string;
31
- coin?: string;
32
- };
33
- };
34
- export type UserHistoryItem = {
35
- id: string;
36
- timestamp: number;
37
- type: 'deposit' | 'withdrawal';
38
- amount: string;
39
- asset: string;
40
- txHash: string;
41
- status: 'completed' | 'failed' | 'pending';
42
- details: {
43
- source: string;
44
- bridgeContract?: string;
45
- recipient?: string;
46
- blockNumber?: string;
47
- chainId?: string;
48
- synthetic?: boolean;
49
- };
50
- };
51
- export type GetUserHistoryParams = {
52
- startTime?: number;
53
- endTime?: number;
54
- accountId?: CaipAccountId;
55
- };
56
- export type TradeConfiguration = {
57
- leverage?: number;
58
- pendingConfig?: {
59
- amount?: string;
60
- leverage?: number;
61
- takeProfitPrice?: string;
62
- stopLossPrice?: string;
63
- limitPrice?: string;
64
- orderType?: OrderType;
65
- timestamp: number;
66
- };
67
- };
68
- export type OrderType = 'market' | 'limit';
69
- export type MarketType = 'crypto' | 'equity' | 'commodity' | 'forex';
70
- export type MarketTypeFilter = MarketType | 'all' | 'stocks_and_commodities';
71
- export type BadgeType = MarketType | 'experimental' | 'dex';
72
- export type InputMethod = 'default' | 'slider' | 'keypad' | 'percentage' | 'max';
73
- export type TradeAction = 'create_position' | 'increase_exposure';
74
- export type TrackingData = {
75
- totalFee: number;
76
- marketPrice: number;
77
- metamaskFee?: number;
78
- metamaskFeeRate?: number;
79
- feeDiscountPercentage?: number;
80
- estimatedPoints?: number;
81
- marginUsed?: number;
82
- inputMethod?: InputMethod;
83
- tradeAction?: TradeAction;
84
- receivedAmount?: number;
85
- realizedPnl?: number;
86
- source?: string;
87
- };
88
- export type TPSLTrackingData = {
89
- direction: 'long' | 'short';
90
- source: string;
91
- positionSize: number;
92
- takeProfitPercentage?: number;
93
- stopLossPercentage?: number;
94
- isEditingExistingPosition?: boolean;
95
- entryPrice?: number;
96
- };
97
- export type OrderParams = {
98
- symbol: string;
99
- isBuy: boolean;
100
- size: string;
101
- orderType: OrderType;
102
- price?: string;
103
- reduceOnly?: boolean;
104
- isFullClose?: boolean;
105
- timeInForce?: 'GTC' | 'IOC' | 'ALO';
106
- usdAmount?: string;
107
- priceAtCalculation?: number;
108
- maxSlippageBps?: number;
109
- takeProfitPrice?: string;
110
- stopLossPrice?: string;
111
- clientOrderId?: string;
112
- slippage?: number;
113
- grouping?: 'na' | 'normalTpsl' | 'positionTpsl';
114
- currentPrice?: number;
115
- leverage?: number;
116
- existingPositionLeverage?: number;
117
- trackingData?: TrackingData;
118
- providerId?: PerpsProviderType;
119
- };
120
- export type OrderResult = {
121
- success?: boolean;
122
- orderId?: string;
123
- error?: string;
124
- filledSize?: string;
125
- averagePrice?: string;
126
- providerId?: PerpsProviderType;
127
- };
128
- export type Position = {
129
- symbol: string;
130
- size: string;
131
- entryPrice: string;
132
- positionValue: string;
133
- unrealizedPnl: string;
134
- marginUsed: string;
135
- leverage: {
136
- type: 'isolated' | 'cross';
137
- value: number;
138
- rawUsd?: string;
139
- };
140
- liquidationPrice: string | null;
141
- maxLeverage: number;
142
- returnOnEquity: string;
143
- cumulativeFunding: {
144
- allTime: string;
145
- sinceOpen: string;
146
- sinceChange: string;
147
- };
148
- takeProfitPrice?: string;
149
- stopLossPrice?: string;
150
- takeProfitCount: number;
151
- stopLossCount: number;
152
- providerId?: PerpsProviderType;
153
- };
154
- export type AccountState = {
155
- availableBalance: string;
156
- totalBalance: string;
157
- marginUsed: string;
158
- unrealizedPnl: string;
159
- returnOnEquity: string;
160
- /**
161
- * Per-sub-account balance breakdown (protocol-specific, optional)
162
- * Maps sub-account identifier to its balance details.
163
- *
164
- * Protocol examples:
165
- * - HyperLiquid HIP-3: '' or 'main' (main DEX), 'xyz' (HIP-3 builder DEX)
166
- * - dYdX: Sub-account numbers (e.g., '0', '1', '2')
167
- * - Other protocols: Vault IDs, pool IDs, margin account IDs, etc.
168
- *
169
- * Key: Sub-account identifier (protocol-specific string)
170
- * Value: Balance details for that sub-account
171
- */
172
- subAccountBreakdown?: Record<string, {
173
- availableBalance: string;
174
- totalBalance: string;
175
- }>;
176
- providerId?: PerpsProviderType;
177
- };
178
- export type ClosePositionParams = {
179
- symbol: string;
180
- size?: string;
181
- orderType?: OrderType;
182
- price?: string;
183
- currentPrice?: number;
184
- usdAmount?: string;
185
- priceAtCalculation?: number;
186
- maxSlippageBps?: number;
187
- trackingData?: TrackingData;
188
- providerId?: PerpsProviderType;
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
- * Multi-provider: which provider this market data comes from (injected by aggregator)
307
- */
308
- providerId?: PerpsProviderType;
309
- };
310
- export type ToggleTestnetResult = {
311
- success: boolean;
312
- isTestnet: boolean;
313
- error?: string;
314
- };
315
- export type AssetRoute = {
316
- assetId: CaipAssetId;
317
- chainId: CaipChainId;
318
- contractAddress: Hex;
319
- constraints?: {
320
- minAmount?: string;
321
- maxAmount?: string;
322
- estimatedTime?: string;
323
- estimatedMinutes?: number;
324
- fees?: {
325
- fixed?: number;
326
- percentage?: number;
327
- token?: string;
328
- };
329
- };
330
- };
331
- export type SwitchProviderResult = {
332
- success: boolean;
333
- providerId: PerpsActiveProviderMode;
334
- error?: string;
335
- };
336
- export type CancelOrderParams = {
337
- orderId: string;
338
- symbol: string;
339
- providerId?: PerpsProviderType;
340
- };
341
- export type CancelOrderResult = {
342
- success: boolean;
343
- orderId?: string;
344
- error?: string;
345
- providerId?: PerpsProviderType;
346
- };
347
- export type BatchCancelOrdersParams = {
348
- orderId: string;
349
- symbol: string;
350
- }[];
351
- export type CancelOrdersParams = {
352
- symbols?: string[];
353
- orderIds?: string[];
354
- cancelAll?: boolean;
355
- };
356
- export type CancelOrdersResult = {
357
- success: boolean;
358
- successCount: number;
359
- failureCount: number;
360
- results: {
361
- orderId: string;
362
- symbol: string;
363
- success: boolean;
364
- error?: string;
365
- }[];
366
- };
367
- export type EditOrderParams = {
368
- orderId: string | number;
369
- newOrder: OrderParams;
370
- };
371
- export type DepositParams = {
372
- amount: string;
373
- assetId: CaipAssetId;
374
- fromChainId?: CaipChainId;
375
- toChainId?: CaipChainId;
376
- recipient?: Hex;
377
- };
378
- export type DepositResult = {
379
- success: boolean;
380
- txHash?: string;
381
- error?: string;
382
- };
383
- export type DepositStatus = 'idle' | 'preparing' | 'swapping' | 'bridging' | 'depositing' | 'success' | 'error';
384
- export type DepositFlowType = 'direct' | 'swap' | 'bridge' | 'swap_bridge';
385
- export type DepositStepInfo = {
386
- totalSteps: number;
387
- currentStep: number;
388
- stepNames: string[];
389
- stepTxHashes?: string[];
390
- };
391
- export type WithdrawParams = {
392
- amount: string;
393
- destination?: Hex;
394
- assetId?: CaipAssetId;
395
- providerId?: PerpsProviderType;
396
- };
397
- export type WithdrawResult = {
398
- success: boolean;
399
- txHash?: string;
400
- error?: string;
401
- withdrawalId?: string;
402
- estimatedArrivalTime?: number;
403
- };
404
- export type TransferBetweenDexsParams = {
405
- sourceDex: string;
406
- destinationDex: string;
407
- amount: string;
408
- };
409
- export type TransferBetweenDexsResult = {
410
- success: boolean;
411
- txHash?: string;
412
- error?: string;
413
- };
414
- export type GetHistoricalPortfolioParams = {
415
- accountId?: CaipAccountId;
416
- };
417
- export type HistoricalPortfolioResult = {
418
- accountValue1dAgo: string;
419
- timestamp: number;
420
- };
421
- export type LiveDataConfig = {
422
- priceThrottleMs?: number;
423
- positionThrottleMs?: number;
424
- maxUpdatesPerSecond?: number;
425
- };
426
- export type PerpsControllerConfig = {
427
- /**
428
- * Fallback blocked regions to use when RemoteFeatureFlagController fails to fetch.
429
- * The fallback is set by default if defined and replaced with remote block list once available.
430
- */
431
- fallbackBlockedRegions?: string[];
432
- /**
433
- * Fallback HIP-3 equity perps master switch to use when RemoteFeatureFlagController fails to fetch.
434
- * Controls whether HIP-3 (builder-deployed) DEXs are enabled.
435
- * The fallback is set by default if defined and replaced with remote feature flag once available.
436
- */
437
- fallbackHip3Enabled?: boolean;
438
- /**
439
- * Fallback HIP-3 market allowlist to use when RemoteFeatureFlagController fails to fetch.
440
- * Empty array = enable all markets (discovery mode), non-empty = allowlist specific markets.
441
- * Supports wildcards: "xyz:*" (all xyz markets), "xyz" (shorthand for "xyz:*"), "BTC" (main DEX market).
442
- * Only applies when HIP-3 is enabled.
443
- * The fallback is set by default if defined and replaced with remote feature flag once available.
444
- */
445
- fallbackHip3AllowlistMarkets?: string[];
446
- /**
447
- * Fallback HIP-3 market blocklist to use when RemoteFeatureFlagController fails to fetch.
448
- * Empty array = no blocking, non-empty = block specific markets.
449
- * Supports wildcards: "xyz:*" (block all xyz markets), "xyz" (shorthand for "xyz:*"), "BTC" (block main DEX market).
450
- * Always applied regardless of HIP-3 enabled state.
451
- * The fallback is set by default if defined and replaced with remote feature flag once available.
452
- */
453
- fallbackHip3BlocklistMarkets?: string[];
454
- };
455
- export type PriceUpdate = {
456
- symbol: string;
457
- price: string;
458
- timestamp: number;
459
- percentChange24h?: string;
460
- bestBid?: string;
461
- bestAsk?: string;
462
- spread?: string;
463
- markPrice?: string;
464
- funding?: number;
465
- openInterest?: number;
466
- volume24h?: number;
467
- providerId?: PerpsProviderType;
468
- };
469
- export type OrderFill = {
470
- orderId: string;
471
- symbol: string;
472
- side: string;
473
- size: string;
474
- price: string;
475
- pnl: string;
476
- direction: string;
477
- fee: string;
478
- feeToken: string;
479
- timestamp: number;
480
- startPosition?: string;
481
- success?: boolean;
482
- liquidation?: {
483
- liquidatedUser: string;
484
- markPx: string;
485
- method: string;
486
- };
487
- orderType?: 'take_profit' | 'stop_loss' | 'liquidation' | 'regular';
488
- detailedOrderType?: string;
489
- providerId?: PerpsProviderType;
490
- };
491
- export type GetPositionsParams = {
492
- accountId?: CaipAccountId;
493
- includeHistory?: boolean;
494
- skipCache?: boolean;
495
- };
496
- export type GetAccountStateParams = {
497
- accountId?: CaipAccountId;
498
- source?: string;
499
- };
500
- export type GetOrderFillsParams = {
501
- accountId?: CaipAccountId;
502
- user?: Hex;
503
- startTime?: number;
504
- endTime?: number;
505
- limit?: number;
506
- aggregateByTime?: boolean;
507
- };
508
- export type GetOrdersParams = {
509
- accountId?: CaipAccountId;
510
- startTime?: number;
511
- endTime?: number;
512
- limit?: number;
513
- offset?: number;
514
- skipCache?: boolean;
515
- };
516
- export type GetFundingParams = {
517
- accountId?: CaipAccountId;
518
- startTime?: number;
519
- endTime?: number;
520
- limit?: number;
521
- offset?: number;
522
- };
523
- export type GetSupportedPathsParams = {
524
- isTestnet?: boolean;
525
- assetId?: CaipAssetId;
526
- symbol?: string;
527
- chainId?: CaipChainId;
528
- };
529
- export type GetAvailableDexsParams = {};
530
- export type GetMarketsParams = {
531
- symbols?: string[];
532
- dex?: string;
533
- skipFilters?: boolean;
534
- readOnly?: boolean;
535
- };
536
- export type SubscribePricesParams = {
537
- symbols: string[];
538
- callback: (prices: PriceUpdate[]) => void;
539
- throttleMs?: number;
540
- includeOrderBook?: boolean;
541
- includeMarketData?: boolean;
542
- };
543
- export type SubscribePositionsParams = {
544
- callback: (positions: Position[]) => void;
545
- accountId?: CaipAccountId;
546
- includeHistory?: boolean;
547
- };
548
- export type SubscribeOrderFillsParams = {
549
- callback: (fills: OrderFill[], isSnapshot?: boolean) => void;
550
- accountId?: CaipAccountId;
551
- since?: number;
552
- };
553
- export type SubscribeOrdersParams = {
554
- callback: (orders: Order[]) => void;
555
- accountId?: CaipAccountId;
556
- includeHistory?: boolean;
557
- };
558
- export type SubscribeAccountParams = {
559
- callback: (account: AccountState) => void;
560
- accountId?: CaipAccountId;
561
- };
562
- export type SubscribeOICapsParams = {
563
- callback: (caps: string[]) => void;
564
- accountId?: CaipAccountId;
565
- };
566
- export type SubscribeCandlesParams = {
567
- symbol: string;
568
- interval: CandlePeriod;
569
- duration?: TimeDuration;
570
- callback: (data: CandleData) => void;
571
- onError?: (error: Error) => void;
572
- };
573
- /**
574
- * Single price level in the order book
575
- */
576
- export type OrderBookLevel = {
577
- /** Price at this level */
578
- price: string;
579
- /** Size at this level (in base asset) */
580
- size: string;
581
- /** Cumulative size up to and including this level */
582
- total: string;
583
- /** Notional value in USD */
584
- notional: string;
585
- /** Cumulative notional up to and including this level */
586
- totalNotional: string;
587
- };
588
- /**
589
- * Full order book data with multiple price levels
590
- */
591
- export type OrderBookData = {
592
- /** Bid levels (buy orders) - highest price first */
593
- bids: OrderBookLevel[];
594
- /** Ask levels (sell orders) - lowest price first */
595
- asks: OrderBookLevel[];
596
- /** Spread between best bid and best ask */
597
- spread: string;
598
- /** Spread as a percentage of mid price */
599
- spreadPercentage: string;
600
- /** Mid price (average of best bid and best ask) */
601
- midPrice: string;
602
- /** Timestamp of last update */
603
- lastUpdated: number;
604
- /** Maximum total size across all levels (for scaling depth bars) */
605
- maxTotal: string;
606
- };
607
- export type SubscribeOrderBookParams = {
608
- /** Symbol to subscribe to (e.g., 'BTC', 'ETH') */
609
- symbol: string;
610
- /** Number of levels to return per side (default: 10) */
611
- levels?: number;
612
- /** Price aggregation significant figures (2-5, default: 5). Higher = finer granularity */
613
- nSigFigs?: 2 | 3 | 4 | 5;
614
- /** Mantissa for aggregation when nSigFigs is 5 (2 or 5). Controls finest price increments */
615
- mantissa?: 2 | 5;
616
- /** Callback function receiving order book updates */
617
- callback: (orderBook: OrderBookData) => void;
618
- /** Callback for errors */
619
- onError?: (error: Error) => void;
620
- };
621
- export type LiquidationPriceParams = {
622
- entryPrice: number;
623
- leverage: number;
624
- direction: 'long' | 'short';
625
- positionSize?: number;
626
- marginType?: 'isolated' | 'cross';
627
- asset?: string;
628
- };
629
- export type MaintenanceMarginParams = {
630
- asset: string;
631
- positionSize?: number;
632
- };
633
- export type FeeCalculationParams = {
634
- orderType: 'market' | 'limit';
635
- isMaker?: boolean;
636
- amount?: string;
637
- symbol: string;
638
- };
639
- export type FeeCalculationResult = {
640
- feeRate?: number;
641
- feeAmount?: number;
642
- protocolFeeRate?: number;
643
- protocolFeeAmount?: number;
644
- metamaskFeeRate?: number;
645
- metamaskFeeAmount?: number;
646
- breakdown?: {
647
- baseFeeRate: number;
648
- volumeTier?: string;
649
- volumeDiscount?: number;
650
- stakingDiscount?: number;
651
- };
652
- };
653
- export type UpdatePositionTPSLParams = {
654
- symbol: string;
655
- takeProfitPrice?: string;
656
- stopLossPrice?: string;
657
- trackingData?: TPSLTrackingData;
658
- providerId?: PerpsProviderType;
659
- };
660
- export type Order = {
661
- orderId: string;
662
- symbol: string;
663
- side: 'buy' | 'sell';
664
- orderType: OrderType;
665
- size: string;
666
- originalSize: string;
667
- price: string;
668
- filledSize: string;
669
- remainingSize: string;
670
- status: 'open' | 'filled' | 'canceled' | 'rejected' | 'triggered' | 'queued';
671
- timestamp: number;
672
- lastUpdated?: number;
673
- takeProfitPrice?: string;
674
- stopLossPrice?: string;
675
- stopLossOrderId?: string;
676
- takeProfitOrderId?: string;
677
- detailedOrderType?: string;
678
- isTrigger?: boolean;
679
- reduceOnly?: boolean;
680
- triggerPrice?: string;
681
- providerId?: PerpsProviderType;
682
- };
683
- export type Funding = {
684
- symbol: string;
685
- amountUsd: string;
686
- rate: string;
687
- timestamp: number;
688
- transactionHash?: string;
689
- };
690
- export type PerpsProvider = {
691
- readonly protocolId: string;
692
- getDepositRoutes(params?: GetSupportedPathsParams): AssetRoute[];
693
- getWithdrawalRoutes(params?: GetSupportedPathsParams): AssetRoute[];
694
- placeOrder(params: OrderParams): Promise<OrderResult>;
695
- editOrder(params: EditOrderParams): Promise<OrderResult>;
696
- cancelOrder(params: CancelOrderParams): Promise<CancelOrderResult>;
697
- cancelOrders?(params: BatchCancelOrdersParams): Promise<CancelOrdersResult>;
698
- closePosition(params: ClosePositionParams): Promise<OrderResult>;
699
- closePositions?(params: ClosePositionsParams): Promise<ClosePositionsResult>;
700
- updatePositionTPSL(params: UpdatePositionTPSLParams): Promise<OrderResult>;
701
- updateMargin(params: UpdateMarginParams): Promise<MarginResult>;
702
- getPositions(params?: GetPositionsParams): Promise<Position[]>;
703
- getAccountState(params?: GetAccountStateParams): Promise<AccountState>;
704
- getMarkets(params?: GetMarketsParams): Promise<MarketInfo[]>;
705
- getMarketDataWithPrices(): Promise<PerpsMarketData[]>;
706
- withdraw(params: WithdrawParams): Promise<WithdrawResult>;
707
- validateDeposit(params: DepositParams): Promise<{
708
- isValid: boolean;
709
- error?: string;
710
- }>;
711
- validateOrder(params: OrderParams): Promise<{
712
- isValid: boolean;
713
- error?: string;
714
- }>;
715
- validateClosePosition(params: ClosePositionParams): Promise<{
716
- isValid: boolean;
717
- error?: string;
718
- }>;
719
- validateWithdrawal(params: WithdrawParams): Promise<{
720
- isValid: boolean;
721
- error?: string;
722
- }>;
723
- /**
724
- * Historical trade fills - actual executed trades with exact prices and fees.
725
- * Purpose: Track what actually happened when orders were executed.
726
- * Example: Market long 1 ETH @ $50,000 → OrderFill with exact execution price and fees
727
- */
728
- getOrderFills(params?: GetOrderFillsParams): Promise<OrderFill[]>;
729
- /**
730
- * Get historical portfolio data.
731
- * Purpose: Retrieve account value from previous periods for PnL tracking
732
- * Example: Get account value from yesterday to calculate 24h percentage change
733
- *
734
- * @param params - Optional parameters for historical portfolio retrieval
735
- */
736
- getHistoricalPortfolio(params?: GetHistoricalPortfolioParams): Promise<HistoricalPortfolioResult>;
737
- /**
738
- * Historical order lifecycle - order placement, modifications, and status changes.
739
- * Purpose: Track the complete journey of orders from request to completion.
740
- * Example: Limit buy 1 ETH @ $48,000 → Order with status 'open' → 'filled' when executed
741
- */
742
- getOrders(params?: GetOrdersParams): Promise<Order[]>;
743
- /**
744
- * Currently active open orders (real-time status).
745
- * Purpose: Show orders that are currently open/pending execution (not historical states).
746
- * Different from getOrders() which returns complete historical order lifecycle.
747
- * Example: Shows only orders that are actually open right now in the exchange.
748
- */
749
- getOpenOrders(params?: GetOrdersParams): Promise<Order[]>;
750
- /**
751
- * Historical funding payments - periodic costs/rewards for holding positions.
752
- * Purpose: Track ongoing expenses and income from position maintenance.
753
- * Example: Holding long ETH position → Funding payment of -$5.00 (you pay the funding)
754
- */
755
- getFunding(params?: GetFundingParams): Promise<Funding[]>;
756
- /**
757
- * Get user non-funding ledger updates (deposits, transfers, withdrawals)
758
- */
759
- getUserNonFundingLedgerUpdates(params?: {
760
- accountId?: string;
761
- startTime?: number;
762
- endTime?: number;
763
- }): Promise<RawHyperLiquidLedgerUpdate[]>;
764
- /**
765
- * Get user history (deposits, withdrawals, transfers)
766
- */
767
- getUserHistory(params?: {
768
- accountId?: CaipAccountId;
769
- startTime?: number;
770
- endTime?: number;
771
- }): Promise<UserHistoryItem[]>;
772
- calculateLiquidationPrice(params: LiquidationPriceParams): Promise<string>;
773
- calculateMaintenanceMargin(params: MaintenanceMarginParams): Promise<number>;
774
- getMaxLeverage(asset: string): Promise<number>;
775
- calculateFees(params: FeeCalculationParams): Promise<FeeCalculationResult>;
776
- subscribeToPrices(params: SubscribePricesParams): () => void;
777
- subscribeToPositions(params: SubscribePositionsParams): () => void;
778
- subscribeToOrderFills(params: SubscribeOrderFillsParams): () => void;
779
- subscribeToOrders(params: SubscribeOrdersParams): () => void;
780
- subscribeToAccount(params: SubscribeAccountParams): () => void;
781
- subscribeToOICaps(params: SubscribeOICapsParams): () => void;
782
- subscribeToCandles(params: SubscribeCandlesParams): () => void;
783
- subscribeToOrderBook(params: SubscribeOrderBookParams): () => void;
784
- setLiveDataConfig(config: Partial<LiveDataConfig>): void;
785
- toggleTestnet(): Promise<ToggleTestnetResult>;
786
- initialize(): Promise<InitializeResult>;
787
- isReadyToTrade(): Promise<ReadyToTradeResult>;
788
- disconnect(): Promise<DisconnectResult>;
789
- ping(timeoutMs?: number): Promise<void>;
790
- getWebSocketConnectionState?(): WebSocketConnectionState;
791
- subscribeToConnectionState?(listener: (state: WebSocketConnectionState, reconnectionAttempt: number) => void): () => void;
792
- reconnect?(): Promise<void>;
793
- getBlockExplorerUrl(address?: string): string;
794
- setUserFeeDiscount?(discountBips: number | undefined): void;
795
- /**
796
- * Get list of available HIP-3 builder-deployed DEXs.
797
- *
798
- * @param params - Optional parameters (reserved for future filters/pagination)
799
- * @returns Array of DEX names (empty string '' represents main DEX)
800
- */
801
- getAvailableDexs?(params?: GetAvailableDexsParams): Promise<string[]>;
802
- };
803
- /**
804
- * Provider identifier type for multi-provider support.
805
- * Add new providers here as they are implemented.
806
- */
807
- export type PerpsProviderType = 'hyperliquid' | 'myx';
808
- /**
809
- * Active provider mode for PerpsController state.
810
- * - Direct providers: 'hyperliquid', 'myx'
811
- * - 'aggregated': Multi-provider aggregation mode
812
- */
813
- export type PerpsActiveProviderMode = PerpsProviderType | 'aggregated';
814
- /**
815
- * Aggregation mode for read operations.
816
- * - 'all': Aggregate data from all registered providers
817
- * - 'active': Only aggregate from providers with active connections
818
- * - 'specific': Aggregate from a specific subset of providers
819
- */
820
- export type AggregationMode = 'all' | 'active' | 'specific';
821
- /**
822
- * Routing strategy for write operations.
823
- * Phase 1 only supports 'default_provider' - advanced strategies deferred to Phase 3.
824
- */
825
- export type RoutingStrategy = 'default_provider';
826
- /**
827
- * Configuration for AggregatedPerpsProvider
828
- */
829
- export type AggregatedProviderConfig = {
830
- /** Map of provider ID to provider instance */
831
- providers: Map<PerpsProviderType, PerpsProvider>;
832
- /** Default provider for write operations when providerId not specified */
833
- defaultProvider: PerpsProviderType;
834
- /** Aggregation mode for read operations (default: 'all') */
835
- aggregationMode?: AggregationMode;
836
- /** Platform dependencies for logging, metrics, etc. */
837
- infrastructure: PerpsPlatformDependencies;
838
- };
839
- /**
840
- * Provider-specific error with context for multi-provider error handling
841
- */
842
- export type ProviderError = {
843
- /** Which provider the error originated from */
844
- providerId: PerpsProviderType;
845
- /** Human-readable error message */
846
- message: string;
847
- /** Original error object if available */
848
- originalError?: Error;
849
- /** Whether the operation can be retried */
850
- isRetryable?: boolean;
851
- };
852
- /**
853
- * Aggregated account state combining data from multiple providers
854
- */
855
- export type AggregatedAccountState = {
856
- /** Combined totals across all providers */
857
- total: AccountState;
858
- /** Per-provider breakdown */
859
- byProvider: Map<PerpsProviderType, AccountState>;
860
- };
861
- /**
862
- * Injectable logger interface for error reporting.
863
- * Allows core package to be platform-agnostic (mobile: Sentry, extension: different impl)
864
- */
865
- export type PerpsLogger = {
866
- error(error: Error, options?: {
867
- tags?: Record<string, string | number>;
868
- context?: {
869
- name: string;
870
- data: Record<string, unknown>;
871
- };
872
- extras?: Record<string, unknown>;
873
- }): void;
874
- };
875
- /**
876
- * Analytics events specific to Perps feature.
877
- * These are the actual event names sent to analytics backend.
878
- * Values must match the corresponding MetaMetricsEvents values in mobile for compatibility.
879
- *
880
- * When migrating to core monorepo, this enum travels with PerpsController.
881
- */
882
- export declare enum PerpsAnalyticsEvent {
883
- WithdrawalTransaction = "Perp Withdrawal Transaction",
884
- TradeTransaction = "Perp Trade Transaction",
885
- PositionCloseTransaction = "Perp Position Close Transaction",
886
- OrderCancelTransaction = "Perp Order Cancel Transaction",
887
- ScreenViewed = "Perp Screen Viewed",
888
- UiInteraction = "Perp UI Interaction",
889
- RiskManagement = "Perp Risk Management",
890
- PerpsError = "Perp Error"
891
- }
892
- /**
893
- * Perps-specific trace names. These must match TraceName enum values in mobile.
894
- * When in core monorepo, this defines the valid trace names for Perps operations.
895
- */
896
- 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';
897
- /**
898
- * Perps trace name constants. Values match TraceName enum in mobile.
899
- * When in core, these ARE the source of truth - mobile will re-export from core.
900
- */
901
- export declare const PerpsTraceNames: {
902
- readonly PlaceOrder: "Perps Place Order";
903
- readonly EditOrder: "Perps Edit Order";
904
- readonly CancelOrder: "Perps Cancel Order";
905
- readonly ClosePosition: "Perps Close Position";
906
- readonly UpdateTpsl: "Perps Update TP/SL";
907
- readonly UpdateMargin: "Perps Update Margin";
908
- readonly FlipPosition: "Perps Flip Position";
909
- readonly Withdraw: "Perps Withdraw";
910
- readonly Deposit: "Perps Deposit";
911
- readonly GetPositions: "Perps Get Positions";
912
- readonly GetAccountState: "Perps Get Account State";
913
- readonly GetMarkets: "Perps Get Markets";
914
- readonly OrderFillsFetch: "Perps Order Fills Fetch";
915
- readonly OrdersFetch: "Perps Orders Fetch";
916
- readonly FundingFetch: "Perps Funding Fetch";
917
- readonly GetHistoricalPortfolio: "Perps Get Historical Portfolio";
918
- readonly FetchHistoricalCandles: "Perps Fetch Historical Candles";
919
- readonly DataLakeReport: "Perps Data Lake Report";
920
- readonly WebsocketConnected: "Perps WebSocket Connected";
921
- readonly WebsocketDisconnected: "Perps WebSocket Disconnected";
922
- readonly WebsocketFirstPositions: "Perps WebSocket First Positions";
923
- readonly WebsocketFirstOrders: "Perps WebSocket First Orders";
924
- readonly WebsocketFirstAccount: "Perps WebSocket First Account";
925
- readonly RewardsApiCall: "Perps Rewards API Call";
926
- readonly ConnectionEstablishment: "Perps Connection Establishment";
927
- readonly AccountSwitchReconnection: "Perps Account Switch Reconnection";
928
- };
929
- /**
930
- * Perps trace operation constants. Values match TraceOperation enum in mobile.
931
- * These categorize traces by type of operation for Sentry/observability filtering.
932
- */
933
- export declare const PerpsTraceOperations: {
934
- readonly Operation: "perps.operation";
935
- readonly OrderSubmission: "perps.order_submission";
936
- readonly PositionManagement: "perps.position_management";
937
- readonly MarketData: "perps.market_data";
938
- };
939
- /**
940
- * Values allowed in trace data/tags. Matches Sentry's TraceValue type.
941
- */
942
- export type PerpsTraceValue = string | number | boolean;
943
- /**
944
- * Properties allowed in analytics events. More constrained than unknown.
945
- * Named PerpsAnalyticsProperties to avoid conflict with PerpsEventProperties
946
- * constant object from eventNames.ts (which contains property key names).
947
- */
948
- export type PerpsAnalyticsProperties = Record<string, string | number | boolean | null | undefined>;
949
- /**
950
- * Injectable metrics interface for analytics.
951
- * Allows core package to work with different analytics backends.
952
- */
953
- export type PerpsMetrics = {
954
- isEnabled(): boolean;
955
- /**
956
- * Track a Perps-specific analytics event with properties.
957
- * This abstracts away the MetricsEventBuilder pattern used in mobile.
958
- *
959
- * @param event - The Perps analytics event type (enum with actual event name values)
960
- * @param properties - Type-safe key-value properties to attach to the event
961
- */
962
- trackPerpsEvent(event: PerpsAnalyticsEvent, properties: PerpsAnalyticsProperties): void;
963
- };
964
- /**
965
- * Injectable debug logger for development logging.
966
- * Only logs in development mode.
967
- * Accepts `unknown` to allow logging error objects from catch blocks.
968
- */
969
- export type PerpsDebugLogger = {
970
- log(...args: unknown[]): void;
971
- };
972
- /**
973
- * Injectable stream manager interface for pause/resume during critical operations.
974
- *
975
- * WHY THIS IS NEEDED:
976
- * PerpsStreamManager is a React-based mobile-specific singleton that:
977
- * - Uses React Context for subscription management
978
- * - Uses react-native-performance for tracing
979
- * - Directly accesses Engine.context (mobile singleton pattern)
980
- * - Manages WebSocket connections with throttling/caching
981
- *
982
- * PerpsController only needs pause/resume during critical operations (withStreamPause method)
983
- * to prevent stale UI updates during batch operations. The minimal interface allows:
984
- * - Mobile: Wrap existing singleton (streamManager[channel].pause())
985
- * - Extension: Implement with whatever streaming solution they use
986
- */
987
- export type PerpsStreamManager = {
988
- pauseChannel(channel: string): void;
989
- resumeChannel(channel: string): void;
990
- clearAllChannels(): void;
991
- };
992
- /**
993
- * Injectable performance monitor interface.
994
- * Wraps react-native-performance or browser Performance API.
995
- */
996
- export type PerpsPerformance = {
997
- now(): number;
998
- };
999
- /**
1000
- * Injectable tracer interface for Sentry/observability tracing.
1001
- * Services use this to create spans and measure operation durations.
1002
- *
1003
- * Note: trace() returns void because services use name/id pairs to identify traces.
1004
- * The actual span management is handled internally by the platform adapter.
1005
- */
1006
- export type PerpsTracer = {
1007
- trace(params: {
1008
- name: PerpsTraceName;
1009
- id: string;
1010
- op: string;
1011
- tags?: Record<string, PerpsTraceValue>;
1012
- data?: Record<string, PerpsTraceValue>;
1013
- }): void;
1014
- endTrace(params: {
1015
- name: PerpsTraceName;
1016
- id: string;
1017
- data?: Record<string, PerpsTraceValue>;
1018
- }): void;
1019
- setMeasurement(name: string, value: number, unit: string): void;
1020
- };
1021
- /**
1022
- * Injectable keyring controller interface for signing operations.
1023
- * Allows services to sign typed messages without directly accessing Engine.
1024
- */
1025
- export type PerpsKeyringController = {
1026
- signTypedMessage(msgParams: {
1027
- from: string;
1028
- data: unknown;
1029
- }, version: string): Promise<string>;
1030
- };
1031
- /**
1032
- * Injectable account utilities interface.
1033
- * Provides access to selected account without coupling to Engine singleton.
1034
- */
1035
- export type PerpsAccountUtils = {
1036
- getSelectedEvmAccount(): {
1037
- address: string;
1038
- } | undefined;
1039
- formatAccountToCaipId(address: string, chainId: string): string | null;
1040
- };
1041
- /**
1042
- * Network controller operations required by Perps.
1043
- * Provides chain ID lookups and network client identification.
1044
- */
1045
- export type PerpsNetworkOperations = {
1046
- /**
1047
- * Get the chain ID for a given network client.
1048
- */
1049
- getChainIdForNetwork(networkClientId: string): Hex;
1050
- /**
1051
- * Find the network client ID for a given chain.
1052
- */
1053
- findNetworkClientIdForChain(chainId: Hex): string | undefined;
1054
- /**
1055
- * Get the currently selected network client ID.
1056
- */
1057
- getSelectedNetworkClientId(): string;
1058
- };
1059
- /**
1060
- * Transaction controller operations required by Perps.
1061
- * Provides transaction submission capabilities.
1062
- */
1063
- export type PerpsTransactionOperations = {
1064
- /**
1065
- * Submit a transaction to the blockchain.
1066
- * Returns the result promise and transaction metadata.
1067
- */
1068
- submit(txParams: {
1069
- from: string;
1070
- to?: string;
1071
- value?: string;
1072
- data?: string;
1073
- }, options: {
1074
- networkClientId: string;
1075
- origin?: string;
1076
- type?: string;
1077
- skipInitialGasEstimate?: boolean;
1078
- gasFeeToken?: Hex;
1079
- }): Promise<{
1080
- result: Promise<string>;
1081
- transactionMeta: {
1082
- id: string;
1083
- hash?: string;
1084
- };
1085
- }>;
1086
- };
1087
- /**
1088
- * Rewards controller operations required by Perps (optional).
1089
- * Provides fee discount capabilities for MetaMask rewards program.
1090
- */
1091
- export type PerpsRewardsOperations = {
1092
- /**
1093
- * Get fee discount for an account.
1094
- * Returns discount in basis points (e.g., 6500 = 65% discount)
1095
- */
1096
- getFeeDiscount(caipAccountId: `${string}:${string}:${string}`): Promise<number>;
1097
- };
1098
- /**
1099
- * Authentication controller operations required by Perps (optional).
1100
- * Provides bearer token access for authenticated API calls.
1101
- */
1102
- export type PerpsAuthenticationOperations = {
1103
- /**
1104
- * Get a bearer token for authenticated API requests.
1105
- */
1106
- getBearerToken(): Promise<string>;
1107
- };
1108
- /**
1109
- * Consolidated controller access interface.
1110
- * Groups ALL controller dependencies in one place for clarity.
1111
- *
1112
- * Benefits:
1113
- * 1. Clear separation: observability utilities vs controller access
1114
- * 2. Consistent pattern: all controllers accessed via deps.controllers.*
1115
- * 3. Mockable: test can mock entire controllers object
1116
- * 4. Future-proof: add new controller access without bloating top-level
1117
- */
1118
- export type PerpsControllerAccess = {
1119
- /** Account utilities - wraps AccountsController access */
1120
- accounts: PerpsAccountUtils;
1121
- /** Keyring operations - wraps KeyringController for signing */
1122
- keyring: PerpsKeyringController;
1123
- /** Network operations - wraps NetworkController for chain lookups */
1124
- network: PerpsNetworkOperations;
1125
- /** Transaction operations - wraps TransactionController for TX submission */
1126
- transaction: PerpsTransactionOperations;
1127
- /** Rewards operations - wraps RewardsController for fee discounts */
1128
- rewards: PerpsRewardsOperations;
1129
- /** Authentication operations - wraps AuthenticationController for bearer tokens */
1130
- authentication: PerpsAuthenticationOperations;
1131
- };
1132
- /**
1133
- * Combined platform dependencies for PerpsController and services.
1134
- * All platform-specific dependencies are bundled here for easy injection.
1135
- *
1136
- * Architecture:
1137
- * - Observability: logger, debugLogger, metrics, performance, tracer (stateless utilities)
1138
- * - Platform: streamManager (mobile/extension specific capabilities)
1139
- * - Controllers: consolidated access to all external controllers
1140
- *
1141
- * This interface enables dependency injection for platform-specific services,
1142
- * allowing PerpsController to be moved to core without mobile-specific imports.
1143
- */
1144
- export type PerpsPlatformDependencies = {
1145
- logger: PerpsLogger;
1146
- debugLogger: PerpsDebugLogger;
1147
- metrics: PerpsMetrics;
1148
- performance: PerpsPerformance;
1149
- tracer: PerpsTracer;
1150
- streamManager: PerpsStreamManager;
1151
- controllers: PerpsControllerAccess;
1152
- };
1153
- //# sourceMappingURL=index.d.mts.map