@lifi/perps-sdk-provider-lighter 0.2.0-alpha.0

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 (405) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +176 -0
  3. package/dist/cjs/LighterProvider.d.ts +20 -0
  4. package/dist/cjs/LighterProvider.d.ts.map +1 -0
  5. package/dist/cjs/LighterProvider.js +592 -0
  6. package/dist/cjs/LighterProvider.js.map +1 -0
  7. package/dist/cjs/accountConfig.d.ts +3 -0
  8. package/dist/cjs/accountConfig.d.ts.map +1 -0
  9. package/dist/cjs/accountConfig.js +69 -0
  10. package/dist/cjs/accountConfig.js.map +1 -0
  11. package/dist/cjs/accountSummary.d.ts +3 -0
  12. package/dist/cjs/accountSummary.d.ts.map +1 -0
  13. package/dist/cjs/accountSummary.js +8 -0
  14. package/dist/cjs/accountSummary.js.map +1 -0
  15. package/dist/cjs/constants.d.ts +14 -0
  16. package/dist/cjs/constants.d.ts.map +1 -0
  17. package/dist/cjs/constants.js +18 -0
  18. package/dist/cjs/constants.js.map +1 -0
  19. package/dist/cjs/index.d.ts +11 -0
  20. package/dist/cjs/index.d.ts.map +1 -0
  21. package/dist/cjs/index.js +35 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/package.json +1 -0
  24. package/dist/cjs/signers/LighterKeyStore.d.ts +18 -0
  25. package/dist/cjs/signers/LighterKeyStore.d.ts.map +1 -0
  26. package/dist/cjs/signers/LighterKeyStore.js +54 -0
  27. package/dist/cjs/signers/LighterKeyStore.js.map +1 -0
  28. package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts +56 -0
  29. package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
  30. package/dist/cjs/signers/LighterReadOnlyTokenManager.js +127 -0
  31. package/dist/cjs/signers/LighterReadOnlyTokenManager.js.map +1 -0
  32. package/dist/cjs/signers/LighterSigner.d.ts +41 -0
  33. package/dist/cjs/signers/LighterSigner.d.ts.map +1 -0
  34. package/dist/cjs/signers/LighterSigner.js +175 -0
  35. package/dist/cjs/signers/LighterSigner.js.map +1 -0
  36. package/dist/cjs/signers/createAuthToken.d.ts +12 -0
  37. package/dist/cjs/signers/createAuthToken.d.ts.map +1 -0
  38. package/dist/cjs/signers/createAuthToken.js +28 -0
  39. package/dist/cjs/signers/createAuthToken.js.map +1 -0
  40. package/dist/cjs/signers/index.d.ts +11 -0
  41. package/dist/cjs/signers/index.d.ts.map +1 -0
  42. package/dist/cjs/signers/index.js +19 -0
  43. package/dist/cjs/signers/index.js.map +1 -0
  44. package/dist/cjs/signers/signActions.d.ts +15 -0
  45. package/dist/cjs/signers/signActions.d.ts.map +1 -0
  46. package/dist/cjs/signers/signActions.js +142 -0
  47. package/dist/cjs/signers/signActions.js.map +1 -0
  48. package/dist/cjs/signers/wasmLoader.d.ts +42 -0
  49. package/dist/cjs/signers/wasmLoader.d.ts.map +1 -0
  50. package/dist/cjs/signers/wasmLoader.js +166 -0
  51. package/dist/cjs/signers/wasmLoader.js.map +1 -0
  52. package/dist/cjs/types/account.d.ts +97 -0
  53. package/dist/cjs/types/account.d.ts.map +1 -0
  54. package/dist/cjs/types/account.js +3 -0
  55. package/dist/cjs/types/account.js.map +1 -0
  56. package/dist/cjs/types/action.d.ts +72 -0
  57. package/dist/cjs/types/action.d.ts.map +1 -0
  58. package/dist/cjs/types/action.js +23 -0
  59. package/dist/cjs/types/action.js.map +1 -0
  60. package/dist/cjs/types/activity.d.ts +73 -0
  61. package/dist/cjs/types/activity.d.ts.map +1 -0
  62. package/dist/cjs/types/activity.js +3 -0
  63. package/dist/cjs/types/activity.js.map +1 -0
  64. package/dist/cjs/types/asset.d.ts +122 -0
  65. package/dist/cjs/types/asset.d.ts.map +1 -0
  66. package/dist/cjs/types/asset.js +3 -0
  67. package/dist/cjs/types/asset.js.map +1 -0
  68. package/dist/cjs/types/fill.d.ts +29 -0
  69. package/dist/cjs/types/fill.d.ts.map +1 -0
  70. package/dist/cjs/types/fill.js +3 -0
  71. package/dist/cjs/types/fill.js.map +1 -0
  72. package/dist/cjs/types/index.d.ts +9 -0
  73. package/dist/cjs/types/index.d.ts.map +1 -0
  74. package/dist/cjs/types/index.js +25 -0
  75. package/dist/cjs/types/index.js.map +1 -0
  76. package/dist/cjs/types/order.d.ts +57 -0
  77. package/dist/cjs/types/order.d.ts.map +1 -0
  78. package/dist/cjs/types/order.js +3 -0
  79. package/dist/cjs/types/order.js.map +1 -0
  80. package/dist/cjs/types/submit.d.ts +39 -0
  81. package/dist/cjs/types/submit.d.ts.map +1 -0
  82. package/dist/cjs/types/submit.js +3 -0
  83. package/dist/cjs/types/submit.js.map +1 -0
  84. package/dist/cjs/types/ws.d.ts +84 -0
  85. package/dist/cjs/types/ws.d.ts.map +1 -0
  86. package/dist/cjs/types/ws.js +3 -0
  87. package/dist/cjs/types/ws.js.map +1 -0
  88. package/dist/cjs/utils/activityCursor.d.ts +12 -0
  89. package/dist/cjs/utils/activityCursor.d.ts.map +1 -0
  90. package/dist/cjs/utils/activityCursor.js +85 -0
  91. package/dist/cjs/utils/activityCursor.js.map +1 -0
  92. package/dist/cjs/utils/apiClient.d.ts +26 -0
  93. package/dist/cjs/utils/apiClient.d.ts.map +1 -0
  94. package/dist/cjs/utils/apiClient.js +94 -0
  95. package/dist/cjs/utils/apiClient.js.map +1 -0
  96. package/dist/cjs/utils/fetchDetailedAccount.d.ts +5 -0
  97. package/dist/cjs/utils/fetchDetailedAccount.d.ts.map +1 -0
  98. package/dist/cjs/utils/fetchDetailedAccount.js +22 -0
  99. package/dist/cjs/utils/fetchDetailedAccount.js.map +1 -0
  100. package/dist/cjs/utils/index.d.ts +16 -0
  101. package/dist/cjs/utils/index.d.ts.map +1 -0
  102. package/dist/cjs/utils/index.js +45 -0
  103. package/dist/cjs/utils/index.js.map +1 -0
  104. package/dist/cjs/utils/lighterAsset.d.ts +3 -0
  105. package/dist/cjs/utils/lighterAsset.d.ts.map +1 -0
  106. package/dist/cjs/utils/lighterAsset.js +12 -0
  107. package/dist/cjs/utils/lighterAsset.js.map +1 -0
  108. package/dist/cjs/utils/liquidation.d.ts +4 -0
  109. package/dist/cjs/utils/liquidation.d.ts.map +1 -0
  110. package/dist/cjs/utils/liquidation.js +16 -0
  111. package/dist/cjs/utils/liquidation.js.map +1 -0
  112. package/dist/cjs/utils/mapFill.d.ts +4 -0
  113. package/dist/cjs/utils/mapFill.d.ts.map +1 -0
  114. package/dist/cjs/utils/mapFill.js +61 -0
  115. package/dist/cjs/utils/mapFill.js.map +1 -0
  116. package/dist/cjs/utils/mapOpenPositions.d.ts +4 -0
  117. package/dist/cjs/utils/mapOpenPositions.d.ts.map +1 -0
  118. package/dist/cjs/utils/mapOpenPositions.js +9 -0
  119. package/dist/cjs/utils/mapOpenPositions.js.map +1 -0
  120. package/dist/cjs/utils/mapOrder.d.ts +15 -0
  121. package/dist/cjs/utils/mapOrder.d.ts.map +1 -0
  122. package/dist/cjs/utils/mapOrder.js +164 -0
  123. package/dist/cjs/utils/mapOrder.js.map +1 -0
  124. package/dist/cjs/utils/mapPosition.d.ts +4 -0
  125. package/dist/cjs/utils/mapPosition.d.ts.map +1 -0
  126. package/dist/cjs/utils/mapPosition.js +30 -0
  127. package/dist/cjs/utils/mapPosition.js.map +1 -0
  128. package/dist/cjs/utils/ohlcvInterval.d.ts +2 -0
  129. package/dist/cjs/utils/ohlcvInterval.d.ts.map +1 -0
  130. package/dist/cjs/utils/ohlcvInterval.js +26 -0
  131. package/dist/cjs/utils/ohlcvInterval.js.map +1 -0
  132. package/dist/cjs/utils/orderFormatting.d.ts +4 -0
  133. package/dist/cjs/utils/orderFormatting.d.ts.map +1 -0
  134. package/dist/cjs/utils/orderFormatting.js +23 -0
  135. package/dist/cjs/utils/orderFormatting.js.map +1 -0
  136. package/dist/cjs/utils/time.d.ts +3 -0
  137. package/dist/cjs/utils/time.d.ts.map +1 -0
  138. package/dist/cjs/utils/time.js +8 -0
  139. package/dist/cjs/utils/time.js.map +1 -0
  140. package/dist/cjs/utils/wireEncoding.d.ts +9 -0
  141. package/dist/cjs/utils/wireEncoding.d.ts.map +1 -0
  142. package/dist/cjs/utils/wireEncoding.js +87 -0
  143. package/dist/cjs/utils/wireEncoding.js.map +1 -0
  144. package/dist/cjs/websocket/LighterWsProvider.d.ts +45 -0
  145. package/dist/cjs/websocket/LighterWsProvider.d.ts.map +1 -0
  146. package/dist/cjs/websocket/LighterWsProvider.js +396 -0
  147. package/dist/cjs/websocket/LighterWsProvider.js.map +1 -0
  148. package/dist/esm/LighterProvider.d.ts +105 -0
  149. package/dist/esm/LighterProvider.d.ts.map +1 -0
  150. package/dist/esm/LighterProvider.js +684 -0
  151. package/dist/esm/LighterProvider.js.map +1 -0
  152. package/dist/esm/accountConfig.d.ts +14 -0
  153. package/dist/esm/accountConfig.d.ts.map +1 -0
  154. package/dist/esm/accountConfig.js +135 -0
  155. package/dist/esm/accountConfig.js.map +1 -0
  156. package/dist/esm/accountSummary.d.ts +12 -0
  157. package/dist/esm/accountSummary.d.ts.map +1 -0
  158. package/dist/esm/accountSummary.js +14 -0
  159. package/dist/esm/accountSummary.js.map +1 -0
  160. package/dist/esm/constants.d.ts +74 -0
  161. package/dist/esm/constants.d.ts.map +1 -0
  162. package/dist/esm/constants.js +73 -0
  163. package/dist/esm/constants.js.map +1 -0
  164. package/dist/esm/index.d.ts +22 -0
  165. package/dist/esm/index.d.ts.map +1 -0
  166. package/dist/esm/index.js +22 -0
  167. package/dist/esm/index.js.map +1 -0
  168. package/dist/esm/package.json +1 -0
  169. package/dist/esm/signers/LighterKeyStore.d.ts +24 -0
  170. package/dist/esm/signers/LighterKeyStore.d.ts.map +1 -0
  171. package/dist/esm/signers/LighterKeyStore.js +55 -0
  172. package/dist/esm/signers/LighterKeyStore.js.map +1 -0
  173. package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts +157 -0
  174. package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
  175. package/dist/esm/signers/LighterReadOnlyTokenManager.js +194 -0
  176. package/dist/esm/signers/LighterReadOnlyTokenManager.js.map +1 -0
  177. package/dist/esm/signers/LighterSigner.d.ts +94 -0
  178. package/dist/esm/signers/LighterSigner.d.ts.map +1 -0
  179. package/dist/esm/signers/LighterSigner.js +228 -0
  180. package/dist/esm/signers/LighterSigner.js.map +1 -0
  181. package/dist/esm/signers/createAuthToken.d.ts +36 -0
  182. package/dist/esm/signers/createAuthToken.d.ts.map +1 -0
  183. package/dist/esm/signers/createAuthToken.js +42 -0
  184. package/dist/esm/signers/createAuthToken.js.map +1 -0
  185. package/dist/esm/signers/index.d.ts +11 -0
  186. package/dist/esm/signers/index.d.ts.map +1 -0
  187. package/dist/esm/signers/index.js +7 -0
  188. package/dist/esm/signers/index.js.map +1 -0
  189. package/dist/esm/signers/signActions.d.ts +54 -0
  190. package/dist/esm/signers/signActions.d.ts.map +1 -0
  191. package/dist/esm/signers/signActions.js +193 -0
  192. package/dist/esm/signers/signActions.js.map +1 -0
  193. package/dist/esm/signers/wasmLoader.d.ts +79 -0
  194. package/dist/esm/signers/wasmLoader.d.ts.map +1 -0
  195. package/dist/esm/signers/wasmLoader.js +180 -0
  196. package/dist/esm/signers/wasmLoader.js.map +1 -0
  197. package/dist/esm/types/account.d.ts +113 -0
  198. package/dist/esm/types/account.d.ts.map +1 -0
  199. package/dist/esm/types/account.js +4 -0
  200. package/dist/esm/types/account.js.map +1 -0
  201. package/dist/esm/types/action.d.ts +146 -0
  202. package/dist/esm/types/action.d.ts.map +1 -0
  203. package/dist/esm/types/action.js +50 -0
  204. package/dist/esm/types/action.js.map +1 -0
  205. package/dist/esm/types/activity.d.ts +83 -0
  206. package/dist/esm/types/activity.d.ts.map +1 -0
  207. package/dist/esm/types/activity.js +4 -0
  208. package/dist/esm/types/activity.js.map +1 -0
  209. package/dist/esm/types/asset.d.ts +134 -0
  210. package/dist/esm/types/asset.d.ts.map +1 -0
  211. package/dist/esm/types/asset.js +3 -0
  212. package/dist/esm/types/asset.js.map +1 -0
  213. package/dist/esm/types/fill.d.ts +31 -0
  214. package/dist/esm/types/fill.d.ts.map +1 -0
  215. package/dist/esm/types/fill.js +3 -0
  216. package/dist/esm/types/fill.js.map +1 -0
  217. package/dist/esm/types/index.d.ts +9 -0
  218. package/dist/esm/types/index.d.ts.map +1 -0
  219. package/dist/esm/types/index.js +12 -0
  220. package/dist/esm/types/index.js.map +1 -0
  221. package/dist/esm/types/order.d.ts +61 -0
  222. package/dist/esm/types/order.d.ts.map +1 -0
  223. package/dist/esm/types/order.js +3 -0
  224. package/dist/esm/types/order.js.map +1 -0
  225. package/dist/esm/types/submit.d.ts +76 -0
  226. package/dist/esm/types/submit.d.ts.map +1 -0
  227. package/dist/esm/types/submit.js +3 -0
  228. package/dist/esm/types/submit.js.map +1 -0
  229. package/dist/esm/types/ws.d.ts +124 -0
  230. package/dist/esm/types/ws.d.ts.map +1 -0
  231. package/dist/esm/types/ws.js +11 -0
  232. package/dist/esm/types/ws.js.map +1 -0
  233. package/dist/esm/utils/activityCursor.d.ts +51 -0
  234. package/dist/esm/utils/activityCursor.d.ts.map +1 -0
  235. package/dist/esm/utils/activityCursor.js +99 -0
  236. package/dist/esm/utils/activityCursor.js.map +1 -0
  237. package/dist/esm/utils/apiClient.d.ts +65 -0
  238. package/dist/esm/utils/apiClient.d.ts.map +1 -0
  239. package/dist/esm/utils/apiClient.js +131 -0
  240. package/dist/esm/utils/apiClient.js.map +1 -0
  241. package/dist/esm/utils/fetchDetailedAccount.d.ts +11 -0
  242. package/dist/esm/utils/fetchDetailedAccount.d.ts.map +1 -0
  243. package/dist/esm/utils/fetchDetailedAccount.js +24 -0
  244. package/dist/esm/utils/fetchDetailedAccount.js.map +1 -0
  245. package/dist/esm/utils/index.d.ts +16 -0
  246. package/dist/esm/utils/index.d.ts.map +1 -0
  247. package/dist/esm/utils/index.js +17 -0
  248. package/dist/esm/utils/index.js.map +1 -0
  249. package/dist/esm/utils/lighterAsset.d.ts +4 -0
  250. package/dist/esm/utils/lighterAsset.d.ts.map +1 -0
  251. package/dist/esm/utils/lighterAsset.js +9 -0
  252. package/dist/esm/utils/lighterAsset.js.map +1 -0
  253. package/dist/esm/utils/liquidation.d.ts +22 -0
  254. package/dist/esm/utils/liquidation.d.ts.map +1 -0
  255. package/dist/esm/utils/liquidation.js +31 -0
  256. package/dist/esm/utils/liquidation.js.map +1 -0
  257. package/dist/esm/utils/mapFill.d.ts +10 -0
  258. package/dist/esm/utils/mapFill.d.ts.map +1 -0
  259. package/dist/esm/utils/mapFill.js +72 -0
  260. package/dist/esm/utils/mapFill.js.map +1 -0
  261. package/dist/esm/utils/mapOpenPositions.d.ts +11 -0
  262. package/dist/esm/utils/mapOpenPositions.d.ts.map +1 -0
  263. package/dist/esm/utils/mapOpenPositions.js +12 -0
  264. package/dist/esm/utils/mapOpenPositions.js.map +1 -0
  265. package/dist/esm/utils/mapOrder.d.ts +72 -0
  266. package/dist/esm/utils/mapOrder.d.ts.map +1 -0
  267. package/dist/esm/utils/mapOrder.js +219 -0
  268. package/dist/esm/utils/mapOrder.js.map +1 -0
  269. package/dist/esm/utils/mapPosition.d.ts +9 -0
  270. package/dist/esm/utils/mapPosition.d.ts.map +1 -0
  271. package/dist/esm/utils/mapPosition.js +34 -0
  272. package/dist/esm/utils/mapPosition.js.map +1 -0
  273. package/dist/esm/utils/ohlcvInterval.d.ts +3 -0
  274. package/dist/esm/utils/ohlcvInterval.d.ts.map +1 -0
  275. package/dist/esm/utils/ohlcvInterval.js +30 -0
  276. package/dist/esm/utils/ohlcvInterval.js.map +1 -0
  277. package/dist/esm/utils/orderFormatting.d.ts +29 -0
  278. package/dist/esm/utils/orderFormatting.d.ts.map +1 -0
  279. package/dist/esm/utils/orderFormatting.js +41 -0
  280. package/dist/esm/utils/orderFormatting.js.map +1 -0
  281. package/dist/esm/utils/time.d.ts +5 -0
  282. package/dist/esm/utils/time.d.ts.map +1 -0
  283. package/dist/esm/utils/time.js +5 -0
  284. package/dist/esm/utils/time.js.map +1 -0
  285. package/dist/esm/utils/wireEncoding.d.ts +72 -0
  286. package/dist/esm/utils/wireEncoding.d.ts.map +1 -0
  287. package/dist/esm/utils/wireEncoding.js +129 -0
  288. package/dist/esm/utils/wireEncoding.js.map +1 -0
  289. package/dist/esm/websocket/LighterWsProvider.d.ts +97 -0
  290. package/dist/esm/websocket/LighterWsProvider.d.ts.map +1 -0
  291. package/dist/esm/websocket/LighterWsProvider.js +489 -0
  292. package/dist/esm/websocket/LighterWsProvider.js.map +1 -0
  293. package/dist/types/LighterProvider.d.ts +105 -0
  294. package/dist/types/LighterProvider.d.ts.map +1 -0
  295. package/dist/types/accountConfig.d.ts +14 -0
  296. package/dist/types/accountConfig.d.ts.map +1 -0
  297. package/dist/types/accountSummary.d.ts +12 -0
  298. package/dist/types/accountSummary.d.ts.map +1 -0
  299. package/dist/types/constants.d.ts +74 -0
  300. package/dist/types/constants.d.ts.map +1 -0
  301. package/dist/types/index.d.ts +22 -0
  302. package/dist/types/index.d.ts.map +1 -0
  303. package/dist/types/signers/LighterKeyStore.d.ts +24 -0
  304. package/dist/types/signers/LighterKeyStore.d.ts.map +1 -0
  305. package/dist/types/signers/LighterReadOnlyTokenManager.d.ts +157 -0
  306. package/dist/types/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
  307. package/dist/types/signers/LighterSigner.d.ts +94 -0
  308. package/dist/types/signers/LighterSigner.d.ts.map +1 -0
  309. package/dist/types/signers/createAuthToken.d.ts +36 -0
  310. package/dist/types/signers/createAuthToken.d.ts.map +1 -0
  311. package/dist/types/signers/index.d.ts +11 -0
  312. package/dist/types/signers/index.d.ts.map +1 -0
  313. package/dist/types/signers/signActions.d.ts +54 -0
  314. package/dist/types/signers/signActions.d.ts.map +1 -0
  315. package/dist/types/signers/wasmLoader.d.ts +79 -0
  316. package/dist/types/signers/wasmLoader.d.ts.map +1 -0
  317. package/dist/types/types/account.d.ts +113 -0
  318. package/dist/types/types/account.d.ts.map +1 -0
  319. package/dist/types/types/action.d.ts +146 -0
  320. package/dist/types/types/action.d.ts.map +1 -0
  321. package/dist/types/types/activity.d.ts +83 -0
  322. package/dist/types/types/activity.d.ts.map +1 -0
  323. package/dist/types/types/asset.d.ts +134 -0
  324. package/dist/types/types/asset.d.ts.map +1 -0
  325. package/dist/types/types/fill.d.ts +31 -0
  326. package/dist/types/types/fill.d.ts.map +1 -0
  327. package/dist/types/types/index.d.ts +9 -0
  328. package/dist/types/types/index.d.ts.map +1 -0
  329. package/dist/types/types/order.d.ts +61 -0
  330. package/dist/types/types/order.d.ts.map +1 -0
  331. package/dist/types/types/submit.d.ts +76 -0
  332. package/dist/types/types/submit.d.ts.map +1 -0
  333. package/dist/types/types/ws.d.ts +124 -0
  334. package/dist/types/types/ws.d.ts.map +1 -0
  335. package/dist/types/utils/activityCursor.d.ts +51 -0
  336. package/dist/types/utils/activityCursor.d.ts.map +1 -0
  337. package/dist/types/utils/apiClient.d.ts +65 -0
  338. package/dist/types/utils/apiClient.d.ts.map +1 -0
  339. package/dist/types/utils/fetchDetailedAccount.d.ts +11 -0
  340. package/dist/types/utils/fetchDetailedAccount.d.ts.map +1 -0
  341. package/dist/types/utils/index.d.ts +16 -0
  342. package/dist/types/utils/index.d.ts.map +1 -0
  343. package/dist/types/utils/lighterAsset.d.ts +4 -0
  344. package/dist/types/utils/lighterAsset.d.ts.map +1 -0
  345. package/dist/types/utils/liquidation.d.ts +22 -0
  346. package/dist/types/utils/liquidation.d.ts.map +1 -0
  347. package/dist/types/utils/mapFill.d.ts +10 -0
  348. package/dist/types/utils/mapFill.d.ts.map +1 -0
  349. package/dist/types/utils/mapOpenPositions.d.ts +11 -0
  350. package/dist/types/utils/mapOpenPositions.d.ts.map +1 -0
  351. package/dist/types/utils/mapOrder.d.ts +72 -0
  352. package/dist/types/utils/mapOrder.d.ts.map +1 -0
  353. package/dist/types/utils/mapPosition.d.ts +9 -0
  354. package/dist/types/utils/mapPosition.d.ts.map +1 -0
  355. package/dist/types/utils/ohlcvInterval.d.ts +3 -0
  356. package/dist/types/utils/ohlcvInterval.d.ts.map +1 -0
  357. package/dist/types/utils/orderFormatting.d.ts +29 -0
  358. package/dist/types/utils/orderFormatting.d.ts.map +1 -0
  359. package/dist/types/utils/time.d.ts +5 -0
  360. package/dist/types/utils/time.d.ts.map +1 -0
  361. package/dist/types/utils/wireEncoding.d.ts +72 -0
  362. package/dist/types/utils/wireEncoding.d.ts.map +1 -0
  363. package/dist/types/websocket/LighterWsProvider.d.ts +97 -0
  364. package/dist/types/websocket/LighterWsProvider.d.ts.map +1 -0
  365. package/dist/wasm/lighter-signer.wasm +0 -0
  366. package/dist/wasm/wasm_exec.js +575 -0
  367. package/package.json +67 -0
  368. package/src/LighterProvider.ts +1167 -0
  369. package/src/accountConfig.ts +162 -0
  370. package/src/accountSummary.ts +22 -0
  371. package/src/constants.ts +89 -0
  372. package/src/index.ts +37 -0
  373. package/src/signers/LighterKeyStore.ts +79 -0
  374. package/src/signers/LighterReadOnlyTokenManager.ts +340 -0
  375. package/src/signers/LighterSigner.ts +400 -0
  376. package/src/signers/createAuthToken.ts +69 -0
  377. package/src/signers/index.ts +36 -0
  378. package/src/signers/signActions.ts +311 -0
  379. package/src/signers/wasmLoader.ts +293 -0
  380. package/src/types/account.ts +123 -0
  381. package/src/types/action.ts +163 -0
  382. package/src/types/activity.ts +94 -0
  383. package/src/types/asset.ts +146 -0
  384. package/src/types/fill.ts +42 -0
  385. package/src/types/index.ts +12 -0
  386. package/src/types/order.ts +65 -0
  387. package/src/types/submit.ts +83 -0
  388. package/src/types/ws.ts +136 -0
  389. package/src/utils/activityCursor.ts +150 -0
  390. package/src/utils/apiClient.ts +185 -0
  391. package/src/utils/fetchDetailedAccount.ts +46 -0
  392. package/src/utils/index.ts +38 -0
  393. package/src/utils/lighterAsset.ts +10 -0
  394. package/src/utils/liquidation.ts +39 -0
  395. package/src/utils/mapFill.ts +108 -0
  396. package/src/utils/mapOpenPositions.ts +18 -0
  397. package/src/utils/mapOrder.ts +258 -0
  398. package/src/utils/mapPosition.ts +42 -0
  399. package/src/utils/ohlcvInterval.ts +34 -0
  400. package/src/utils/orderFormatting.ts +46 -0
  401. package/src/utils/time.ts +6 -0
  402. package/src/utils/wireEncoding.ts +179 -0
  403. package/src/websocket/LighterWsProvider.ts +725 -0
  404. package/wasm/lighter-signer.wasm +0 -0
  405. package/wasm/wasm_exec.js +575 -0
