@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 +0,0 @@
1
- {"version":3,"file":"DataLakeService.d.cts","sourceRoot":"","sources":["../../src/services/DataLakeService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,6BAAyB;AAGvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,2BAAiB;AAI1D;;;;;;;;GAQG;AACH,qBAAa,eAAe;;IAG1B;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;;;;;;;;;;OAcG;IACG,WAAW,CAAC,OAAO,EAAE;QACzB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAqMlD"}
@@ -1,49 +0,0 @@
1
- import type { ServiceContext } from "./ServiceContext.mjs";
2
- import type { PerpsPlatformDependencies } from "../types/index.mjs";
3
- /**
4
- * DataLakeService
5
- *
6
- * Handles reporting order events to external Data Lake API.
7
- * Implements exponential backoff retry logic and performance tracing.
8
- * Stateless service that operates purely on external API calls.
9
- *
10
- * Instance-based service with constructor injection of platform dependencies.
11
- */
12
- export declare class DataLakeService {
13
- #private;
14
- /**
15
- * Create a new DataLakeService instance.
16
- *
17
- * @param deps - Platform dependencies for logging, metrics, etc.
18
- */
19
- constructor(deps: PerpsPlatformDependencies);
20
- /**
21
- * Report order events to data lake API with retry (non-blocking).
22
- * Implements exponential backoff retry logic (max 3 retries).
23
- *
24
- * @param options - Configuration object.
25
- * @param options.action - Order action ('open' or 'close').
26
- * @param options.symbol - Market symbol.
27
- * @param options.sl_price - Optional stop loss price.
28
- * @param options.tp_price - Optional take profit price.
29
- * @param options.isTestnet - Whether this is a testnet operation (skips API call).
30
- * @param options.context - ServiceContext for dependencies (messenger, tracing).
31
- * @param options.retryCount - Internal retry counter (managed by service).
32
- * @param options._traceId - Internal trace ID (managed by service).
33
- * @returns Result object with success flag and optional error message.
34
- */
35
- reportOrder(options: {
36
- action: 'open' | 'close';
37
- symbol: string;
38
- sl_price?: number;
39
- tp_price?: number;
40
- isTestnet: boolean;
41
- context: ServiceContext;
42
- retryCount?: number;
43
- _traceId?: string;
44
- }): Promise<{
45
- success: boolean;
46
- error?: string;
47
- }>;
48
- }
49
- //# sourceMappingURL=DataLakeService.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataLakeService.d.mts","sourceRoot":"","sources":["../../src/services/DataLakeService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,6BAAyB;AAGvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,2BAAiB;AAI1D;;;;;;;;GAQG;AACH,qBAAa,eAAe;;IAG1B;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;;;;;;;;;;OAcG;IACG,WAAW,CAAC,OAAO,EAAE;QACzB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAqMlD"}
@@ -1,215 +0,0 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _DataLakeService_deps;
13
- /* eslint-disable camelcase, @typescript-eslint/naming-convention */
14
- // API uses snake_case: sl_price, tp_price - kept for API compatibility
15
- import { v4 as uuidv4 } from "uuid";
16
- import { PerpsMeasurementName } from "../constants/performanceMetrics.mjs";
17
- import { DATA_LAKE_API_CONFIG } from "../constants/perpsConfig.mjs";
18
- import { PerpsTraceNames, PerpsTraceOperations } from "../types/index.mjs";
19
- import { ensureError } from "../utils/errorUtils.mjs";
20
- /**
21
- * DataLakeService
22
- *
23
- * Handles reporting order events to external Data Lake API.
24
- * Implements exponential backoff retry logic and performance tracing.
25
- * Stateless service that operates purely on external API calls.
26
- *
27
- * Instance-based service with constructor injection of platform dependencies.
28
- */
29
- export class DataLakeService {
30
- /**
31
- * Create a new DataLakeService instance.
32
- *
33
- * @param deps - Platform dependencies for logging, metrics, etc.
34
- */
35
- constructor(deps) {
36
- _DataLakeService_deps.set(this, void 0);
37
- __classPrivateFieldSet(this, _DataLakeService_deps, deps, "f");
38
- }
39
- /**
40
- * Report order events to data lake API with retry (non-blocking).
41
- * Implements exponential backoff retry logic (max 3 retries).
42
- *
43
- * @param options - Configuration object.
44
- * @param options.action - Order action ('open' or 'close').
45
- * @param options.symbol - Market symbol.
46
- * @param options.sl_price - Optional stop loss price.
47
- * @param options.tp_price - Optional take profit price.
48
- * @param options.isTestnet - Whether this is a testnet operation (skips API call).
49
- * @param options.context - ServiceContext for dependencies (messenger, tracing).
50
- * @param options.retryCount - Internal retry counter (managed by service).
51
- * @param options._traceId - Internal trace ID (managed by service).
52
- * @returns Result object with success flag and optional error message.
53
- */
54
- async reportOrder(options) {
55
- const { action, symbol, sl_price, tp_price, isTestnet, context, retryCount = 0, _traceId, } = options;
56
- // Skip data lake reporting for testnet as the API doesn't handle testnet data
57
- if (isTestnet) {
58
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").debugLogger.log('DataLake API: Skipping for testnet', {
59
- action,
60
- symbol,
61
- network: 'testnet',
62
- });
63
- return { success: true, error: 'Skipped for testnet' };
64
- }
65
- const MAX_RETRIES = 3;
66
- const RETRY_DELAY_MS = 1000;
67
- // Generate trace ID once on first call
68
- const traceId = _traceId ?? uuidv4();
69
- // Start trace only on first attempt
70
- if (retryCount === 0) {
71
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").tracer.trace({
72
- name: PerpsTraceNames.DataLakeReport,
73
- op: PerpsTraceOperations.Operation,
74
- id: traceId,
75
- tags: {
76
- action,
77
- symbol,
78
- provider: context.tracingContext.provider,
79
- isTestnet: String(context.tracingContext.isTestnet),
80
- },
81
- });
82
- }
83
- // Log the attempt
84
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").debugLogger.log('DataLake API: Starting order report', {
85
- action,
86
- symbol,
87
- attempt: retryCount + 1,
88
- maxAttempts: MAX_RETRIES + 1,
89
- hasStopLoss: Boolean(sl_price),
90
- hasTakeProfit: Boolean(tp_price),
91
- timestamp: new Date().toISOString(),
92
- });
93
- const apiCallStartTime = __classPrivateFieldGet(this, _DataLakeService_deps, "f").performance.now();
94
- try {
95
- const token = await __classPrivateFieldGet(this, _DataLakeService_deps, "f").controllers.authentication.getBearerToken();
96
- const evmAccount = __classPrivateFieldGet(this, _DataLakeService_deps, "f").controllers.accounts.getSelectedEvmAccount();
97
- if (!evmAccount || !token) {
98
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").debugLogger.log('DataLake API: Missing requirements', {
99
- hasAccount: Boolean(evmAccount),
100
- hasToken: Boolean(token),
101
- action,
102
- symbol,
103
- });
104
- return { success: false, error: 'No account or token available' };
105
- }
106
- const response = await fetch(DATA_LAKE_API_CONFIG.OrdersEndpoint, {
107
- method: 'POST',
108
- headers: {
109
- 'Content-Type': 'application/json',
110
- Authorization: `Bearer ${token}`,
111
- },
112
- body: JSON.stringify({
113
- user_id: evmAccount.address,
114
- symbol,
115
- sl_price,
116
- tp_price,
117
- }),
118
- });
119
- if (!response.ok) {
120
- throw new Error(`DataLake API error: ${response.status}`);
121
- }
122
- // Consume response body (might be empty for 201, but good to check)
123
- const responseBody = await response.text();
124
- const apiCallDuration = __classPrivateFieldGet(this, _DataLakeService_deps, "f").performance.now() - apiCallStartTime;
125
- // Record measurement
126
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").tracer.setMeasurement(PerpsMeasurementName.PerpsDataLakeApiCall, apiCallDuration, 'millisecond');
127
- // Success logging
128
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").debugLogger.log('DataLake API: Order reported successfully', {
129
- action,
130
- symbol,
131
- status: response.status,
132
- attempt: retryCount + 1,
133
- responseBody: responseBody || 'empty',
134
- duration: `${apiCallDuration.toFixed(0)}ms`,
135
- });
136
- // End trace on success
137
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").tracer.endTrace({
138
- name: PerpsTraceNames.DataLakeReport,
139
- id: traceId,
140
- data: {
141
- success: true,
142
- retries: retryCount,
143
- },
144
- });
145
- return { success: true };
146
- }
147
- catch (error) {
148
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
149
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").logger.error(ensureError(error), {
150
- context: {
151
- name: 'DataLakeService.reportOrder',
152
- data: {
153
- action,
154
- symbol,
155
- retryCount,
156
- willRetry: retryCount < MAX_RETRIES,
157
- },
158
- },
159
- });
160
- // Retry logic
161
- if (retryCount < MAX_RETRIES) {
162
- const retryDelay = RETRY_DELAY_MS * Math.pow(2, retryCount);
163
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").debugLogger.log('DataLake API: Scheduling retry', {
164
- retryIn: `${retryDelay}ms`,
165
- nextAttempt: retryCount + 2,
166
- action,
167
- symbol,
168
- });
169
- setTimeout(() => {
170
- this.reportOrder({
171
- action,
172
- symbol,
173
- sl_price,
174
- tp_price,
175
- isTestnet,
176
- context,
177
- retryCount: retryCount + 1,
178
- _traceId: traceId,
179
- }).catch((retryError) => {
180
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").logger.error(ensureError(retryError), {
181
- context: {
182
- name: 'DataLakeService.reportOrder',
183
- data: {
184
- operation: 'retry',
185
- retryCount: retryCount + 1,
186
- action,
187
- symbol,
188
- },
189
- },
190
- });
191
- });
192
- }, retryDelay);
193
- return { success: false, error: errorMessage };
194
- }
195
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").tracer.endTrace({
196
- name: PerpsTraceNames.DataLakeReport,
197
- id: traceId,
198
- data: {
199
- success: false,
200
- error: errorMessage,
201
- totalRetries: retryCount,
202
- },
203
- });
204
- __classPrivateFieldGet(this, _DataLakeService_deps, "f").logger.error(ensureError(error), {
205
- context: {
206
- name: 'DataLakeService.reportOrder',
207
- data: { operation: 'finalFailure', action, symbol, retryCount },
208
- },
209
- });
210
- return { success: false, error: errorMessage };
211
- }
212
- }
213
- }
214
- _DataLakeService_deps = new WeakMap();
215
- //# sourceMappingURL=DataLakeService.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataLakeService.mjs","sourceRoot":"","sources":["../../src/services/DataLakeService.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable camelcase, @typescript-eslint/naming-convention */\n// API uses snake_case: sl_price, tp_price - kept for API compatibility\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { ServiceContext } from './ServiceContext';\nimport { PerpsMeasurementName } from '../constants/performanceMetrics';\nimport { DATA_LAKE_API_CONFIG } from '../constants/perpsConfig';\nimport type { PerpsPlatformDependencies } from '../types';\nimport { PerpsTraceNames, PerpsTraceOperations } from '../types';\nimport { ensureError } from '../utils/errorUtils';\n\n/**\n * DataLakeService\n *\n * Handles reporting order events to external Data Lake API.\n * Implements exponential backoff retry logic and performance tracing.\n * Stateless service that operates purely on external API calls.\n *\n * Instance-based service with constructor injection of platform dependencies.\n */\nexport class DataLakeService {\n readonly #deps: PerpsPlatformDependencies;\n\n /**\n * Create a new DataLakeService instance.\n *\n * @param deps - Platform dependencies for logging, metrics, etc.\n */\n constructor(deps: PerpsPlatformDependencies) {\n this.#deps = deps;\n }\n\n /**\n * Report order events to data lake API with retry (non-blocking).\n * Implements exponential backoff retry logic (max 3 retries).\n *\n * @param options - Configuration object.\n * @param options.action - Order action ('open' or 'close').\n * @param options.symbol - Market symbol.\n * @param options.sl_price - Optional stop loss price.\n * @param options.tp_price - Optional take profit price.\n * @param options.isTestnet - Whether this is a testnet operation (skips API call).\n * @param options.context - ServiceContext for dependencies (messenger, tracing).\n * @param options.retryCount - Internal retry counter (managed by service).\n * @param options._traceId - Internal trace ID (managed by service).\n * @returns Result object with success flag and optional error message.\n */\n async reportOrder(options: {\n action: 'open' | 'close';\n symbol: string;\n sl_price?: number;\n tp_price?: number;\n isTestnet: boolean;\n context: ServiceContext;\n retryCount?: number;\n _traceId?: string;\n }): Promise<{ success: boolean; error?: string }> {\n const {\n action,\n symbol,\n sl_price,\n tp_price,\n isTestnet,\n context,\n retryCount = 0,\n _traceId,\n } = options;\n\n // Skip data lake reporting for testnet as the API doesn't handle testnet data\n if (isTestnet) {\n this.#deps.debugLogger.log('DataLake API: Skipping for testnet', {\n action,\n symbol,\n network: 'testnet',\n });\n return { success: true, error: 'Skipped for testnet' };\n }\n\n const MAX_RETRIES = 3;\n const RETRY_DELAY_MS = 1000;\n\n // Generate trace ID once on first call\n const traceId = _traceId ?? uuidv4();\n\n // Start trace only on first attempt\n if (retryCount === 0) {\n this.#deps.tracer.trace({\n name: PerpsTraceNames.DataLakeReport,\n op: PerpsTraceOperations.Operation,\n id: traceId,\n tags: {\n action,\n symbol,\n provider: context.tracingContext.provider,\n isTestnet: String(context.tracingContext.isTestnet),\n },\n });\n }\n\n // Log the attempt\n this.#deps.debugLogger.log('DataLake API: Starting order report', {\n action,\n symbol,\n attempt: retryCount + 1,\n maxAttempts: MAX_RETRIES + 1,\n hasStopLoss: Boolean(sl_price),\n hasTakeProfit: Boolean(tp_price),\n timestamp: new Date().toISOString(),\n });\n\n const apiCallStartTime = this.#deps.performance.now();\n\n try {\n const token =\n await this.#deps.controllers.authentication.getBearerToken();\n const evmAccount =\n this.#deps.controllers.accounts.getSelectedEvmAccount();\n\n if (!evmAccount || !token) {\n this.#deps.debugLogger.log('DataLake API: Missing requirements', {\n hasAccount: Boolean(evmAccount),\n hasToken: Boolean(token),\n action,\n symbol,\n });\n return { success: false, error: 'No account or token available' };\n }\n\n const response = await fetch(DATA_LAKE_API_CONFIG.OrdersEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n body: JSON.stringify({\n user_id: evmAccount.address,\n symbol,\n sl_price,\n tp_price,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`DataLake API error: ${response.status}`);\n }\n\n // Consume response body (might be empty for 201, but good to check)\n const responseBody = await response.text();\n\n const apiCallDuration = this.#deps.performance.now() - apiCallStartTime;\n\n // Record measurement\n this.#deps.tracer.setMeasurement(\n PerpsMeasurementName.PerpsDataLakeApiCall,\n apiCallDuration,\n 'millisecond',\n );\n\n // Success logging\n this.#deps.debugLogger.log('DataLake API: Order reported successfully', {\n action,\n symbol,\n status: response.status,\n attempt: retryCount + 1,\n responseBody: responseBody || 'empty',\n duration: `${apiCallDuration.toFixed(0)}ms`,\n });\n\n // End trace on success\n this.#deps.tracer.endTrace({\n name: PerpsTraceNames.DataLakeReport,\n id: traceId,\n data: {\n success: true,\n retries: retryCount,\n },\n });\n\n return { success: true };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Unknown error';\n\n this.#deps.logger.error(ensureError(error), {\n context: {\n name: 'DataLakeService.reportOrder',\n data: {\n action,\n symbol,\n retryCount,\n willRetry: retryCount < MAX_RETRIES,\n },\n },\n });\n\n // Retry logic\n if (retryCount < MAX_RETRIES) {\n const retryDelay = RETRY_DELAY_MS * Math.pow(2, retryCount);\n this.#deps.debugLogger.log('DataLake API: Scheduling retry', {\n retryIn: `${retryDelay}ms`,\n nextAttempt: retryCount + 2,\n action,\n symbol,\n });\n\n setTimeout(() => {\n this.reportOrder({\n action,\n symbol,\n sl_price,\n tp_price,\n isTestnet,\n context,\n retryCount: retryCount + 1,\n _traceId: traceId,\n }).catch((retryError) => {\n this.#deps.logger.error(ensureError(retryError), {\n context: {\n name: 'DataLakeService.reportOrder',\n data: {\n operation: 'retry',\n retryCount: retryCount + 1,\n action,\n symbol,\n },\n },\n });\n });\n }, retryDelay);\n\n return { success: false, error: errorMessage };\n }\n\n this.#deps.tracer.endTrace({\n name: PerpsTraceNames.DataLakeReport,\n id: traceId,\n data: {\n success: false,\n error: errorMessage,\n totalRetries: retryCount,\n },\n });\n\n this.#deps.logger.error(ensureError(error), {\n context: {\n name: 'DataLakeService.reportOrder',\n data: { operation: 'finalFailure', action, symbol, retryCount },\n },\n });\n\n return { success: false, error: errorMessage };\n }\n }\n}\n"]}
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _DepositService_deps;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DepositService = void 0;
16
- const controller_utils_1 = require("@metamask/controller-utils");
17
- const utils_1 = require("@metamask/utils");
18
- const idUtils_1 = require("../utils/idUtils.cjs");
19
- const transactionUtils_1 = require("../utils/transactionUtils.cjs");
20
- // Temporary to avoid estimation failures due to insufficient balance
21
- const DEPOSIT_GAS_LIMIT = (0, controller_utils_1.toHex)(100000);
22
- /**
23
- * DepositService
24
- *
25
- * Handles deposit transaction preparation and validation.
26
- * Stateless service that prepares transaction data for TransactionController.
27
- * Controller handles TransactionController integration and promise lifecycle.
28
- *
29
- * Instance-based service with constructor injection of platform dependencies.
30
- */
31
- class DepositService {
32
- /**
33
- * Create a new DepositService instance.
34
- *
35
- * @param deps - Platform dependencies for logging, metrics, etc.
36
- */
37
- constructor(deps) {
38
- _DepositService_deps.set(this, void 0);
39
- __classPrivateFieldSet(this, _DepositService_deps, deps, "f");
40
- }
41
- /**
42
- * Prepare deposit transaction for confirmation.
43
- * Extracts transaction construction logic from controller.
44
- *
45
- * @param options - Configuration object.
46
- * @param options.provider - Active provider instance.
47
- * @returns Transaction data ready for TransactionController.addTransaction.
48
- */
49
- async prepareTransaction(options) {
50
- const { provider } = options;
51
- __classPrivateFieldGet(this, _DepositService_deps, "f").debugLogger.log('DepositService: Preparing deposit transaction');
52
- // Generate deposit request ID for tracking
53
- const currentDepositId = (0, idUtils_1.generateDepositId)();
54
- // Get deposit routes from provider
55
- const depositRoutes = provider.getDepositRoutes({ isTestnet: false });
56
- const route = depositRoutes[0];
57
- const bridgeContractAddress = route.contractAddress;
58
- // Generate transfer data for ERC-20 token transfer
59
- const transferData = (0, transactionUtils_1.generateTransferData)('transfer', {
60
- toAddress: bridgeContractAddress,
61
- amount: '0x0',
62
- });
63
- // Get EVM account from selected account group via dependency injection
64
- const evmAccount = __classPrivateFieldGet(this, _DepositService_deps, "f").controllers.accounts.getSelectedEvmAccount();
65
- if (!evmAccount) {
66
- throw new Error('No EVM-compatible account found in selected account group');
67
- }
68
- const accountAddress = evmAccount.address;
69
- // Parse CAIP asset ID to extract chain ID and token address
70
- const parsedAsset = (0, utils_1.parseCaipAssetId)(route.assetId);
71
- const assetChainId = (0, controller_utils_1.toHex)(parsedAsset.chainId.split(':')[1]);
72
- const tokenAddress = parsedAsset.assetReference;
73
- // Build transaction parameters for TransactionController
74
- const transaction = {
75
- from: accountAddress,
76
- to: tokenAddress,
77
- value: '0x0',
78
- data: transferData,
79
- gas: DEPOSIT_GAS_LIMIT,
80
- };
81
- __classPrivateFieldGet(this, _DepositService_deps, "f").debugLogger.log('DepositService: Deposit transaction prepared', {
82
- depositId: currentDepositId,
83
- assetChainId,
84
- from: accountAddress,
85
- to: tokenAddress,
86
- });
87
- return {
88
- transaction,
89
- assetChainId,
90
- currentDepositId,
91
- };
92
- }
93
- }
94
- exports.DepositService = DepositService;
95
- _DepositService_deps = new WeakMap();
96
- //# sourceMappingURL=DepositService.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DepositService.cjs","sourceRoot":"","sources":["../../src/services/DepositService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iEAAmD;AAGnD,2CAAmD;AAGnD,kDAAqD;AACrD,oEAAiE;AAEjE,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,IAAA,wBAAK,EAAC,MAAM,CAAC,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAa,cAAc;IAGzB;;;;OAIG;IACH,YAAY,IAA+B;QAPlC,uCAAiC;QAQxC,uBAAA,IAAI,wBAAS,IAAI,MAAA,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAoC;QAK3D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,uBAAA,IAAI,4BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAE5E,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,IAAA,2BAAiB,GAAE,CAAC;QAE7C,mCAAmC;QACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,qBAAqB,GAAG,KAAK,CAAC,eAAe,CAAC;QAEpD,mDAAmD;QACnD,MAAM,YAAY,GAAG,IAAA,uCAAoB,EAAC,UAAU,EAAE;YACpD,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,uEAAuE;QACvE,MAAM,UAAU,GAAG,uBAAA,IAAI,4BAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAc,CAAC;QAEjD,4DAA4D;QAC5D,MAAM,WAAW,GAAG,IAAA,wBAAgB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,YAAY,GAAQ,IAAA,wBAAK,EAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,WAAW,CAAC,cAAqB,CAAC;QAEvD,yDAAyD;QACzD,MAAM,WAAW,GAAsB;YACrC,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,iBAAiB;SACvB,CAAC;QAEF,uBAAA,IAAI,4BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,8CAA8C,EAAE;YACzE,SAAS,EAAE,gBAAgB;YAC3B,YAAY;YACZ,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,YAAY;SACjB,CAAC,CAAC;QAEH,OAAO;YACL,WAAW;YACX,YAAY;YACZ,gBAAgB;SACjB,CAAC;IACJ,CAAC;CACF;AA/ED,wCA+EC","sourcesContent":["import { toHex } from '@metamask/controller-utils';\nimport type { TransactionParams } from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { parseCaipAssetId } from '@metamask/utils';\n\nimport type { PerpsProvider, PerpsPlatformDependencies } from '../types';\nimport { generateDepositId } from '../utils/idUtils';\nimport { generateTransferData } from '../utils/transactionUtils';\n\n// Temporary to avoid estimation failures due to insufficient balance\nconst DEPOSIT_GAS_LIMIT = toHex(100000);\n\n/**\n * DepositService\n *\n * Handles deposit transaction preparation and validation.\n * Stateless service that prepares transaction data for TransactionController.\n * Controller handles TransactionController integration and promise lifecycle.\n *\n * Instance-based service with constructor injection of platform dependencies.\n */\nexport class DepositService {\n readonly #deps: PerpsPlatformDependencies;\n\n /**\n * Create a new DepositService instance.\n *\n * @param deps - Platform dependencies for logging, metrics, etc.\n */\n constructor(deps: PerpsPlatformDependencies) {\n this.#deps = deps;\n }\n\n /**\n * Prepare deposit transaction for confirmation.\n * Extracts transaction construction logic from controller.\n *\n * @param options - Configuration object.\n * @param options.provider - Active provider instance.\n * @returns Transaction data ready for TransactionController.addTransaction.\n */\n async prepareTransaction(options: { provider: PerpsProvider }): Promise<{\n transaction: TransactionParams;\n assetChainId: Hex;\n currentDepositId: string;\n }> {\n const { provider } = options;\n\n this.#deps.debugLogger.log('DepositService: Preparing deposit transaction');\n\n // Generate deposit request ID for tracking\n const currentDepositId = generateDepositId();\n\n // Get deposit routes from provider\n const depositRoutes = provider.getDepositRoutes({ isTestnet: false });\n const route = depositRoutes[0];\n const bridgeContractAddress = route.contractAddress;\n\n // Generate transfer data for ERC-20 token transfer\n const transferData = generateTransferData('transfer', {\n toAddress: bridgeContractAddress,\n amount: '0x0',\n });\n\n // Get EVM account from selected account group via dependency injection\n const evmAccount = this.#deps.controllers.accounts.getSelectedEvmAccount();\n if (!evmAccount) {\n throw new Error(\n 'No EVM-compatible account found in selected account group',\n );\n }\n const accountAddress = evmAccount.address as Hex;\n\n // Parse CAIP asset ID to extract chain ID and token address\n const parsedAsset = parseCaipAssetId(route.assetId);\n const assetChainId: Hex = toHex(parsedAsset.chainId.split(':')[1]);\n const tokenAddress = parsedAsset.assetReference as Hex;\n\n // Build transaction parameters for TransactionController\n const transaction: TransactionParams = {\n from: accountAddress,\n to: tokenAddress,\n value: '0x0',\n data: transferData,\n gas: DEPOSIT_GAS_LIMIT,\n };\n\n this.#deps.debugLogger.log('DepositService: Deposit transaction prepared', {\n depositId: currentDepositId,\n assetChainId,\n from: accountAddress,\n to: tokenAddress,\n });\n\n return {\n transaction,\n assetChainId,\n currentDepositId,\n };\n }\n}\n"]}
@@ -1,37 +0,0 @@
1
- import type { TransactionParams } from "@metamask/transaction-controller";
2
- import type { Hex } from "@metamask/utils";
3
- import type { PerpsProvider, PerpsPlatformDependencies } from "../types/index.cjs";
4
- /**
5
- * DepositService
6
- *
7
- * Handles deposit transaction preparation and validation.
8
- * Stateless service that prepares transaction data for TransactionController.
9
- * Controller handles TransactionController integration and promise lifecycle.
10
- *
11
- * Instance-based service with constructor injection of platform dependencies.
12
- */
13
- export declare class DepositService {
14
- #private;
15
- /**
16
- * Create a new DepositService instance.
17
- *
18
- * @param deps - Platform dependencies for logging, metrics, etc.
19
- */
20
- constructor(deps: PerpsPlatformDependencies);
21
- /**
22
- * Prepare deposit transaction for confirmation.
23
- * Extracts transaction construction logic from controller.
24
- *
25
- * @param options - Configuration object.
26
- * @param options.provider - Active provider instance.
27
- * @returns Transaction data ready for TransactionController.addTransaction.
28
- */
29
- prepareTransaction(options: {
30
- provider: PerpsProvider;
31
- }): Promise<{
32
- transaction: TransactionParams;
33
- assetChainId: Hex;
34
- currentDepositId: string;
35
- }>;
36
- }
37
- //# sourceMappingURL=DepositService.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DepositService.d.cts","sourceRoot":"","sources":["../../src/services/DepositService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yCAAyC;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,2BAAiB;AAOzE;;;;;;;;GAQG;AACH,qBAAa,cAAc;;IAGzB;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;;;OAOG;IACG,kBAAkB,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,aAAa,CAAA;KAAE,GAAG,OAAO,CAAC;QACtE,WAAW,EAAE,iBAAiB,CAAC;QAC/B,YAAY,EAAE,GAAG,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CAuDH"}
@@ -1,37 +0,0 @@
1
- import type { TransactionParams } from "@metamask/transaction-controller";
2
- import type { Hex } from "@metamask/utils";
3
- import type { PerpsProvider, PerpsPlatformDependencies } from "../types/index.mjs";
4
- /**
5
- * DepositService
6
- *
7
- * Handles deposit transaction preparation and validation.
8
- * Stateless service that prepares transaction data for TransactionController.
9
- * Controller handles TransactionController integration and promise lifecycle.
10
- *
11
- * Instance-based service with constructor injection of platform dependencies.
12
- */
13
- export declare class DepositService {
14
- #private;
15
- /**
16
- * Create a new DepositService instance.
17
- *
18
- * @param deps - Platform dependencies for logging, metrics, etc.
19
- */
20
- constructor(deps: PerpsPlatformDependencies);
21
- /**
22
- * Prepare deposit transaction for confirmation.
23
- * Extracts transaction construction logic from controller.
24
- *
25
- * @param options - Configuration object.
26
- * @param options.provider - Active provider instance.
27
- * @returns Transaction data ready for TransactionController.addTransaction.
28
- */
29
- prepareTransaction(options: {
30
- provider: PerpsProvider;
31
- }): Promise<{
32
- transaction: TransactionParams;
33
- assetChainId: Hex;
34
- currentDepositId: string;
35
- }>;
36
- }
37
- //# sourceMappingURL=DepositService.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DepositService.d.mts","sourceRoot":"","sources":["../../src/services/DepositService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yCAAyC;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,2BAAiB;AAOzE;;;;;;;;GAQG;AACH,qBAAa,cAAc;;IAGzB;;;;OAIG;gBACS,IAAI,EAAE,yBAAyB;IAI3C;;;;;;;OAOG;IACG,kBAAkB,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,aAAa,CAAA;KAAE,GAAG,OAAO,CAAC;QACtE,WAAW,EAAE,iBAAiB,CAAC;QAC/B,YAAY,EAAE,GAAG,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CAuDH"}
@@ -1,92 +0,0 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _DepositService_deps;
13
- import { toHex } from "@metamask/controller-utils";
14
- import { parseCaipAssetId } from "@metamask/utils";
15
- import { generateDepositId } from "../utils/idUtils.mjs";
16
- import { generateTransferData } from "../utils/transactionUtils.mjs";
17
- // Temporary to avoid estimation failures due to insufficient balance
18
- const DEPOSIT_GAS_LIMIT = toHex(100000);
19
- /**
20
- * DepositService
21
- *
22
- * Handles deposit transaction preparation and validation.
23
- * Stateless service that prepares transaction data for TransactionController.
24
- * Controller handles TransactionController integration and promise lifecycle.
25
- *
26
- * Instance-based service with constructor injection of platform dependencies.
27
- */
28
- export class DepositService {
29
- /**
30
- * Create a new DepositService instance.
31
- *
32
- * @param deps - Platform dependencies for logging, metrics, etc.
33
- */
34
- constructor(deps) {
35
- _DepositService_deps.set(this, void 0);
36
- __classPrivateFieldSet(this, _DepositService_deps, deps, "f");
37
- }
38
- /**
39
- * Prepare deposit transaction for confirmation.
40
- * Extracts transaction construction logic from controller.
41
- *
42
- * @param options - Configuration object.
43
- * @param options.provider - Active provider instance.
44
- * @returns Transaction data ready for TransactionController.addTransaction.
45
- */
46
- async prepareTransaction(options) {
47
- const { provider } = options;
48
- __classPrivateFieldGet(this, _DepositService_deps, "f").debugLogger.log('DepositService: Preparing deposit transaction');
49
- // Generate deposit request ID for tracking
50
- const currentDepositId = generateDepositId();
51
- // Get deposit routes from provider
52
- const depositRoutes = provider.getDepositRoutes({ isTestnet: false });
53
- const route = depositRoutes[0];
54
- const bridgeContractAddress = route.contractAddress;
55
- // Generate transfer data for ERC-20 token transfer
56
- const transferData = generateTransferData('transfer', {
57
- toAddress: bridgeContractAddress,
58
- amount: '0x0',
59
- });
60
- // Get EVM account from selected account group via dependency injection
61
- const evmAccount = __classPrivateFieldGet(this, _DepositService_deps, "f").controllers.accounts.getSelectedEvmAccount();
62
- if (!evmAccount) {
63
- throw new Error('No EVM-compatible account found in selected account group');
64
- }
65
- const accountAddress = evmAccount.address;
66
- // Parse CAIP asset ID to extract chain ID and token address
67
- const parsedAsset = parseCaipAssetId(route.assetId);
68
- const assetChainId = toHex(parsedAsset.chainId.split(':')[1]);
69
- const tokenAddress = parsedAsset.assetReference;
70
- // Build transaction parameters for TransactionController
71
- const transaction = {
72
- from: accountAddress,
73
- to: tokenAddress,
74
- value: '0x0',
75
- data: transferData,
76
- gas: DEPOSIT_GAS_LIMIT,
77
- };
78
- __classPrivateFieldGet(this, _DepositService_deps, "f").debugLogger.log('DepositService: Deposit transaction prepared', {
79
- depositId: currentDepositId,
80
- assetChainId,
81
- from: accountAddress,
82
- to: tokenAddress,
83
- });
84
- return {
85
- transaction,
86
- assetChainId,
87
- currentDepositId,
88
- };
89
- }
90
- }
91
- _DepositService_deps = new WeakMap();
92
- //# sourceMappingURL=DepositService.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DepositService.mjs","sourceRoot":"","sources":["../../src/services/DepositService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,mCAAmC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,wBAAwB;AAGnD,OAAO,EAAE,iBAAiB,EAAE,6BAAyB;AACrD,OAAO,EAAE,oBAAoB,EAAE,sCAAkC;AAEjE,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAc;IAGzB;;;;OAIG;IACH,YAAY,IAA+B;QAPlC,uCAAiC;QAQxC,uBAAA,IAAI,wBAAS,IAAI,MAAA,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAoC;QAK3D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,uBAAA,IAAI,4BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAE5E,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;QAE7C,mCAAmC;QACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,qBAAqB,GAAG,KAAK,CAAC,eAAe,CAAC;QAEpD,mDAAmD;QACnD,MAAM,YAAY,GAAG,oBAAoB,CAAC,UAAU,EAAE;YACpD,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,uEAAuE;QACvE,MAAM,UAAU,GAAG,uBAAA,IAAI,4BAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAc,CAAC;QAEjD,4DAA4D;QAC5D,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,YAAY,GAAQ,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,WAAW,CAAC,cAAqB,CAAC;QAEvD,yDAAyD;QACzD,MAAM,WAAW,GAAsB;YACrC,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,iBAAiB;SACvB,CAAC;QAEF,uBAAA,IAAI,4BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,8CAA8C,EAAE;YACzE,SAAS,EAAE,gBAAgB;YAC3B,YAAY;YACZ,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,YAAY;SACjB,CAAC,CAAC;QAEH,OAAO;YACL,WAAW;YACX,YAAY;YACZ,gBAAgB;SACjB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { toHex } from '@metamask/controller-utils';\nimport type { TransactionParams } from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { parseCaipAssetId } from '@metamask/utils';\n\nimport type { PerpsProvider, PerpsPlatformDependencies } from '../types';\nimport { generateDepositId } from '../utils/idUtils';\nimport { generateTransferData } from '../utils/transactionUtils';\n\n// Temporary to avoid estimation failures due to insufficient balance\nconst DEPOSIT_GAS_LIMIT = toHex(100000);\n\n/**\n * DepositService\n *\n * Handles deposit transaction preparation and validation.\n * Stateless service that prepares transaction data for TransactionController.\n * Controller handles TransactionController integration and promise lifecycle.\n *\n * Instance-based service with constructor injection of platform dependencies.\n */\nexport class DepositService {\n readonly #deps: PerpsPlatformDependencies;\n\n /**\n * Create a new DepositService instance.\n *\n * @param deps - Platform dependencies for logging, metrics, etc.\n */\n constructor(deps: PerpsPlatformDependencies) {\n this.#deps = deps;\n }\n\n /**\n * Prepare deposit transaction for confirmation.\n * Extracts transaction construction logic from controller.\n *\n * @param options - Configuration object.\n * @param options.provider - Active provider instance.\n * @returns Transaction data ready for TransactionController.addTransaction.\n */\n async prepareTransaction(options: { provider: PerpsProvider }): Promise<{\n transaction: TransactionParams;\n assetChainId: Hex;\n currentDepositId: string;\n }> {\n const { provider } = options;\n\n this.#deps.debugLogger.log('DepositService: Preparing deposit transaction');\n\n // Generate deposit request ID for tracking\n const currentDepositId = generateDepositId();\n\n // Get deposit routes from provider\n const depositRoutes = provider.getDepositRoutes({ isTestnet: false });\n const route = depositRoutes[0];\n const bridgeContractAddress = route.contractAddress;\n\n // Generate transfer data for ERC-20 token transfer\n const transferData = generateTransferData('transfer', {\n toAddress: bridgeContractAddress,\n amount: '0x0',\n });\n\n // Get EVM account from selected account group via dependency injection\n const evmAccount = this.#deps.controllers.accounts.getSelectedEvmAccount();\n if (!evmAccount) {\n throw new Error(\n 'No EVM-compatible account found in selected account group',\n );\n }\n const accountAddress = evmAccount.address as Hex;\n\n // Parse CAIP asset ID to extract chain ID and token address\n const parsedAsset = parseCaipAssetId(route.assetId);\n const assetChainId: Hex = toHex(parsedAsset.chainId.split(':')[1]);\n const tokenAddress = parsedAsset.assetReference as Hex;\n\n // Build transaction parameters for TransactionController\n const transaction: TransactionParams = {\n from: accountAddress,\n to: tokenAddress,\n value: '0x0',\n data: transferData,\n gas: DEPOSIT_GAS_LIMIT,\n };\n\n this.#deps.debugLogger.log('DepositService: Deposit transaction prepared', {\n depositId: currentDepositId,\n assetChainId,\n from: accountAddress,\n to: tokenAddress,\n });\n\n return {\n transaction,\n assetChainId,\n currentDepositId,\n };\n }\n}\n"]}