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