@@ -0,0 +1,76 @@
1
+ /** @public */
2
+ export interface LtSendTxRequest {
3
+ tx_type: number;
4
+ tx_info: string;
5
+ price_protection?: boolean;
6
+ }
7
+ /** @public */
8
+ export interface LtSendTxResponse {
9
+ code: number;
10
+ message: string;
11
+ tx_hash: string;
12
+ predicted_execution_time_ms?: number;
13
+ volume_quota_remaining?: number;
14
+ }
15
+ /** @public */
16
+ export interface LtSendTxBatchRequest {
17
+ tx_types: string;
18
+ tx_infos: string;
19
+ }
20
+ /** @public */
21
+ export interface LtSendTxBatchResponse {
22
+ code: number;
23
+ message: string;
24
+ tx_hash: string[];
25
+ predicted_execution_time_ms?: number;
26
+ volume_quota_remaining?: number;
27
+ }
28
+ /**
29
+ * `GET /api/v1/fastwithdraw/info` (Lighter `RespGetFastwithdrawalInfo`).
30
+ *
31
+ * Probe response that tells the caller whether the fast-withdraw operator is
32
+ * accepting transfers from `account_index` and, if so, which operator account
33
+ * to send the signed L2 transfer to. `withdraw_limit` and
34
+ * `max_withdrawal_amount` are USDC strings in **L2 6-decimal scale**, matching
35
+ * the `usdc_amount` units the WASM `SignTransfer` consumes. Lighter signals
36
+ * "fast path is not available right now" with a non-success `code` AND/OR a
37
+ * missing `to_account_index` (a `0` is also treated as missing because account
38
+ * index 0 is reserved by the protocol and never an operator).
39
+ *
40
+ * @public
41
+ */
42
+ export interface LtFastwithdrawInfoResponse {
43
+ code: number;
44
+ message?: string;
45
+ to_account_index: number;
46
+ withdraw_limit: string;
47
+ max_withdrawal_amount: string;
48
+ }
49
+ /**
50
+ * `POST /api/v1/fastwithdraw` (Lighter `ResultCode`).
51
+ *
52
+ * Returns only `{code, message}` — no `tx_hash`, unlike `/sendTx`. The Lighter
53
+ * relayer drains the operator account back to the user's L1 address
54
+ * out-of-band; success here means the signed L2 transfer was accepted, not
55
+ * that L1 settlement is complete.
56
+ *
57
+ * @public
58
+ */
59
+ export interface LtFastwithdrawResponse {
60
+ code: number;
61
+ message?: string;
62
+ }
63
+ /**
64
+ * `POST /api/v1/changeAccountTier` (Lighter `RespChangeAccountTier`).
65
+ *
66
+ * Code 0 means Lighter accepted the tier change; any other code carries a
67
+ * Lighter-defined business-rule rejection (open positions, pending orders, 24h
68
+ * cooldown, etc.) and `message` is the operator-readable reason.
69
+ *
70
+ * @public
71
+ */
72
+ export interface LtChangeAccountTierResponse {
73
+ code: number;
74
+ message?: string;
75
+ }
76
+ //# sourceMappingURL=submit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/types/submit.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,cAAc;AACd,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,cAAc;AACd,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,cAAc;AACd,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,124 @@
1
+ /** @public */
2
+ export type LtWsMessage = {
3
+ channel?: string;
4
+ type: string;
5
+ };
6
+ /** @public */
7
+ export type LtWsPingMessage = LtWsMessage & {
8
+ type: 'ping';
9
+ };
10
+ /** @public */
11
+ export type LtWsMarketStats = {
12
+ market_id: number;
13
+ index_price: string;
14
+ mark_price: string;
15
+ open_interest: string;
16
+ last_trade_price: string;
17
+ current_funding_rate: string;
18
+ funding_rate: string;
19
+ funding_timestamp: number;
20
+ daily_base_token_volume: string;
21
+ daily_quote_token_volume: string;
22
+ daily_price_change: string;
23
+ };
24
+ /**
25
+ * `market_stats/all` pushes one record per known market each tick. We
26
+ * aggregate them into a Record<assetId, price> before emitting `prices`.
27
+ * @public
28
+ */
29
+ export type LtWsMarketStatsAllMessage = LtWsMessage & {
30
+ type: 'subscribed/market_stats' | 'update/market_stats';
31
+ market_stats?: Record<string, LtWsMarketStats>;
32
+ };
33
+ /**
34
+ * Spot market stats carry no funding/open-interest fields and address
35
+ * markets by their spot `market_id` (2048+).
36
+ * @public
37
+ */
38
+ export type LtWsSpotMarketStats = {
39
+ market_id: number;
40
+ symbol: string;
41
+ index_price: string;
42
+ mid_price: string;
43
+ best_ask_price: string;
44
+ best_bid_price: string;
45
+ last_trade_price: string;
46
+ daily_base_token_volume: number;
47
+ daily_quote_token_volume: number;
48
+ daily_price_low: number;
49
+ daily_price_high: number;
50
+ daily_price_change: number;
51
+ };
52
+ /**
53
+ * `spot_market_stats/all` is the spot-market counterpart to
54
+ * `market_stats/all`; both feed the same aggregated `prices` emit.
55
+ * @public
56
+ */
57
+ export type LtWsSpotMarketStatsAllMessage = LtWsMessage & {
58
+ type: 'subscribed/spot_market_stats' | 'update/spot_market_stats';
59
+ spot_market_stats?: Record<string, LtWsSpotMarketStats>;
60
+ };
61
+ /** @public */
62
+ export type LtWsOrderBookLevel = {
63
+ price: string;
64
+ size: string;
65
+ };
66
+ /** @public */
67
+ export type LtWsOrderBook = {
68
+ asks: LtWsOrderBookLevel[];
69
+ bids: LtWsOrderBookLevel[];
70
+ offset?: number;
71
+ };
72
+ /** @public */
73
+ export type LtWsOrderBookMessage = LtWsMessage & {
74
+ type: 'subscribed/order_book' | 'update/order_book';
75
+ order_book: LtWsOrderBook;
76
+ };
77
+ /**
78
+ * Auth-channel payloads.
79
+ *
80
+ * The response `channel` field uses `:` as separator (e.g.
81
+ * `account_all_orders:42`) while the subscribe payload uses `/`.
82
+ *
83
+ * Per the Lighter WS spec:
84
+ * - orders/trades: object indexed by market index, each value an array
85
+ * (`{ "0": [Order], "1": [Order] }`)
86
+ * - positions: object indexed by market index, each value a single object
87
+ * (`{ "0": Position }`)
88
+ * - initial `account_all_trades` snapshot may send an empty flat array
89
+ *
90
+ * The provider uses `collectAuthChannelItems` to normalise all three shapes
91
+ * into a flat T[].
92
+ * @public
93
+ */
94
+ export type LtWsAccountAllOrdersMessage = LtWsMessage & {
95
+ type: 'subscribed/account_all_orders' | 'update/account_all_orders';
96
+ orders?: Record<string, unknown[]> | unknown[];
97
+ data?: {
98
+ orders?: Record<string, unknown[]> | unknown[];
99
+ };
100
+ };
101
+ /** @public */
102
+ export type LtWsAccountAllTradesMessage = LtWsMessage & {
103
+ type: 'subscribed/account_all_trades' | 'update/account_all_trades';
104
+ trades?: Record<string, unknown[]> | unknown[];
105
+ total_volume?: number;
106
+ monthly_volume?: number;
107
+ weekly_volume?: number;
108
+ daily_volume?: number;
109
+ data?: {
110
+ trades?: Record<string, unknown[]> | unknown[];
111
+ };
112
+ };
113
+ /** @public */
114
+ export type LtWsAccountAllPositionsMessage = LtWsMessage & {
115
+ type: 'subscribed/account_all_positions' | 'update/account_all_positions';
116
+ positions?: Record<string, unknown>;
117
+ shares?: unknown[];
118
+ last_funding_round?: Record<string, string>;
119
+ last_funding_discount?: Record<string, string>;
120
+ data?: {
121
+ positions?: Record<string, unknown>;
122
+ };
123
+ };
124
+ //# sourceMappingURL=ws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type ActivityItem } from '@lifi/perps-types';
2
+ /**
3
+ * Per-endpoint cursor envelope for Lighter activity pagination.
4
+ *
5
+ * Each key holds the upstream `cursor` / `next_cursor` returned by that
6
+ * endpoint on the previous call. When a key is **present** with a non-empty
7
+ * string the corresponding endpoint will be re-fetched at that cursor on the
8
+ * next call; when a key is **absent** the endpoint is treated as exhausted
9
+ * (or never paged because the type filter excluded it) and skipped.
10
+ *
11
+ * The envelope is round-tripped through `cursor` as base64url JSON so callers
12
+ * don't need to know the per-endpoint shape. The encoding mirrors the LI.FI
13
+ * backend's wire format so cursors created by the backend remain usable.
14
+ * @public
15
+ */
16
+ export interface LighterActivityCursor {
17
+ deposits?: string;
18
+ withdraws?: string;
19
+ fundings?: string;
20
+ liquidations?: string;
21
+ transfers?: string;
22
+ /**
23
+ * Already-fetched, merged-and-sorted rows that did not fit under the page
24
+ * `limit`. The upstream cursors above have advanced past these rows, so they
25
+ * are replayed (prepended) on the next page before any fresh fetch — without
26
+ * them the tail would be lost forever.
27
+ */
28
+ overflow?: ActivityItem[];
29
+ }
30
+ /**
31
+ * Encode a `LighterActivityCursor` as the base64url-of-JSON cursor string
32
+ * Lighter widgets persist between activity pages. Returns `undefined` when
33
+ * every per-endpoint key is empty and no `overflow` rows remain — the caller
34
+ * should report `hasMore: false` and omit `cursor` from `Pagination` then.
35
+ *
36
+ * Browser-direct: `Buffer` is Node-only. We use `btoa` over a Latin-1
37
+ * encoding of the UTF-8 bytes and then rewrite `+/=` to base64url. This is
38
+ * the same byte sequence Node's `Buffer.from(json, 'utf8').toString('base64url')`
39
+ * produces, so cursors round-trip across environments.
40
+ * @public
41
+ */
42
+ export declare const encodeActivityCursor: (env: LighterActivityCursor) => string | undefined;
43
+ /**
44
+ * Decode a previously-encoded activity cursor. Returns `undefined` for an
45
+ * absent cursor (first page) and throws {@link PerpsError} with
46
+ * `ValidationError` if the string is malformed — we'd rather fail loudly than
47
+ * silently re-page from page 1 and re-deliver already-paginated rows.
48
+ * @public
49
+ */
50
+ export declare const decodeActivityCursor: (cursor: string | undefined) => LighterActivityCursor | undefined;
51
+ //# sourceMappingURL=activityCursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activityCursor.d.ts","sourceRoot":"","sources":["../../../src/utils/activityCursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,mBAAmB,CAAA;AAErE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAaD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAC/B,KAAK,qBAAqB,KACzB,MAAM,GAAG,SAcX,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,GAAG,SAAS,KACzB,qBAAqB,GAAG,SA6C1B,CAAA"}
@@ -0,0 +1,65 @@
1
+ import { PerpsError, type ResolvedRetryPolicy } from '@lifi/perps-sdk';
2
+ /** @internal */
3
+ export type ApiParams = Record<string, string | number | boolean>;
4
+ /**
5
+ * Auth-gated read whose token Lighter rejected. Distinct from a generic
6
+ * {@link PerpsError} so callers can evict the stored read-only token and retry
7
+ * with a freshly-created one. Lighter signals this on either channel: an HTTP
8
+ * 401/403, or an HTTP 200 carrying an error `code` in the body.
9
+ * @internal
10
+ */
11
+ export declare class LighterAuthRejectedError extends PerpsError {
12
+ }
13
+ /** @internal */
14
+ export declare const LIGHTER_RETRY_DEFAULTS: ResolvedRetryPolicy;
15
+ /** @internal */
16
+ export interface LighterApiClientOptions {
17
+ signal?: AbortSignal;
18
+ policy?: ResolvedRetryPolicy;
19
+ fetchImpl?: typeof fetch;
20
+ }
21
+ /**
22
+ * HTTP boundary against Lighter's REST API.
23
+ *
24
+ * Browser-direct by design: no LI.FI backend hop, no caching shim — caller
25
+ * supplies the REST base URL, the path, and any query params, and we return
26
+ * the parsed JSON body. Lighter advertises CORS headers on every public
27
+ * endpoint so a vanilla `fetch` from the widget works.
28
+ *
29
+ * Auth-gated endpoints (accountLimits, accountActiveOrders, deposit/history,
30
+ * withdraw/history, positionFunding, liquidations, transfer/history) take the
31
+ * Lighter read-only token as the `auth` query parameter — NOT as an
32
+ * `Authorization` header. This matches Lighter's OpenAPI spec and lets the
33
+ * same call work browser-direct and from server-side proxies.
34
+ *
35
+ * Lighter signals rate limiting via 429 OR 405 (documented behaviour) with a
36
+ * documented 60s firewall cooldown. The default {@link ResolvedRetryPolicy}
37
+ * waits long enough to avoid hammering through the cooldown.
38
+ * @public
39
+ */
40
+ export declare class LighterApiClient {
41
+ private readonly baseUrl;
42
+ private readonly signal;
43
+ private readonly policy;
44
+ private readonly fetchImpl;
45
+ constructor(baseUrl: string, options?: LighterApiClientOptions);
46
+ private buildUrl;
47
+ get<T>(path: string, params?: ApiParams): Promise<T>;
48
+ /**
49
+ * Auth-gated GET. The token is appended as the `auth` query parameter (per
50
+ * Lighter's OpenAPI spec); the `Authorization` header is intentionally NOT
51
+ * used — Lighter rejects it.
52
+ */
53
+ getAuthed<T>(path: string, authToken: string, params?: ApiParams): Promise<T>;
54
+ /**
55
+ * GET that surfaces the raw `{status, body}` pair without throwing on
56
+ * non-2xx — used for endpoints (account lookup by L1 address) where the
57
+ * caller distinguishes specific Lighter error codes from generic failures.
58
+ */
59
+ getWithStatus<T>(path: string, params?: ApiParams): Promise<{
60
+ status: number;
61
+ data: T;
62
+ }>;
63
+ private getChecked;
64
+ }
65
+ //# sourceMappingURL=apiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../../src/utils/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAA;AAOxB,gBAAgB;AAChB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;AAejE;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;CAAG;AAO3D,gBAAgB;AAChB,eAAO,MAAM,sBAAsB,EAAE,mBAmBpC,CAAA;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;gBAExC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAO9D,OAAO,CAAC,QAAQ;IAaV,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;;;OAIG;IACG,SAAS,CAAC,CAAC,EACf,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,SAAc,GACrB,OAAO,CAAC,CAAC,CAAC;IAoBb;;;;OAIG;IACG,aAAa,CAAC,CAAC,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;YAWzB,UAAU;CAiBzB"}
@@ -0,0 +1,11 @@
1
+ import type { Address } from 'viem';
2
+ import type { LtDetailedAccount } from '../types/index.js';
3
+ import type { LighterApiClient } from './apiClient.js';
4
+ /**
5
+ * Look up the Lighter account for an L1 address via `/api/v1/account`,
6
+ * discriminating Lighter's account-not-found body code from generic failures.
7
+ *
8
+ * @public
9
+ */
10
+ export declare const fetchDetailedAccount: (client: LighterApiClient, address: Address) => Promise<LtDetailedAccount>;
11
+ //# sourceMappingURL=fetchDetailedAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchDetailedAccount.d.ts","sourceRoot":"","sources":["../../../src/utils/fetchDetailedAccount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,gBAAgB,EACxB,SAAS,OAAO,KACf,OAAO,CAAC,iBAAiB,CA6B3B,CAAA"}
@@ -0,0 +1,16 @@
1
+ export type { LighterActivityCursor } from './activityCursor.js';
2
+ export { decodeActivityCursor, encodeActivityCursor, } from './activityCursor.js';
3
+ export { LighterApiClient } from './apiClient.js';
4
+ export { fetchDetailedAccount } from './fetchDetailedAccount.js';
5
+ export { lighterAsset } from './lighterAsset.js';
6
+ export { estimateLiquidationPrice } from './liquidation.js';
7
+ export { mapFill } from './mapFill.js';
8
+ export { mapOpenPositions } from './mapOpenPositions.js';
9
+ export { classifyAndMapOrders, isTriggerOrder, isTriggerType, mapOrder, mapOrderDetail, mapStatusReason, mapTriggerOrder, } from './mapOrder.js';
10
+ export { mapPosition } from './mapPosition.js';
11
+ export { mapInterval } from './ohlcvInterval.js';
12
+ export { formatOrderPrice, formatOrderSize } from './orderFormatting.js';
13
+ export { toIsoFromMs, toIsoFromSeconds } from './time.js';
14
+ export type { ScaleToIntegerPolicy } from './wireEncoding.js';
15
+ export { leverageToFraction, mapOrderTypeToInt, mapTimeInForceToInt, marginFractionToMaxLeverage, orderExpiryForTif, resolveTimeInForce, scaleToInteger, } from './wireEncoding.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,QAAQ,EACR,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Asset } from '@lifi/perps-types';
2
+ /** @public */
3
+ export declare const lighterAsset: (id: string, displaySymbol: string) => Asset;
4
+ //# sourceMappingURL=lighterAsset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lighterAsset.d.ts","sourceRoot":"","sources":["../../../src/utils/lighterAsset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,cAAc;AACd,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,EAAE,eAAe,MAAM,KAAG,KAK/D,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Lighter liquidation price estimation.
3
+ *
4
+ * Lighter publishes a flat per-market `maintenance_margin_fraction` on its
5
+ * order books, surfaced on the generic {@link PerpsMarket} as
6
+ * `maintenanceMarginRate`. The estimate is the standard isolated-margin
7
+ * model parameterised by that rate.
8
+ */
9
+ import { type LiquidationEstimateParams } from '@lifi/perps-sdk';
10
+ import type { PerpsMarket } from '@lifi/perps-types';
11
+ /**
12
+ * Estimate the liquidation price of a new isolated position on a Lighter
13
+ * market.
14
+ *
15
+ * @returns The estimated liquidation price, or `undefined` when
16
+ * `market.maintenanceMarginRate` is absent (the model cannot be evaluated
17
+ * without the venue's maintenance margin rate) or the inputs are
18
+ * degenerate.
19
+ * @public
20
+ */
21
+ export declare function estimateLiquidationPrice(market: PerpsMarket, params: LiquidationEstimateParams): number | undefined;
22
+ //# sourceMappingURL=liquidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/utils/liquidation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,yBAAyB,GAChC,MAAM,GAAG,SAAS,CAUpB"}
@@ -0,0 +1,10 @@
1
+ import type { Fill, MarketDisplay } from '@lifi/perps-types';
2
+ import type { LtTrade } from '../types/index.js';
3
+ /**
4
+ * Map a raw Lighter trade to the generic Fill type.
5
+ * @param accountIndex - The viewer's Lighter account index (selects buy/sell side and maker/taker role).
6
+ * @param market - Backend-resolved market identity for `trade.market_id`.
7
+ * @public
8
+ */
9
+ export declare const mapFill: (trade: LtTrade, accountIndex: number, market: MarketDisplay) => Fill;
10
+ //# sourceMappingURL=mapFill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQ5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAyChD;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAClB,OAAO,OAAO,EACd,cAAc,MAAM,EACpB,QAAQ,aAAa,KACpB,IA2CF,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { MarketDisplay, Position } from '@lifi/perps-types';
2
+ import type { LtAccountPosition } from '../types/index.js';
3
+ /**
4
+ * Map raw Lighter account positions to open {@link Position}s, dropping
5
+ * zero-size rows. Only valid for payloads carrying the full position set —
6
+ * dropping zeros from a partial frame would make closes unobservable.
7
+ *
8
+ * @public
9
+ */
10
+ export declare const mapOpenPositions: (positions: LtAccountPosition[], resolveMarket: (marketId: number) => MarketDisplay) => Position[];
11
+ //# sourceMappingURL=mapOpenPositions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapOpenPositions.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,WAAW,iBAAiB,EAAE,EAC9B,eAAe,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,KACjD,QAAQ,EAGgD,CAAA"}
@@ -0,0 +1,72 @@
1
+ import type { MarketDisplay, OpenOrder, Order, TriggerOrder } from '@lifi/perps-types';
2
+ import { OrderType } from '@lifi/perps-types';
3
+ import type { LtOrder } from '../types/index.js';
4
+ /**
5
+ * Map a raw Lighter order status to a short English sentence describing
6
+ * *why* the order ended in a terminal non-FILLED state. Non-terminal
7
+ * statuses, plain `filled`, and unknown values return `undefined`.
8
+ * @public
9
+ */
10
+ export declare const mapStatusReason: (status: string) => string | undefined;
11
+ /**
12
+ * True for order types Lighter exposes as TP/SL legs. Mirrors the
13
+ * Hyperliquid helper of the same name so the backend can split a raw
14
+ * Lighter order list into the same `openOrders` / `triggerOrders`
15
+ * buckets the SDK declares on `OrdersResponse`.
16
+ * @public
17
+ */
18
+ export declare const isTriggerType: (type: OrderType) => boolean;
19
+ /**
20
+ * Decide whether a raw Lighter order belongs in the cross-provider
21
+ * `triggerOrders` bucket. Single source of truth for both the REST
22
+ * `getOrders` path and the `account_all_orders` WS handler.
23
+ *
24
+ * Authoritative signals, in order:
25
+ * 1. `trigger_status` — Lighter's own enum. `'ready' | 'mark-price' |
26
+ * 'parent-order'` all mean "this order has trigger semantics" (TP/SL
27
+ * waiting on price, or a TP/SL leg of a parent placeOrder). `'twap'`
28
+ * is intentionally excluded — TWAP child orders are scheduled resting
29
+ * limits, not TP/SL triggers. `'na'` is "regular order".
30
+ * 2. `trigger_price > 0` — catches cases where `trigger_status`
31
+ * momentarily lags during state transitions (e.g. right after an OCO
32
+ * sibling cancels).
33
+ * 3. `type` — final fallback via the mapped `OrderType`.
34
+ * @public
35
+ */
36
+ export declare const isTriggerOrder: (raw: LtOrder) => boolean;
37
+ /**
38
+ * Map a raw Lighter trigger order (stop/take-profit, market or limit) to
39
+ * the generic `TriggerOrder` shape. For market variants the `limitPrice`
40
+ * field is omitted; for limit variants `order.price` is the limit and
41
+ * `order.trigger_price` is the activation level.
42
+ * @public
43
+ */
44
+ export declare const mapTriggerOrder: (order: LtOrder, market: MarketDisplay) => TriggerOrder;
45
+ /**
46
+ * Map a raw Lighter order to the generic OpenOrder type.
47
+ * @param market - Backend-resolved market identity for `order.market_index`.
48
+ * @public
49
+ */
50
+ export declare const mapOrder: (order: LtOrder, market: MarketDisplay) => OpenOrder;
51
+ /**
52
+ * Walk a flat list of raw Lighter orders and bucket each into the
53
+ * `OpenOrder` / `TriggerOrder` arrays the cross-provider `OrdersResponse`
54
+ * declares, plus a `terminated` list of orderIds whose status has reached
55
+ * a terminal state (filled / cancelled / rejected / expired) — consumers
56
+ * applying WS deltas evict those from the cached buckets. REST callers
57
+ * see `terminated: []` because `accountActiveOrders` returns active only.
58
+ * An order whose market the resolver does not know is skipped.
59
+ * @public
60
+ */
61
+ export declare const classifyAndMapOrders: (orders: LtOrder[], resolveMarket: (marketIndex: number) => MarketDisplay | undefined) => {
62
+ openOrders: OpenOrder[];
63
+ triggerOrders: TriggerOrder[];
64
+ terminated: string[];
65
+ };
66
+ /**
67
+ * Map a raw Lighter order to the rich Order type — adds status, time-in-force
68
+ * and remaining/filled sizes on top of the OpenOrder fields.
69
+ * @public
70
+ */
71
+ export declare const mapOrderDetail: (order: LtOrder, market: MarketDisplay) => Order;
72
+ //# sourceMappingURL=mapOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,KAAK,EACL,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAmDhD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SA+BzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,KAAG,OAIjB,CAAA;AAE/B;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,OAY7C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,YAkBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,EAAE,QAAQ,aAAa,KAAG,SAU/D,CAAA;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,OAAO,EAAE,EACjB,eAAe,CAAC,WAAW,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KAChE;IACD,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAA;CAsBrB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,KAeD,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { MarketDisplay, Position } from '@lifi/perps-types';
2
+ import type { LtAccountPosition } from '../types/index.js';
3
+ /**
4
+ * Map a raw Lighter account position to the generic Position type.
5
+ * @param market - Backend-resolved market identity for `pos.market_id`.
6
+ * @public
7
+ */
8
+ export declare const mapPosition: (pos: LtAccountPosition, market: MarketDisplay) => Position;
9
+ //# sourceMappingURL=mapPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,iBAAiB,EACtB,QAAQ,aAAa,KACpB,QA4BF,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** @public */
2
+ export declare const mapInterval: (interval: string) => string;
3
+ //# sourceMappingURL=ohlcvInterval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlcvInterval.d.ts","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":"AAsBA,cAAc;AACd,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,MAU9C,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Lighter order size and price formatting for exchange submission.
3
+ *
4
+ * Lighter publishes a flat per-market decimal budget on its order books
5
+ * (`supported_price_decimals` / `supported_size_decimals`), surfaced on the
6
+ * generic {@link Market} as `priceDecimals` / `szDecimals`. Prices round to
7
+ * the tick grid; sizes truncate to the lot grid.
8
+ */
9
+ import { type Market } from '@lifi/perps-types';
10
+ /**
11
+ * Format a price onto a Lighter market's tick grid: rounded to the market's
12
+ * `priceDecimals` (Lighter's `supported_price_decimals`), trailing zeros
13
+ * stripped.
14
+ *
15
+ * @throws {PerpsError} `ValidationError` when `market.priceDecimals` is
16
+ * absent — without the venue's tick grid no correct price can be produced.
17
+ * @public
18
+ */
19
+ export declare function formatOrderPrice(market: Market, price: number): string;
20
+ /**
21
+ * Format a size onto a Lighter market's lot grid: truncated (never rounded
22
+ * up, so the size cannot exceed the user's balance) to the market's
23
+ * `szDecimals` (Lighter's `supported_size_decimals`), trailing zeros stripped.
24
+ *
25
+ * @param size - Size in base-asset units as a non-negative magnitude.
26
+ * @public
27
+ */
28
+ export declare function formatOrderSize(market: Market, size: number): string;
29
+ //# sourceMappingURL=orderFormatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAA;AAG/D;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpE"}
@@ -0,0 +1,5 @@
1
+ /** Convert seconds since unix epoch to ISO-8601. */
2
+ export declare const toIsoFromSeconds: (seconds: number) => string;
3
+ /** Convert milliseconds since unix epoch to ISO-8601. */
4
+ export declare const toIsoFromMs: (ms: number) => string;
5
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/utils/time.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MACX,CAAA;AAExC,yDAAyD;AACzD,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,MAAoC,CAAA"}