@lifi/perps-types 0.2.0-alpha.0 → 1.0.1

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 (328) hide show
  1. package/README.md +4 -30
  2. package/dist/cjs/acceptTerms.d.ts +20 -0
  3. package/dist/cjs/acceptTerms.d.ts.map +1 -0
  4. package/dist/cjs/acceptTerms.js +10 -0
  5. package/dist/cjs/acceptTerms.js.map +1 -0
  6. package/dist/cjs/account.d.ts +191 -0
  7. package/dist/cjs/account.d.ts.map +1 -0
  8. package/{src/_esm → dist/cjs}/account.js.map +1 -1
  9. package/dist/cjs/action.d.ts +200 -0
  10. package/dist/cjs/action.d.ts.map +1 -0
  11. package/dist/cjs/action.js.map +1 -0
  12. package/dist/cjs/asset.d.ts +11 -0
  13. package/dist/cjs/asset.d.ts.map +1 -0
  14. package/dist/cjs/asset.js.map +1 -0
  15. package/{src/_types → dist/cjs}/enums.d.ts +6 -12
  16. package/dist/cjs/enums.d.ts.map +1 -0
  17. package/{src/_cjs → dist/cjs}/enums.js +4 -0
  18. package/dist/cjs/enums.js.map +1 -0
  19. package/dist/cjs/errors.d.ts.map +1 -0
  20. package/dist/cjs/errors.js.map +1 -0
  21. package/{src/_types → dist/cjs}/index.d.ts +11 -5
  22. package/dist/cjs/index.d.ts.map +1 -0
  23. package/{src/_cjs → dist/cjs}/index.js +11 -5
  24. package/dist/cjs/index.js.map +1 -0
  25. package/{src/_types/asset.d.ts → dist/cjs/market.d.ts} +33 -25
  26. package/dist/cjs/market.d.ts.map +1 -0
  27. package/dist/cjs/market.js +3 -0
  28. package/dist/cjs/market.js.map +1 -0
  29. package/dist/cjs/meta.d.ts +17 -0
  30. package/dist/cjs/meta.d.ts.map +1 -0
  31. package/dist/cjs/meta.js +3 -0
  32. package/dist/cjs/meta.js.map +1 -0
  33. package/dist/cjs/primitives.d.ts +3 -0
  34. package/dist/cjs/primitives.d.ts.map +1 -0
  35. package/dist/cjs/primitives.js +3 -0
  36. package/dist/cjs/primitives.js.map +1 -0
  37. package/dist/cjs/providers.d.ts +58 -0
  38. package/dist/cjs/providers.d.ts.map +1 -0
  39. package/{src/_cjs → dist/cjs}/providers.js.map +1 -1
  40. package/dist/cjs/quote.d.ts +23 -0
  41. package/dist/cjs/quote.d.ts.map +1 -0
  42. package/dist/cjs/quote.js +3 -0
  43. package/dist/cjs/quote.js.map +1 -0
  44. package/{src/_types → dist/cjs}/subscriptions.d.ts +14 -13
  45. package/dist/cjs/subscriptions.d.ts.map +1 -0
  46. package/{src/_cjs → dist/cjs}/subscriptions.js.map +1 -1
  47. package/dist/cjs/typedData.d.ts +23 -0
  48. package/dist/cjs/typedData.d.ts.map +1 -0
  49. package/{src/_cjs → dist/cjs}/typedData.js.map +1 -1
  50. package/dist/cjs/vote.d.ts +27 -0
  51. package/dist/cjs/vote.d.ts.map +1 -0
  52. package/dist/cjs/vote.js +12 -0
  53. package/dist/cjs/vote.js.map +1 -0
  54. package/dist/esm/acceptTerms.d.ts +45 -0
  55. package/dist/esm/acceptTerms.d.ts.map +1 -0
  56. package/dist/esm/acceptTerms.js +12 -0
  57. package/dist/esm/acceptTerms.js.map +1 -0
  58. package/dist/esm/account.d.ts +229 -0
  59. package/dist/esm/account.d.ts.map +1 -0
  60. package/{src/_cjs → dist/esm}/account.js.map +1 -1
  61. package/{src/_types → dist/esm}/action.d.ts +56 -69
  62. package/dist/esm/action.d.ts.map +1 -0
  63. package/dist/esm/action.js +2 -0
  64. package/dist/esm/action.js.map +1 -0
  65. package/dist/esm/asset.d.ts +25 -0
  66. package/dist/esm/asset.d.ts.map +1 -0
  67. package/dist/esm/asset.js.map +1 -0
  68. package/dist/esm/enums.d.ts +171 -0
  69. package/dist/esm/enums.d.ts.map +1 -0
  70. package/{src/_esm → dist/esm}/enums.js +26 -10
  71. package/dist/esm/enums.js.map +1 -0
  72. package/dist/esm/errors.d.ts +8 -0
  73. package/dist/esm/errors.d.ts.map +1 -0
  74. package/dist/esm/errors.js.map +1 -0
  75. package/dist/esm/index.d.ts +23 -0
  76. package/dist/esm/index.d.ts.map +1 -0
  77. package/dist/esm/index.js +23 -0
  78. package/dist/esm/index.js.map +1 -0
  79. package/dist/esm/market.d.ts +107 -0
  80. package/dist/esm/market.d.ts.map +1 -0
  81. package/dist/esm/market.js +2 -0
  82. package/dist/esm/market.js.map +1 -0
  83. package/dist/esm/meta.d.ts +37 -0
  84. package/dist/esm/meta.d.ts.map +1 -0
  85. package/dist/esm/meta.js +2 -0
  86. package/dist/esm/meta.js.map +1 -0
  87. package/dist/esm/primitives.d.ts +5 -0
  88. package/dist/esm/primitives.d.ts.map +1 -0
  89. package/dist/esm/primitives.js +2 -0
  90. package/dist/esm/primitives.js.map +1 -0
  91. package/dist/esm/providers.d.ts +116 -0
  92. package/dist/esm/providers.d.ts.map +1 -0
  93. package/{src/_esm → dist/esm}/providers.js.map +1 -1
  94. package/dist/esm/quote.d.ts +47 -0
  95. package/dist/esm/quote.d.ts.map +1 -0
  96. package/dist/esm/quote.js +2 -0
  97. package/dist/esm/quote.js.map +1 -0
  98. package/dist/esm/subscriptions.d.ts +115 -0
  99. package/dist/esm/subscriptions.d.ts.map +1 -0
  100. package/{src/_esm → dist/esm}/subscriptions.js.map +1 -1
  101. package/dist/esm/typedData.d.ts +28 -0
  102. package/dist/esm/typedData.d.ts.map +1 -0
  103. package/{src/_esm → dist/esm}/typedData.js.map +1 -1
  104. package/dist/esm/vote.d.ts +68 -0
  105. package/dist/esm/vote.d.ts.map +1 -0
  106. package/dist/esm/vote.js +20 -0
  107. package/dist/esm/vote.js.map +1 -0
  108. package/dist/types/acceptTerms.d.ts +45 -0
  109. package/dist/types/acceptTerms.d.ts.map +1 -0
  110. package/dist/types/account.d.ts +229 -0
  111. package/dist/types/account.d.ts.map +1 -0
  112. package/dist/types/action.d.ts +248 -0
  113. package/dist/types/action.d.ts.map +1 -0
  114. package/dist/types/asset.d.ts +25 -0
  115. package/dist/types/asset.d.ts.map +1 -0
  116. package/dist/types/enums.d.ts +171 -0
  117. package/dist/types/enums.d.ts.map +1 -0
  118. package/dist/types/errors.d.ts +8 -0
  119. package/dist/types/errors.d.ts.map +1 -0
  120. package/dist/types/index.d.ts +23 -0
  121. package/dist/types/index.d.ts.map +1 -0
  122. package/dist/types/market.d.ts +107 -0
  123. package/dist/types/market.d.ts.map +1 -0
  124. package/dist/types/meta.d.ts +37 -0
  125. package/dist/types/meta.d.ts.map +1 -0
  126. package/dist/types/primitives.d.ts +5 -0
  127. package/dist/types/primitives.d.ts.map +1 -0
  128. package/dist/types/providers.d.ts +116 -0
  129. package/dist/types/providers.d.ts.map +1 -0
  130. package/dist/types/quote.d.ts +47 -0
  131. package/dist/types/quote.d.ts.map +1 -0
  132. package/dist/types/subscriptions.d.ts +115 -0
  133. package/dist/types/subscriptions.d.ts.map +1 -0
  134. package/dist/types/typedData.d.ts +28 -0
  135. package/dist/types/typedData.d.ts.map +1 -0
  136. package/dist/types/vote.d.ts +68 -0
  137. package/dist/types/vote.d.ts.map +1 -0
  138. package/package.json +37 -65
  139. package/src/acceptTerms.ts +53 -0
  140. package/src/account.ts +74 -111
  141. package/src/action.ts +64 -96
  142. package/src/asset.ts +19 -82
  143. package/src/enums.ts +27 -10
  144. package/src/errors.ts +1 -0
  145. package/src/index.ts +20 -5
  146. package/src/market.ts +137 -0
  147. package/src/meta.ts +38 -0
  148. package/src/primitives.ts +5 -0
  149. package/src/providers.ts +79 -110
  150. package/src/quote.ts +49 -0
  151. package/src/subscriptions.ts +62 -18
  152. package/src/typedData.ts +20 -11
  153. package/src/vote.ts +79 -0
  154. package/providers/hyperliquid/package.json +0 -5
  155. package/providers/lighter/package.json +0 -5
  156. package/src/_cjs/action.js.map +0 -1
  157. package/src/_cjs/asset.js.map +0 -1
  158. package/src/_cjs/enums.js.map +0 -1
  159. package/src/_cjs/errors.js.map +0 -1
  160. package/src/_cjs/index.js.map +0 -1
  161. package/src/_cjs/providers/_shared/fillClassification.js +0 -37
  162. package/src/_cjs/providers/_shared/fillClassification.js.map +0 -1
  163. package/src/_cjs/providers/hyperliquid/assetId.js +0 -21
  164. package/src/_cjs/providers/hyperliquid/assetId.js.map +0 -1
  165. package/src/_cjs/providers/hyperliquid/index.js +0 -20
  166. package/src/_cjs/providers/hyperliquid/index.js.map +0 -1
  167. package/src/_cjs/providers/hyperliquid/mappers/_market.js +0 -15
  168. package/src/_cjs/providers/hyperliquid/mappers/_market.js.map +0 -1
  169. package/src/_cjs/providers/hyperliquid/mappers/activity.js +0 -128
  170. package/src/_cjs/providers/hyperliquid/mappers/activity.js.map +0 -1
  171. package/src/_cjs/providers/hyperliquid/mappers/asset.js +0 -29
  172. package/src/_cjs/providers/hyperliquid/mappers/asset.js.map +0 -1
  173. package/src/_cjs/providers/hyperliquid/mappers/fill.js +0 -36
  174. package/src/_cjs/providers/hyperliquid/mappers/fill.js.map +0 -1
  175. package/src/_cjs/providers/hyperliquid/mappers/index.js +0 -20
  176. package/src/_cjs/providers/hyperliquid/mappers/index.js.map +0 -1
  177. package/src/_cjs/providers/hyperliquid/mappers/order.js +0 -153
  178. package/src/_cjs/providers/hyperliquid/mappers/order.js.map +0 -1
  179. package/src/_cjs/providers/hyperliquid/mappers/position.js +0 -32
  180. package/src/_cjs/providers/hyperliquid/mappers/position.js.map +0 -1
  181. package/src/_cjs/providers/hyperliquid/mappers/shared.js +0 -2
  182. package/src/_cjs/providers/hyperliquid/mappers/shared.js.map +0 -1
  183. package/src/_cjs/providers/hyperliquid/types.js +0 -21
  184. package/src/_cjs/providers/hyperliquid/types.js.map +0 -1
  185. package/src/_cjs/providers/lighter/apiTypes.js +0 -3
  186. package/src/_cjs/providers/lighter/apiTypes.js.map +0 -1
  187. package/src/_cjs/providers/lighter/index.js +0 -20
  188. package/src/_cjs/providers/lighter/index.js.map +0 -1
  189. package/src/_cjs/providers/lighter/mappers/fill.js +0 -34
  190. package/src/_cjs/providers/lighter/mappers/fill.js.map +0 -1
  191. package/src/_cjs/providers/lighter/mappers/index.js +0 -13
  192. package/src/_cjs/providers/lighter/mappers/index.js.map +0 -1
  193. package/src/_cjs/providers/lighter/mappers/order.js +0 -142
  194. package/src/_cjs/providers/lighter/mappers/order.js.map +0 -1
  195. package/src/_cjs/providers/lighter/mappers/position.js +0 -35
  196. package/src/_cjs/providers/lighter/mappers/position.js.map +0 -1
  197. package/src/_cjs/providers/lighter/types.js +0 -23
  198. package/src/_cjs/providers/lighter/types.js.map +0 -1
  199. package/src/_esm/action.js +0 -2
  200. package/src/_esm/action.js.map +0 -1
  201. package/src/_esm/asset.js.map +0 -1
  202. package/src/_esm/enums.js.map +0 -1
  203. package/src/_esm/errors.js.map +0 -1
  204. package/src/_esm/index.js +0 -9
  205. package/src/_esm/index.js.map +0 -1
  206. package/src/_esm/providers/_shared/fillClassification.js +0 -43
  207. package/src/_esm/providers/_shared/fillClassification.js.map +0 -1
  208. package/src/_esm/providers/hyperliquid/assetId.js +0 -25
  209. package/src/_esm/providers/hyperliquid/assetId.js.map +0 -1
  210. package/src/_esm/providers/hyperliquid/index.js +0 -4
  211. package/src/_esm/providers/hyperliquid/index.js.map +0 -1
  212. package/src/_esm/providers/hyperliquid/mappers/_market.js +0 -22
  213. package/src/_esm/providers/hyperliquid/mappers/_market.js.map +0 -1
  214. package/src/_esm/providers/hyperliquid/mappers/activity.js +0 -138
  215. package/src/_esm/providers/hyperliquid/mappers/activity.js.map +0 -1
  216. package/src/_esm/providers/hyperliquid/mappers/asset.js +0 -25
  217. package/src/_esm/providers/hyperliquid/mappers/asset.js.map +0 -1
  218. package/src/_esm/providers/hyperliquid/mappers/fill.js +0 -32
  219. package/src/_esm/providers/hyperliquid/mappers/fill.js.map +0 -1
  220. package/src/_esm/providers/hyperliquid/mappers/index.js +0 -6
  221. package/src/_esm/providers/hyperliquid/mappers/index.js.map +0 -1
  222. package/src/_esm/providers/hyperliquid/mappers/order.js +0 -151
  223. package/src/_esm/providers/hyperliquid/mappers/order.js.map +0 -1
  224. package/src/_esm/providers/hyperliquid/mappers/position.js +0 -28
  225. package/src/_esm/providers/hyperliquid/mappers/position.js.map +0 -1
  226. package/src/_esm/providers/hyperliquid/mappers/shared.js +0 -2
  227. package/src/_esm/providers/hyperliquid/mappers/shared.js.map +0 -1
  228. package/src/_esm/providers/hyperliquid/types.js +0 -35
  229. package/src/_esm/providers/hyperliquid/types.js.map +0 -1
  230. package/src/_esm/providers/lighter/apiTypes.js +0 -5
  231. package/src/_esm/providers/lighter/apiTypes.js.map +0 -1
  232. package/src/_esm/providers/lighter/index.js +0 -4
  233. package/src/_esm/providers/lighter/index.js.map +0 -1
  234. package/src/_esm/providers/lighter/mappers/fill.js +0 -39
  235. package/src/_esm/providers/lighter/mappers/fill.js.map +0 -1
  236. package/src/_esm/providers/lighter/mappers/index.js +0 -4
  237. package/src/_esm/providers/lighter/mappers/index.js.map +0 -1
  238. package/src/_esm/providers/lighter/mappers/order.js +0 -162
  239. package/src/_esm/providers/lighter/mappers/order.js.map +0 -1
  240. package/src/_esm/providers/lighter/mappers/position.js +0 -38
  241. package/src/_esm/providers/lighter/mappers/position.js.map +0 -1
  242. package/src/_esm/providers/lighter/types.js +0 -26
  243. package/src/_esm/providers/lighter/types.js.map +0 -1
  244. package/src/_types/account.d.ts +0 -268
  245. package/src/_types/account.d.ts.map +0 -1
  246. package/src/_types/action.d.ts.map +0 -1
  247. package/src/_types/asset.d.ts.map +0 -1
  248. package/src/_types/enums.d.ts.map +0 -1
  249. package/src/_types/errors.d.ts.map +0 -1
  250. package/src/_types/index.d.ts.map +0 -1
  251. package/src/_types/providers/_shared/fillClassification.d.ts +0 -12
  252. package/src/_types/providers/_shared/fillClassification.d.ts.map +0 -1
  253. package/src/_types/providers/hyperliquid/assetId.d.ts +0 -14
  254. package/src/_types/providers/hyperliquid/assetId.d.ts.map +0 -1
  255. package/src/_types/providers/hyperliquid/index.d.ts +0 -4
  256. package/src/_types/providers/hyperliquid/index.d.ts.map +0 -1
  257. package/src/_types/providers/hyperliquid/mappers/_market.d.ts +0 -13
  258. package/src/_types/providers/hyperliquid/mappers/_market.d.ts.map +0 -1
  259. package/src/_types/providers/hyperliquid/mappers/activity.d.ts +0 -13
  260. package/src/_types/providers/hyperliquid/mappers/activity.d.ts.map +0 -1
  261. package/src/_types/providers/hyperliquid/mappers/asset.d.ts +0 -4
  262. package/src/_types/providers/hyperliquid/mappers/asset.d.ts.map +0 -1
  263. package/src/_types/providers/hyperliquid/mappers/fill.d.ts +0 -6
  264. package/src/_types/providers/hyperliquid/mappers/fill.d.ts.map +0 -1
  265. package/src/_types/providers/hyperliquid/mappers/index.d.ts +0 -6
  266. package/src/_types/providers/hyperliquid/mappers/index.d.ts.map +0 -1
  267. package/src/_types/providers/hyperliquid/mappers/order.d.ts +0 -18
  268. package/src/_types/providers/hyperliquid/mappers/order.d.ts.map +0 -1
  269. package/src/_types/providers/hyperliquid/mappers/position.d.ts +0 -4
  270. package/src/_types/providers/hyperliquid/mappers/position.d.ts.map +0 -1
  271. package/src/_types/providers/hyperliquid/mappers/shared.d.ts +0 -1
  272. package/src/_types/providers/hyperliquid/mappers/shared.d.ts.map +0 -1
  273. package/src/_types/providers/hyperliquid/types.d.ts +0 -289
  274. package/src/_types/providers/hyperliquid/types.d.ts.map +0 -1
  275. package/src/_types/providers/lighter/apiTypes.d.ts +0 -76
  276. package/src/_types/providers/lighter/apiTypes.d.ts.map +0 -1
  277. package/src/_types/providers/lighter/index.d.ts +0 -4
  278. package/src/_types/providers/lighter/index.d.ts.map +0 -1
  279. package/src/_types/providers/lighter/mappers/fill.d.ts +0 -9
  280. package/src/_types/providers/lighter/mappers/fill.d.ts.map +0 -1
  281. package/src/_types/providers/lighter/mappers/index.d.ts +0 -4
  282. package/src/_types/providers/lighter/mappers/index.d.ts.map +0 -1
  283. package/src/_types/providers/lighter/mappers/order.d.ts +0 -35
  284. package/src/_types/providers/lighter/mappers/order.d.ts.map +0 -1
  285. package/src/_types/providers/lighter/mappers/position.d.ts +0 -8
  286. package/src/_types/providers/lighter/mappers/position.d.ts.map +0 -1
  287. package/src/_types/providers/lighter/types.d.ts +0 -90
  288. package/src/_types/providers/lighter/types.d.ts.map +0 -1
  289. package/src/_types/providers.d.ts +0 -145
  290. package/src/_types/providers.d.ts.map +0 -1
  291. package/src/_types/subscriptions.d.ts.map +0 -1
  292. package/src/_types/typedData.d.ts +0 -18
  293. package/src/_types/typedData.d.ts.map +0 -1
  294. package/src/providers/_shared/fillClassification.ts +0 -50
  295. package/src/providers/hyperliquid/assetId.ts +0 -32
  296. package/src/providers/hyperliquid/index.ts +0 -3
  297. package/src/providers/hyperliquid/mappers/_market.ts +0 -21
  298. package/src/providers/hyperliquid/mappers/activity.ts +0 -169
  299. package/src/providers/hyperliquid/mappers/asset.ts +0 -33
  300. package/src/providers/hyperliquid/mappers/fill.ts +0 -41
  301. package/src/providers/hyperliquid/mappers/index.ts +0 -11
  302. package/src/providers/hyperliquid/mappers/order.ts +0 -169
  303. package/src/providers/hyperliquid/mappers/position.ts +0 -33
  304. package/src/providers/hyperliquid/mappers/shared.ts +0 -0
  305. package/src/providers/hyperliquid/types.ts +0 -379
  306. package/src/providers/lighter/apiTypes.ts +0 -87
  307. package/src/providers/lighter/index.ts +0 -3
  308. package/src/providers/lighter/mappers/fill.ts +0 -57
  309. package/src/providers/lighter/mappers/index.ts +0 -8
  310. package/src/providers/lighter/mappers/order.ts +0 -184
  311. package/src/providers/lighter/mappers/position.ts +0 -46
  312. package/src/providers/lighter/types.ts +0 -111
  313. /package/{src/_cjs → dist/cjs}/account.js +0 -0
  314. /package/{src/_cjs → dist/cjs}/action.js +0 -0
  315. /package/{src/_cjs → dist/cjs}/asset.js +0 -0
  316. /package/{src/_types → dist/cjs}/errors.d.ts +0 -0
  317. /package/{src/_cjs → dist/cjs}/errors.js +0 -0
  318. /package/{src/_cjs → dist/cjs}/package.json +0 -0
  319. /package/{src/_cjs → dist/cjs}/providers.js +0 -0
  320. /package/{src/_cjs → dist/cjs}/subscriptions.js +0 -0
  321. /package/{src/_cjs → dist/cjs}/typedData.js +0 -0
  322. /package/{src/_esm → dist/esm}/account.js +0 -0
  323. /package/{src/_esm → dist/esm}/asset.js +0 -0
  324. /package/{src/_esm → dist/esm}/errors.js +0 -0
  325. /package/{src/_esm → dist/esm}/package.json +0 -0
  326. /package/{src/_esm → dist/esm}/providers.js +0 -0
  327. /package/{src/_esm → dist/esm}/subscriptions.js +0 -0
  328. /package/{src/_esm → dist/esm}/typedData.js +0 -0
@@ -1,57 +0,0 @@
1
- import {
2
- FillStatus,
3
- LiquidityRole,
4
- OrderSide,
5
- OrderType,
6
- } from '../../../enums.js'
7
- import type { Fill } from '../../../account.js'
8
- import type { LtTrade } from '../apiTypes.js'
9
- import { classifyFillFromPosition } from '../../_shared/fillClassification.js'
10
-
11
- /**
12
- * Map a raw Lighter trade to the generic Fill type.
13
- * @param accountIndex - The viewer's Lighter account index (selects buy/sell side and maker/taker role).
14
- * @param symbol - Resolved symbol (market_id → symbol lookup).
15
- */
16
- export const mapFill = (
17
- trade: LtTrade,
18
- accountIndex: number,
19
- symbol: string
20
- ): Fill => {
21
- const isBuyer = trade.bid_account_id === accountIndex
22
- const isMaker =
23
- (trade.is_maker_ask && !isBuyer) || (!trade.is_maker_ask && isBuyer)
24
-
25
- // Lighter publishes both counterparties' position-before snapshots on every
26
- // trade row; reading the wrong one mis-classifies when they differ.
27
- const startPosition = isMaker
28
- ? trade.maker_position_size_before
29
- : trade.taker_position_size_before
30
-
31
- return {
32
- id: trade.trade_id.toString(),
33
- orderId: String(isBuyer ? trade.bid_id : trade.ask_id),
34
- asset: {
35
- assetId: symbol,
36
- market: 'lighter',
37
- displaySymbol: symbol,
38
- displayQuote: 'USDC',
39
- },
40
- side: isBuyer ? OrderSide.BUY : OrderSide.SELL,
41
- type: OrderType.LIMIT,
42
- size: trade.size,
43
- price: trade.price,
44
- status: FillStatus.FILLED,
45
- liquidity: isMaker ? LiquidityRole.MAKER : LiquidityRole.TAKER,
46
- fee: isMaker ? trade.maker_fee?.toString() : trade.taker_fee?.toString(),
47
- startPosition,
48
- // `classifyFillFromPosition` takes an HL-encoded side: `'B'` for buy,
49
- // anything else for sell.
50
- classification: classifyFillFromPosition(
51
- startPosition,
52
- isBuyer ? 'B' : 'A',
53
- trade.size
54
- ),
55
- createdAt: new Date(trade.timestamp).toISOString(),
56
- }
57
- }
@@ -1,8 +0,0 @@
1
- export { mapPosition } from './position.js'
2
- export { mapFill } from './fill.js'
3
- export {
4
- isTriggerType,
5
- mapOrder,
6
- mapOrderDetail,
7
- mapTriggerOrder,
8
- } from './order.js'
@@ -1,184 +0,0 @@
1
- import {
2
- OrderSide,
3
- OrderStatus,
4
- OrderType,
5
- TimeInForce,
6
- } from '../../../enums.js'
7
- import type { OpenOrder, TriggerOrder } from '../../../account.js'
8
- import type { Order } from '../../../action.js'
9
- import type { LtOrder } from '../apiTypes.js'
10
-
11
- // Lighter's `type` enum uses hyphens in the OpenAPI spec but earlier API
12
- // versions emitted underscores. Tolerate both so we don't silently fall
13
- // through to LIMIT for stop/take-profit orders.
14
- const mapOrderType = (ltType: string): OrderType => {
15
- const normalized = ltType.replace(/-/g, '_')
16
- const map: Record<string, OrderType> = {
17
- limit: OrderType.LIMIT,
18
- market: OrderType.MARKET,
19
- stop_loss: OrderType.STOP_MARKET,
20
- stop_loss_limit: OrderType.STOP_LIMIT,
21
- take_profit: OrderType.TAKE_PROFIT_MARKET,
22
- take_profit_limit: OrderType.TAKE_PROFIT_LIMIT,
23
- }
24
- return map[normalized] ?? OrderType.LIMIT
25
- }
26
-
27
- const mapTimeInForce = (tif: string): TimeInForce | undefined => {
28
- switch (tif.replace(/-/g, '_')) {
29
- case 'good_till_time':
30
- return TimeInForce.GTT
31
- case 'immediate_or_cancel':
32
- return TimeInForce.IOC
33
- case 'post_only':
34
- return TimeInForce.POST_ONLY
35
- default:
36
- return undefined
37
- }
38
- }
39
-
40
- const mapOrderStatus = (status: string): OrderStatus => {
41
- if (
42
- status === 'open' ||
43
- status === 'in-progress' ||
44
- status === 'in_progress'
45
- ) {
46
- return OrderStatus.OPEN
47
- }
48
- if (status === 'pending') {
49
- return OrderStatus.PENDING
50
- }
51
- if (status === 'filled') {
52
- return OrderStatus.FILLED
53
- }
54
- if (status.startsWith('canceled')) {
55
- return OrderStatus.CANCELLED
56
- }
57
- return OrderStatus.OPEN
58
- }
59
-
60
- /**
61
- * Map a raw Lighter order status to a short English sentence describing
62
- * *why* the order ended in a terminal non-FILLED state. Non-terminal
63
- * statuses, plain `filled`, and unknown values return `undefined`.
64
- */
65
- export const mapStatusReason = (status: string): string | undefined => {
66
- switch (status) {
67
- case 'canceled':
68
- return 'Order cancelled.'
69
- case 'canceled-post-only':
70
- return 'Order cancelled: post-only order would have crossed the book.'
71
- case 'canceled-reduce-only':
72
- return 'Order cancelled: would not reduce your position.'
73
- case 'canceled-position-not-allowed':
74
- return 'Order cancelled: position not allowed.'
75
- case 'canceled-margin-not-allowed':
76
- return 'Order cancelled: insufficient margin.'
77
- case 'canceled-too-much-slippage':
78
- return 'Order cancelled: slippage exceeded tolerance.'
79
- case 'canceled-not-enough-liquidity':
80
- return 'Order cancelled: not enough liquidity to fill.'
81
- case 'canceled-self-trade':
82
- return 'Order cancelled: would self-trade against your own resting order.'
83
- case 'canceled-expired':
84
- return 'Order expired.'
85
- case 'canceled-oco':
86
- return 'Order cancelled: sibling OCO order filled or cancelled first.'
87
- case 'canceled-child':
88
- return 'Order cancelled: parent order was cancelled.'
89
- case 'canceled-liquidation':
90
- return 'Order cancelled: account was liquidated.'
91
- case 'canceled-invalid-balance':
92
- return 'Order cancelled: invalid balance.'
93
- default:
94
- return undefined
95
- }
96
- }
97
-
98
- /**
99
- * True for order types Lighter exposes as TP/SL legs. Mirrors the
100
- * Hyperliquid helper of the same name so the backend can split a raw
101
- * Lighter order list into the same `openOrders` / `triggerOrders`
102
- * buckets the SDK declares on `OrdersResponse`.
103
- */
104
- export const isTriggerType = (type: OrderType): boolean =>
105
- type === OrderType.TAKE_PROFIT_MARKET ||
106
- type === OrderType.TAKE_PROFIT_LIMIT ||
107
- type === OrderType.STOP_MARKET ||
108
- type === OrderType.STOP_LIMIT
109
-
110
- /**
111
- * Map a raw Lighter trigger order (stop/take-profit, market or limit) to
112
- * the generic `TriggerOrder` shape. For market variants the `limitPrice`
113
- * field is omitted; for limit variants `order.price` is the limit and
114
- * `order.trigger_price` is the activation level.
115
- */
116
- export const mapTriggerOrder = (
117
- order: LtOrder,
118
- symbol: string
119
- ): TriggerOrder => {
120
- const type = mapOrderType(order.type)
121
- const isLimit =
122
- type === OrderType.TAKE_PROFIT_LIMIT || type === OrderType.STOP_LIMIT
123
- return {
124
- id: order.order_id,
125
- asset: {
126
- assetId: symbol,
127
- market: 'lighter',
128
- displaySymbol: symbol,
129
- displayQuote: 'USDC',
130
- },
131
- type,
132
- size: order.initial_base_amount,
133
- triggerPrice: order.trigger_price,
134
- ...(isLimit ? { limitPrice: order.price } : {}),
135
- createdAt: new Date(order.created_at * 1000).toISOString(),
136
- }
137
- }
138
-
139
- /**
140
- * Map a raw Lighter order to the generic OpenOrder type.
141
- * @param symbol - Resolved symbol (market_index → symbol lookup)
142
- */
143
- export const mapOrder = (order: LtOrder, symbol: string): OpenOrder => ({
144
- id: order.order_id,
145
- asset: {
146
- assetId: symbol,
147
- market: 'lighter',
148
- displaySymbol: symbol,
149
- displayQuote: 'USDC',
150
- },
151
- side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
152
- type: mapOrderType(order.type),
153
- size: order.initial_base_amount,
154
- price: order.price,
155
- filledSize: order.filled_base_amount,
156
- reduceOnly: order.reduce_only,
157
- createdAt: new Date(order.created_at * 1000).toISOString(),
158
- })
159
-
160
- /**
161
- * Map a raw Lighter order to the rich Order type — adds status, time-in-force
162
- * and remaining/filled sizes on top of the OpenOrder fields.
163
- */
164
- export const mapOrderDetail = (order: LtOrder, symbol: string): Order => ({
165
- orderId: order.order_id,
166
- asset: {
167
- assetId: symbol,
168
- market: 'lighter',
169
- displaySymbol: symbol,
170
- displayQuote: 'USDC',
171
- },
172
- side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
173
- type: mapOrderType(order.type),
174
- price: order.price,
175
- originalSize: order.initial_base_amount,
176
- remainingSize: order.remaining_base_amount,
177
- filledSize: order.filled_base_amount,
178
- timeInForce: mapTimeInForce(order.time_in_force),
179
- reduceOnly: order.reduce_only,
180
- status: mapOrderStatus(order.status),
181
- statusReason: mapStatusReason(order.status),
182
- createdAt: new Date(order.created_at * 1000).toISOString(),
183
- updatedAt: new Date(order.updated_at * 1000).toISOString(),
184
- })
@@ -1,46 +0,0 @@
1
- import { MarginMode, PositionSide } from '../../../enums.js'
2
- import type { Position } from '../../../account.js'
3
- import type { LtAccountPosition } from '../apiTypes.js'
4
- import { LT_MARGIN_MODE_ISOLATED } from '../types.js'
5
-
6
- /**
7
- * Map a raw Lighter account position to the generic Position type.
8
- * @param symbol Resolved symbol (market_id → symbol lookup, or `pos.symbol`).
9
- */
10
- export const mapPosition = (
11
- pos: LtAccountPosition,
12
- symbol: string
13
- ): Position => {
14
- const size = parseFloat(pos.position)
15
- const isIsolated = pos.margin_mode === LT_MARGIN_MODE_ISOLATED
16
-
17
- // `allocated_margin` is only populated for isolated positions (always "0"
18
- // on cross accounts). For cross, derive margin as
19
- // `position_value × initial_margin_fraction / 100` (IMF is in percent).
20
- const positionValue = Math.abs(parseFloat(pos.position_value))
21
- const imf = parseFloat(pos.initial_margin_fraction)
22
- const marginUsed = isIsolated
23
- ? pos.allocated_margin
24
- : ((positionValue * imf) / 100).toString()
25
-
26
- return {
27
- asset: {
28
- assetId: symbol,
29
- market: 'lighter',
30
- displaySymbol: symbol,
31
- displayQuote: 'USDC',
32
- },
33
- side: pos.sign >= 0 ? PositionSide.LONG : PositionSide.SHORT,
34
- size: Math.abs(size).toString(),
35
- entryPrice: pos.avg_entry_price,
36
- markPrice:
37
- pos.position_value === '0' || size === 0
38
- ? '0'
39
- : (parseFloat(pos.position_value) / Math.abs(size)).toString(),
40
- liquidationPrice: pos.liquidation_price,
41
- unrealizedPnl: pos.unrealized_pnl,
42
- leverage: imf > 0 ? Math.round(100 / imf) : 1,
43
- marginUsed,
44
- marginMode: isIsolated ? MarginMode.ISOLATED : MarginMode.CROSS,
45
- }
46
- }
@@ -1,111 +0,0 @@
1
- // Lighter WASM signer parameter types — shapes of `wasmSignParams` per
2
- // action. The backend populates these and the SDK passes them to the WASM
3
- // signer alongside SDK-managed fields (nonce, account_index, api_key_index).
4
-
5
- /** Backend-provided params for SignCreateOrder. */
6
- export type LtCreateOrderWasmParams = {
7
- market_index: number
8
- client_order_index: number
9
- base_amount: number
10
- price: number
11
- is_ask: number
12
- order_type: number
13
- time_in_force: number
14
- reduce_only: boolean
15
- trigger_price: number
16
- order_expiry: number
17
- integrator_account_index: number
18
- integrator_taker_fee: number
19
- integrator_maker_fee: number
20
- }
21
-
22
- /** Backend-provided params for SignCancelOrder. */
23
- export type LtCancelOrderWasmParams = {
24
- market_index: number
25
- order_index: number
26
- }
27
-
28
- /** Backend-provided params for SignModifyOrder. */
29
- export type LtModifyOrderWasmParams = {
30
- market_index: number
31
- order_index: number
32
- base_amount: number
33
- price: number
34
- trigger_price: number
35
- integrator_account_index: number
36
- integrator_taker_fee: number
37
- integrator_maker_fee: number
38
- }
39
-
40
- /** Backend-provided params for SignUpdateLeverage. */
41
- export type LtUpdateLeverageWasmParams = {
42
- market_index: number
43
- fraction: number
44
- margin_mode: number
45
- }
46
-
47
- /** Backend-provided params for SignUpdateMargin. */
48
- export type LtUpdateMarginWasmParams = {
49
- market_index: number
50
- usdc_amount: number
51
- direction: number
52
- }
53
-
54
- /** Backend-provided params for SignWithdraw. */
55
- export type LtWithdrawWasmParams = {
56
- asset_index: number
57
- route_type: number
58
- amount: number
59
- }
60
-
61
- /** Backend-provided params for SignCancelAllOrders. */
62
- export type LtCancelAllOrdersWasmParams = {
63
- /** 0=immediate (cancel GTC), 1=scheduled, 2=abort scheduled */
64
- time_in_force: number
65
- /** Unix timestamp in milliseconds. Use Date.now() for immediate cancels. */
66
- timestamp_ms: number
67
- }
68
-
69
- /**
70
- * Backend-provided params for SignChangePubKey (REGISTER_API_KEY).
71
- *
72
- * Hybrid signing: this action requires both a WASM blob and an L1 Ethereum
73
- * signature (the user's wallet signs the ChangePubKey message). The SDK
74
- * generates the keypair via the WASM signer and fills in `new_public_key`
75
- * before invoking SignChangePubKey.
76
- */
77
- export type LtChangePubKeyWasmParams = {
78
- /** API key slot index to register (0-255). SDK fills in the generated public key. */
79
- api_key_index: number
80
- nonce: number
81
- }
82
-
83
- // ---------------------------------------------------------------------------
84
- // Lighter WASM signer constants
85
- // ---------------------------------------------------------------------------
86
-
87
- export const LT_ORDER_TYPE_LIMIT = 0
88
- export const LT_ORDER_TYPE_MARKET = 1
89
- export const LT_ORDER_TYPE_STOP_LOSS = 2
90
- export const LT_ORDER_TYPE_STOP_LOSS_LIMIT = 3
91
- export const LT_ORDER_TYPE_TAKE_PROFIT = 4
92
- export const LT_ORDER_TYPE_TAKE_PROFIT_LIMIT = 5
93
- export const LT_ORDER_TYPE_TWAP = 6
94
-
95
- export const LT_TIME_IN_FORCE_IOC = 0
96
- export const LT_TIME_IN_FORCE_GTC = 1
97
- export const LT_TIME_IN_FORCE_POST_ONLY = 2
98
-
99
- export const LT_MARGIN_MODE_CROSS = 0
100
- export const LT_MARGIN_MODE_ISOLATED = 1
101
-
102
- export const LT_MARGIN_DIRECTION_REMOVE = 0
103
- export const LT_MARGIN_DIRECTION_ADD = 1
104
-
105
- export const LT_ROUTE_PERP = 0
106
- export const LT_ROUTE_SPOT = 1
107
-
108
- export const LT_ASSET_ID_USDC = 3
109
-
110
- export const LT_NIL_TRIGGER_PRICE = 0
111
- export const LT_DEFAULT_ORDER_EXPIRY = -1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes