@lightconexyz/lightcone-sdk 0.1.0 → 0.2.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 (381) hide show
  1. package/README.md +33 -206
  2. package/dist/auth/client.d.ts +25 -0
  3. package/dist/auth/client.d.ts.map +1 -0
  4. package/dist/auth/client.js +120 -0
  5. package/dist/auth/client.js.map +1 -0
  6. package/dist/auth/index.d.ts +73 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/auth/index.js +42 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/native.d.ts +8 -0
  11. package/dist/auth/native.d.ts.map +1 -0
  12. package/dist/auth/native.js +19 -0
  13. package/dist/auth/native.js.map +1 -0
  14. package/dist/auth.d.ts +1 -79
  15. package/dist/auth.d.ts.map +1 -1
  16. package/dist/auth.js +15 -145
  17. package/dist/auth.js.map +1 -1
  18. package/dist/client.d.ts +69 -0
  19. package/dist/client.d.ts.map +1 -0
  20. package/dist/client.js +158 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/domain/admin/client.d.ts +17 -0
  23. package/dist/domain/admin/client.d.ts.map +1 -0
  24. package/dist/domain/admin/client.js +32 -0
  25. package/dist/domain/admin/client.js.map +1 -0
  26. package/dist/domain/admin/index.d.ts +7 -0
  27. package/dist/domain/admin/index.d.ts.map +1 -0
  28. package/dist/domain/admin/index.js +19 -0
  29. package/dist/domain/admin/index.js.map +1 -0
  30. package/dist/domain/admin/wire.d.ts +117 -0
  31. package/dist/domain/admin/wire.d.ts.map +1 -0
  32. package/dist/domain/admin/wire.js +3 -0
  33. package/dist/domain/admin/wire.js.map +1 -0
  34. package/dist/domain/index.d.ts +9 -0
  35. package/dist/domain/index.d.ts.map +1 -0
  36. package/dist/domain/index.js +45 -0
  37. package/dist/domain/index.js.map +1 -0
  38. package/dist/domain/market/client.d.ts +21 -0
  39. package/dist/domain/market/client.d.ts.map +1 -0
  40. package/dist/domain/market/client.js +70 -0
  41. package/dist/domain/market/client.js.map +1 -0
  42. package/dist/domain/market/convert.d.ts +8 -0
  43. package/dist/domain/market/convert.d.ts.map +1 -0
  44. package/dist/domain/market/convert.js +96 -0
  45. package/dist/domain/market/convert.js.map +1 -0
  46. package/dist/domain/market/index.d.ts +47 -0
  47. package/dist/domain/market/index.d.ts.map +1 -0
  48. package/dist/domain/market/index.js +58 -0
  49. package/dist/domain/market/index.js.map +1 -0
  50. package/dist/domain/market/outcome.d.ts +12 -0
  51. package/dist/domain/market/outcome.d.ts.map +1 -0
  52. package/dist/domain/market/outcome.js +28 -0
  53. package/dist/domain/market/outcome.js.map +1 -0
  54. package/dist/domain/market/tokens.d.ts +42 -0
  55. package/dist/domain/market/tokens.d.ts.map +1 -0
  56. package/dist/domain/market/tokens.js +106 -0
  57. package/dist/domain/market/tokens.js.map +1 -0
  58. package/dist/domain/market/wire.d.ts +116 -0
  59. package/dist/domain/market/wire.d.ts.map +1 -0
  60. package/dist/domain/market/wire.js +3 -0
  61. package/dist/domain/market/wire.js.map +1 -0
  62. package/dist/domain/order/client.d.ts +187 -0
  63. package/dist/domain/order/client.d.ts.map +1 -0
  64. package/dist/domain/order/client.js +122 -0
  65. package/dist/domain/order/client.js.map +1 -0
  66. package/dist/domain/order/convert.d.ts +8 -0
  67. package/dist/domain/order/convert.d.ts.map +1 -0
  68. package/dist/domain/order/convert.js +80 -0
  69. package/dist/domain/order/convert.js.map +1 -0
  70. package/dist/domain/order/index.d.ts +48 -0
  71. package/dist/domain/order/index.d.ts.map +1 -0
  72. package/dist/domain/order/index.js +41 -0
  73. package/dist/domain/order/index.js.map +1 -0
  74. package/dist/domain/order/state.d.ts +26 -0
  75. package/dist/domain/order/state.d.ts.map +1 -0
  76. package/dist/domain/order/state.js +85 -0
  77. package/dist/domain/order/state.js.map +1 -0
  78. package/dist/domain/order/wire.d.ts +123 -0
  79. package/dist/domain/order/wire.d.ts.map +1 -0
  80. package/dist/domain/order/wire.js +3 -0
  81. package/dist/domain/order/wire.js.map +1 -0
  82. package/dist/domain/orderbook/client.d.ts +20 -0
  83. package/dist/domain/orderbook/client.d.ts.map +1 -0
  84. package/dist/domain/orderbook/client.js +30 -0
  85. package/dist/domain/orderbook/client.js.map +1 -0
  86. package/dist/domain/orderbook/convert.d.ts +5 -0
  87. package/dist/domain/orderbook/convert.d.ts.map +1 -0
  88. package/dist/domain/orderbook/convert.js +34 -0
  89. package/dist/domain/orderbook/convert.js.map +1 -0
  90. package/dist/domain/orderbook/index.d.ts +36 -0
  91. package/dist/domain/orderbook/index.d.ts.map +1 -0
  92. package/dist/domain/orderbook/index.js +63 -0
  93. package/dist/domain/orderbook/index.js.map +1 -0
  94. package/dist/domain/orderbook/state.d.ts +19 -0
  95. package/dist/domain/orderbook/state.d.ts.map +1 -0
  96. package/dist/domain/orderbook/state.js +86 -0
  97. package/dist/domain/orderbook/state.js.map +1 -0
  98. package/dist/domain/orderbook/ticker.d.ts +8 -0
  99. package/dist/domain/orderbook/ticker.d.ts.map +1 -0
  100. package/dist/domain/orderbook/ticker.js +3 -0
  101. package/dist/domain/orderbook/ticker.js.map +1 -0
  102. package/dist/domain/orderbook/wire.d.ts +63 -0
  103. package/dist/domain/orderbook/wire.d.ts.map +1 -0
  104. package/dist/domain/orderbook/wire.js +3 -0
  105. package/dist/domain/orderbook/wire.js.map +1 -0
  106. package/dist/domain/position/client.d.ts +13 -0
  107. package/dist/domain/position/client.d.ts.map +1 -0
  108. package/dist/domain/position/client.js +20 -0
  109. package/dist/domain/position/client.js.map +1 -0
  110. package/dist/domain/position/index.d.ts +66 -0
  111. package/dist/domain/position/index.d.ts.map +1 -0
  112. package/dist/domain/position/index.js +19 -0
  113. package/dist/domain/position/index.js.map +1 -0
  114. package/dist/domain/position/wire.d.ts +29 -0
  115. package/dist/domain/position/wire.d.ts.map +1 -0
  116. package/dist/domain/position/wire.js +3 -0
  117. package/dist/domain/position/wire.js.map +1 -0
  118. package/dist/domain/price_history/client.d.ts +12 -0
  119. package/dist/domain/price_history/client.d.ts.map +1 -0
  120. package/dist/domain/price_history/client.js +24 -0
  121. package/dist/domain/price_history/client.js.map +1 -0
  122. package/dist/domain/price_history/index.d.ts +14 -0
  123. package/dist/domain/price_history/index.d.ts.map +1 -0
  124. package/dist/domain/price_history/index.js +27 -0
  125. package/dist/domain/price_history/index.js.map +1 -0
  126. package/dist/domain/price_history/state.d.ts +11 -0
  127. package/dist/domain/price_history/state.d.ts.map +1 -0
  128. package/dist/domain/price_history/state.js +35 -0
  129. package/dist/domain/price_history/state.js.map +1 -0
  130. package/dist/domain/price_history/wire.d.ts +45 -0
  131. package/dist/domain/price_history/wire.d.ts.map +1 -0
  132. package/dist/domain/price_history/wire.js +3 -0
  133. package/dist/domain/price_history/wire.js.map +1 -0
  134. package/dist/domain/referral/client.d.ts +13 -0
  135. package/dist/domain/referral/client.d.ts.map +1 -0
  136. package/dist/domain/referral/client.js +34 -0
  137. package/dist/domain/referral/client.js.map +1 -0
  138. package/dist/domain/referral/index.d.ts +17 -0
  139. package/dist/domain/referral/index.d.ts.map +1 -0
  140. package/dist/domain/referral/index.js +19 -0
  141. package/dist/domain/referral/index.js.map +1 -0
  142. package/dist/domain/referral/wire.d.ts +22 -0
  143. package/dist/domain/referral/wire.d.ts.map +1 -0
  144. package/dist/domain/referral/wire.js +3 -0
  145. package/dist/domain/referral/wire.js.map +1 -0
  146. package/dist/domain/trade/client.d.ts +12 -0
  147. package/dist/domain/trade/client.d.ts.map +1 -0
  148. package/dist/domain/trade/client.js +27 -0
  149. package/dist/domain/trade/client.js.map +1 -0
  150. package/dist/domain/trade/convert.d.ts +5 -0
  151. package/dist/domain/trade/convert.d.ts.map +1 -0
  152. package/dist/domain/trade/convert.js +25 -0
  153. package/dist/domain/trade/convert.js.map +1 -0
  154. package/dist/domain/trade/index.d.ts +19 -0
  155. package/dist/domain/trade/index.d.ts.map +1 -0
  156. package/dist/domain/trade/index.js +24 -0
  157. package/dist/domain/trade/index.js.map +1 -0
  158. package/dist/domain/trade/state.d.ts +16 -0
  159. package/dist/domain/trade/state.d.ts.map +1 -0
  160. package/dist/domain/trade/state.js +40 -0
  161. package/dist/domain/trade/state.js.map +1 -0
  162. package/dist/domain/trade/wire.d.ts +34 -0
  163. package/dist/domain/trade/wire.d.ts.map +1 -0
  164. package/dist/domain/trade/wire.js +3 -0
  165. package/dist/domain/trade/wire.js.map +1 -0
  166. package/dist/error.d.ts +44 -0
  167. package/dist/error.d.ts.map +1 -0
  168. package/dist/error.js +126 -0
  169. package/dist/error.js.map +1 -0
  170. package/dist/http/client.d.ts +16 -0
  171. package/dist/http/client.d.ts.map +1 -0
  172. package/dist/http/client.js +146 -0
  173. package/dist/http/client.js.map +1 -0
  174. package/dist/http/index.d.ts +3 -0
  175. package/dist/http/index.d.ts.map +1 -0
  176. package/dist/http/index.js +12 -0
  177. package/dist/http/index.js.map +1 -0
  178. package/dist/http/retry.d.ts +30 -0
  179. package/dist/http/retry.d.ts.map +1 -0
  180. package/dist/http/retry.js +48 -0
  181. package/dist/http/retry.js.map +1 -0
  182. package/dist/index.d.ts +13 -51
  183. package/dist/index.d.ts.map +1 -1
  184. package/dist/index.js +22 -68
  185. package/dist/index.js.map +1 -1
  186. package/dist/network.d.ts +4 -4
  187. package/dist/network.d.ts.map +1 -1
  188. package/dist/network.js +4 -4
  189. package/dist/network.js.map +1 -1
  190. package/dist/prelude.d.ts +41 -0
  191. package/dist/prelude.d.ts.map +1 -0
  192. package/dist/prelude.js +55 -0
  193. package/dist/prelude.js.map +1 -0
  194. package/dist/privy/client.d.ts +17 -0
  195. package/dist/privy/client.d.ts.map +1 -0
  196. package/dist/privy/client.js +66 -0
  197. package/dist/privy/client.js.map +1 -0
  198. package/dist/privy/index.d.ts +57 -0
  199. package/dist/privy/index.d.ts.map +1 -0
  200. package/dist/privy/index.js +80 -0
  201. package/dist/privy/index.js.map +1 -0
  202. package/dist/program/accounts.d.ts +16 -1
  203. package/dist/program/accounts.d.ts.map +1 -1
  204. package/dist/program/accounts.js +41 -0
  205. package/dist/program/accounts.js.map +1 -1
  206. package/dist/program/builder.d.ts +15 -11
  207. package/dist/program/builder.d.ts.map +1 -1
  208. package/dist/program/builder.js +30 -22
  209. package/dist/program/builder.js.map +1 -1
  210. package/dist/program/client.d.ts +37 -1
  211. package/dist/program/client.d.ts.map +1 -1
  212. package/dist/program/client.js +82 -2
  213. package/dist/program/client.js.map +1 -1
  214. package/dist/program/constants.d.ts +9 -1
  215. package/dist/program/constants.d.ts.map +1 -1
  216. package/dist/program/constants.js +9 -1
  217. package/dist/program/constants.js.map +1 -1
  218. package/dist/program/envelope.d.ts +94 -0
  219. package/dist/program/envelope.d.ts.map +1 -0
  220. package/dist/program/envelope.js +258 -0
  221. package/dist/program/envelope.js.map +1 -0
  222. package/dist/program/error.d.ts +8 -0
  223. package/dist/program/error.d.ts.map +1 -0
  224. package/dist/program/error.js +20 -0
  225. package/dist/program/error.js.map +1 -0
  226. package/dist/program/index.d.ts +8 -5
  227. package/dist/program/index.d.ts.map +1 -1
  228. package/dist/program/index.js +28 -3
  229. package/dist/program/index.js.map +1 -1
  230. package/dist/program/instructions.d.ts +78 -1
  231. package/dist/program/instructions.d.ts.map +1 -1
  232. package/dist/program/instructions.js +277 -3
  233. package/dist/program/instructions.js.map +1 -1
  234. package/dist/program/orders.d.ts +26 -8
  235. package/dist/program/orders.d.ts.map +1 -1
  236. package/dist/program/orders.js +58 -31
  237. package/dist/program/orders.js.map +1 -1
  238. package/dist/program/pda.d.ts +19 -0
  239. package/dist/program/pda.d.ts.map +1 -1
  240. package/dist/program/pda.js +28 -0
  241. package/dist/program/pda.js.map +1 -1
  242. package/dist/program/types.d.ts +72 -9
  243. package/dist/program/types.d.ts.map +1 -1
  244. package/dist/program/types.js.map +1 -1
  245. package/dist/shared/fmt/decimal.d.ts +5 -0
  246. package/dist/shared/fmt/decimal.d.ts.map +1 -0
  247. package/dist/shared/fmt/decimal.js +54 -0
  248. package/dist/shared/fmt/decimal.js.map +1 -0
  249. package/dist/shared/fmt/index.d.ts +3 -0
  250. package/dist/shared/fmt/index.d.ts.map +1 -0
  251. package/dist/shared/fmt/index.js +39 -0
  252. package/dist/shared/fmt/index.js.map +1 -0
  253. package/dist/shared/fmt/num.d.ts +6 -0
  254. package/dist/shared/fmt/num.d.ts.map +1 -0
  255. package/dist/shared/fmt/num.js +44 -0
  256. package/dist/shared/fmt/num.js.map +1 -0
  257. package/dist/shared/index.d.ts +4 -7
  258. package/dist/shared/index.d.ts.map +1 -1
  259. package/dist/shared/index.js +19 -7
  260. package/dist/shared/index.js.map +1 -1
  261. package/dist/shared/price.d.ts +5 -33
  262. package/dist/shared/price.d.ts.map +1 -1
  263. package/dist/shared/price.js +11 -39
  264. package/dist/shared/price.js.map +1 -1
  265. package/dist/shared/scaling.d.ts +17 -30
  266. package/dist/shared/scaling.d.ts.map +1 -1
  267. package/dist/shared/scaling.js +88 -57
  268. package/dist/shared/scaling.js.map +1 -1
  269. package/dist/shared/types.d.ts +66 -16
  270. package/dist/shared/types.d.ts.map +1 -1
  271. package/dist/shared/types.js +81 -17
  272. package/dist/shared/types.js.map +1 -1
  273. package/dist/ws/client.browser.d.ts +46 -0
  274. package/dist/ws/client.browser.d.ts.map +1 -0
  275. package/dist/ws/client.browser.js +245 -0
  276. package/dist/ws/client.browser.js.map +1 -0
  277. package/dist/ws/client.node.d.ts +36 -0
  278. package/dist/ws/client.node.d.ts.map +1 -0
  279. package/dist/ws/client.node.js +226 -0
  280. package/dist/ws/client.node.js.map +1 -0
  281. package/dist/ws/index.d.ts +110 -0
  282. package/dist/ws/index.d.ts.map +1 -0
  283. package/dist/ws/index.js +181 -0
  284. package/dist/ws/index.js.map +1 -0
  285. package/dist/ws/subscriptions.d.ts +51 -0
  286. package/dist/ws/subscriptions.d.ts.map +1 -0
  287. package/dist/ws/subscriptions.js +44 -0
  288. package/dist/ws/subscriptions.js.map +1 -0
  289. package/dist/ws/types.d.ts +23 -0
  290. package/dist/ws/types.d.ts.map +1 -0
  291. package/dist/ws/types.js +3 -0
  292. package/dist/ws/types.js.map +1 -0
  293. package/package.json +10 -13
  294. package/dist/api/client.d.ts +0 -225
  295. package/dist/api/client.d.ts.map +0 -1
  296. package/dist/api/client.js +0 -452
  297. package/dist/api/client.js.map +0 -1
  298. package/dist/api/error.d.ts +0 -58
  299. package/dist/api/error.d.ts.map +0 -1
  300. package/dist/api/error.js +0 -98
  301. package/dist/api/error.js.map +0 -1
  302. package/dist/api/index.d.ts +0 -23
  303. package/dist/api/index.d.ts.map +0 -1
  304. package/dist/api/index.js +0 -51
  305. package/dist/api/index.js.map +0 -1
  306. package/dist/api/types/admin.d.ts +0 -49
  307. package/dist/api/types/admin.d.ts.map +0 -1
  308. package/dist/api/types/admin.js +0 -13
  309. package/dist/api/types/admin.js.map +0 -1
  310. package/dist/api/types/index.d.ts +0 -14
  311. package/dist/api/types/index.d.ts.map +0 -1
  312. package/dist/api/types/index.js +0 -13
  313. package/dist/api/types/index.js.map +0 -1
  314. package/dist/api/types/market.d.ts +0 -186
  315. package/dist/api/types/market.d.ts.map +0 -1
  316. package/dist/api/types/market.js +0 -6
  317. package/dist/api/types/market.js.map +0 -1
  318. package/dist/api/types/order.d.ts +0 -190
  319. package/dist/api/types/order.d.ts.map +0 -1
  320. package/dist/api/types/order.js +0 -6
  321. package/dist/api/types/order.js.map +0 -1
  322. package/dist/api/types/orderbook.d.ts +0 -36
  323. package/dist/api/types/orderbook.d.ts.map +0 -1
  324. package/dist/api/types/orderbook.js +0 -6
  325. package/dist/api/types/orderbook.js.map +0 -1
  326. package/dist/api/types/position.d.ts +0 -60
  327. package/dist/api/types/position.d.ts.map +0 -1
  328. package/dist/api/types/position.js +0 -6
  329. package/dist/api/types/position.js.map +0 -1
  330. package/dist/api/types/price_history.d.ts +0 -68
  331. package/dist/api/types/price_history.d.ts.map +0 -1
  332. package/dist/api/types/price_history.js +0 -13
  333. package/dist/api/types/price_history.js.map +0 -1
  334. package/dist/api/types/trade.d.ts +0 -67
  335. package/dist/api/types/trade.d.ts.map +0 -1
  336. package/dist/api/types/trade.js +0 -13
  337. package/dist/api/types/trade.js.map +0 -1
  338. package/dist/api/validation.d.ts +0 -24
  339. package/dist/api/validation.d.ts.map +0 -1
  340. package/dist/api/validation.js +0 -53
  341. package/dist/api/validation.js.map +0 -1
  342. package/dist/websocket/client.d.ts +0 -238
  343. package/dist/websocket/client.d.ts.map +0 -1
  344. package/dist/websocket/client.js +0 -580
  345. package/dist/websocket/client.js.map +0 -1
  346. package/dist/websocket/error.d.ts +0 -47
  347. package/dist/websocket/error.d.ts.map +0 -1
  348. package/dist/websocket/error.js +0 -83
  349. package/dist/websocket/error.js.map +0 -1
  350. package/dist/websocket/handlers.d.ts +0 -97
  351. package/dist/websocket/handlers.d.ts.map +0 -1
  352. package/dist/websocket/handlers.js +0 -277
  353. package/dist/websocket/handlers.js.map +0 -1
  354. package/dist/websocket/index.d.ts +0 -38
  355. package/dist/websocket/index.d.ts.map +0 -1
  356. package/dist/websocket/index.js +0 -75
  357. package/dist/websocket/index.js.map +0 -1
  358. package/dist/websocket/state/index.d.ts +0 -7
  359. package/dist/websocket/state/index.d.ts.map +0 -1
  360. package/dist/websocket/state/index.js +0 -14
  361. package/dist/websocket/state/index.js.map +0 -1
  362. package/dist/websocket/state/orderbook.d.ts +0 -107
  363. package/dist/websocket/state/orderbook.d.ts.map +0 -1
  364. package/dist/websocket/state/orderbook.js +0 -293
  365. package/dist/websocket/state/orderbook.js.map +0 -1
  366. package/dist/websocket/state/price.d.ts +0 -108
  367. package/dist/websocket/state/price.d.ts.map +0 -1
  368. package/dist/websocket/state/price.js +0 -243
  369. package/dist/websocket/state/price.js.map +0 -1
  370. package/dist/websocket/state/user.d.ts +0 -83
  371. package/dist/websocket/state/user.d.ts.map +0 -1
  372. package/dist/websocket/state/user.js +0 -228
  373. package/dist/websocket/state/user.js.map +0 -1
  374. package/dist/websocket/subscriptions.d.ts +0 -143
  375. package/dist/websocket/subscriptions.d.ts.map +0 -1
  376. package/dist/websocket/subscriptions.js +0 -244
  377. package/dist/websocket/subscriptions.js.map +0 -1
  378. package/dist/websocket/types.d.ts +0 -417
  379. package/dist/websocket/types.d.ts.map +0 -1
  380. package/dist/websocket/types.js +0 -195
  381. package/dist/websocket/types.js.map +0 -1
@@ -1,225 +0,0 @@
1
- /**
2
- * REST API client for Lightcone.
3
- */
4
- import { Keypair } from "@solana/web3.js";
5
- import { type AuthCredentials } from "../auth";
6
- import type { MarketsResponse, MarketInfoResponse, DepositAssetsResponse, OrderbookResponse, SubmitOrderRequest, OrderResponse, CancelResponse, CancelAllResponse, PositionsResponse, MarketPositionsResponse, UserOrdersResponse, PriceHistoryParams, PriceHistoryResponse, TradesParams, TradesResponse, AdminResponse, CreateOrderbookRequest, CreateOrderbookResponse } from "./types";
7
- export { DEFAULT_API_URL } from "../network";
8
- /**
9
- * Configuration for retry behavior.
10
- */
11
- export interface RetryConfig {
12
- /** Maximum number of retry attempts (default: 0 = disabled) */
13
- maxRetries: number;
14
- /** Initial delay in milliseconds (default: 100) */
15
- baseDelayMs: number;
16
- /** Maximum delay cap in milliseconds (default: 10000) */
17
- maxDelayMs: number;
18
- }
19
- /** Default retry configuration (disabled) */
20
- export declare const DEFAULT_RETRY_CONFIG: RetryConfig;
21
- /**
22
- * Configuration for the Lightcone API client.
23
- */
24
- export interface LightconeApiClientConfig {
25
- /** Base URL for the API (default: https://tapi.lightcone.xyz/api) */
26
- baseUrl?: string;
27
- /** Request timeout in milliseconds (default: 30000) */
28
- timeout?: number;
29
- /** Additional headers to include in requests */
30
- headers?: Record<string, string>;
31
- /** Retry configuration for transient failures */
32
- retry?: Partial<RetryConfig>;
33
- /** Authentication token for authenticated endpoints */
34
- authToken?: string;
35
- }
36
- /**
37
- * REST API client for the Lightcone platform.
38
- *
39
- * @example
40
- * ```typescript
41
- * import { LightconeApiClient } from "@lightcone/sdk/api";
42
- *
43
- * const client = new LightconeApiClient();
44
- *
45
- * // Get all markets
46
- * const markets = await client.getMarkets();
47
- *
48
- * // Get orderbook
49
- * const orderbook = await client.getOrderbook("market1:ob1");
50
- * ```
51
- */
52
- export declare class LightconeApiClient {
53
- private readonly baseUrl;
54
- private readonly timeout;
55
- private readonly headers;
56
- private readonly retryConfig;
57
- private authToken?;
58
- constructor(config?: LightconeApiClientConfig);
59
- /**
60
- * Log in with a Solana keypair. Stores the auth token for subsequent requests.
61
- *
62
- * @param keypair - The Solana Keypair for authentication
63
- * @returns AuthCredentials containing the auth token and user info
64
- */
65
- login(keypair: Keypair): Promise<AuthCredentials>;
66
- /**
67
- * Set the authentication token manually.
68
- */
69
- setAuthToken(token: string): void;
70
- /**
71
- * Clear the authentication token.
72
- */
73
- clearAuthToken(): void;
74
- /**
75
- * Check if the client has an authentication token.
76
- */
77
- hasAuthToken(): boolean;
78
- /**
79
- * Make an HTTP request with retry support.
80
- */
81
- private request;
82
- /**
83
- * Check if the API is healthy.
84
- *
85
- * @throws {ApiError} If the health check fails
86
- */
87
- healthCheck(): Promise<void>;
88
- /**
89
- * Get all available markets.
90
- *
91
- * @returns List of markets
92
- */
93
- getMarkets(): Promise<MarketsResponse>;
94
- /**
95
- * Get market information by pubkey.
96
- *
97
- * @param marketPubkey - Market PDA address (Base58)
98
- * @returns Market details
99
- * @throws {ApiError} If marketPubkey is invalid
100
- */
101
- getMarket(marketPubkey: string): Promise<MarketInfoResponse>;
102
- /**
103
- * Get market information by slug.
104
- *
105
- * @param slug - URL-friendly market slug
106
- * @returns Market details
107
- */
108
- getMarketBySlug(slug: string): Promise<MarketInfoResponse>;
109
- /**
110
- * Get deposit assets for a market.
111
- *
112
- * @param marketPubkey - Market PDA address (Base58)
113
- * @returns Deposit assets
114
- * @throws {ApiError} If marketPubkey is invalid
115
- */
116
- getDepositAssets(marketPubkey: string): Promise<DepositAssetsResponse>;
117
- /**
118
- * Get orderbook snapshot.
119
- *
120
- * @param orderbookId - Orderbook identifier
121
- * @param depth - Number of levels (default: 20)
122
- * @returns Orderbook snapshot
123
- */
124
- getOrderbook(orderbookId: string, depth?: number): Promise<OrderbookResponse>;
125
- /**
126
- * Submit a new order.
127
- *
128
- * @param request - Order details
129
- * @returns Order response with hash and fill info
130
- * @throws {ApiError} If any pubkey or signature is invalid
131
- */
132
- submitOrder(request: SubmitOrderRequest): Promise<OrderResponse>;
133
- /**
134
- * Cancel an order with a pre-computed signature.
135
- *
136
- * @param orderHash - Hash of the order to cancel (hex)
137
- * @param maker - Order creator's pubkey (Base58)
138
- * @param signature - Ed25519 signature over the order hash (hex, 128 chars)
139
- * @returns Cancel response
140
- * @throws {ApiError} If maker pubkey or signature is invalid
141
- */
142
- cancelOrderWithSignature(orderHash: string, maker: string, signature: string): Promise<CancelResponse>;
143
- /**
144
- * Cancel an order, auto-signing with the given keypair.
145
- *
146
- * @param orderHash - Hash of the order to cancel (hex)
147
- * @param signer - Keypair to sign the cancellation
148
- * @returns Cancel response
149
- */
150
- cancelOrder(orderHash: string, signer: Keypair): Promise<CancelResponse>;
151
- /**
152
- * Cancel all orders for a user with a pre-computed signature.
153
- *
154
- * @param userPubkey - User's public key (Base58)
155
- * @param signature - Ed25519 signature over "cancel_all:{pubkey}:{timestamp}" (hex, 128 chars)
156
- * @param timestamp - Unix timestamp used in the signed message
157
- * @param orderbookId - Optional orderbook filter
158
- * @returns Cancel all response
159
- * @throws {ApiError} If any pubkey or signature is invalid
160
- */
161
- cancelAllOrdersWithSignature(userPubkey: string, signature: string, timestamp: number, orderbookId?: string): Promise<CancelAllResponse>;
162
- /**
163
- * Cancel all orders for a user, auto-signing with the given keypair.
164
- *
165
- * @param signer - Keypair to sign the cancellation
166
- * @param orderbookId - Optional orderbook filter
167
- * @returns Cancel all response
168
- */
169
- cancelAllOrders(signer: Keypair, orderbookId?: string): Promise<CancelAllResponse>;
170
- /**
171
- * Get user positions across all markets.
172
- *
173
- * @param userPubkey - User's public key (Base58)
174
- * @returns User positions
175
- * @throws {ApiError} If userPubkey is invalid
176
- */
177
- getUserPositions(userPubkey: string): Promise<PositionsResponse>;
178
- /**
179
- * Get user positions in a specific market.
180
- *
181
- * @param userPubkey - User's public key (Base58)
182
- * @param marketPubkey - Market PDA address (Base58)
183
- * @returns Market positions
184
- * @throws {ApiError} If any pubkey is invalid
185
- */
186
- getUserMarketPositions(userPubkey: string, marketPubkey: string): Promise<MarketPositionsResponse>;
187
- /**
188
- * Get user's open orders.
189
- *
190
- * @param userPubkey - User's public key (Base58)
191
- * @returns User orders and balances
192
- * @throws {ApiError} If userPubkey is invalid
193
- */
194
- getUserOrders(userPubkey: string): Promise<UserOrdersResponse>;
195
- /**
196
- * Get historical price data.
197
- *
198
- * @param params - Query parameters
199
- * @returns Price history data
200
- * @throws {ApiError} If limit is out of bounds (1-500)
201
- */
202
- getPriceHistory(params: PriceHistoryParams): Promise<PriceHistoryResponse>;
203
- /**
204
- * Get recent trades.
205
- *
206
- * @param params - Query parameters
207
- * @returns Trade history
208
- * @throws {ApiError} If limit is out of bounds (1-500)
209
- */
210
- getTrades(params: TradesParams): Promise<TradesResponse>;
211
- /**
212
- * Admin health check.
213
- *
214
- * @returns Admin status
215
- */
216
- adminHealthCheck(): Promise<AdminResponse>;
217
- /**
218
- * Create a new orderbook (admin only).
219
- *
220
- * @param request - Orderbook creation request
221
- * @returns Created orderbook info
222
- */
223
- createOrderbook(request: CreateOrderbookRequest): Promise<CreateOrderbookResponse>;
224
- }
225
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -1,452 +0,0 @@
1
- "use strict";
2
- /**
3
- * REST API client for Lightcone.
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.LightconeApiClient = exports.DEFAULT_RETRY_CONFIG = exports.DEFAULT_API_URL = void 0;
7
- const orders_1 = require("../program/orders");
8
- const error_1 = require("./error");
9
- const validation_1 = require("./validation");
10
- const auth_1 = require("../auth");
11
- /**
12
- * Convert a typed params object to query string record.
13
- */
14
- function toQueryParams(params) {
15
- const result = {};
16
- for (const [key, value] of Object.entries(params)) {
17
- if (value !== undefined && value !== null) {
18
- result[key] = String(value);
19
- }
20
- }
21
- return result;
22
- }
23
- const network_1 = require("../network");
24
- var network_2 = require("../network");
25
- Object.defineProperty(exports, "DEFAULT_API_URL", { enumerable: true, get: function () { return network_2.DEFAULT_API_URL; } });
26
- /** Default retry configuration (disabled) */
27
- exports.DEFAULT_RETRY_CONFIG = {
28
- maxRetries: 0,
29
- baseDelayMs: 100,
30
- maxDelayMs: 10000,
31
- };
32
- /**
33
- * Calculate delay with exponential backoff and jitter.
34
- * Jitter: 75-100% of calculated delay (prevents thundering herd)
35
- */
36
- function calculateRetryDelay(attempt, config) {
37
- const expDelay = config.baseDelayMs * Math.pow(2, Math.min(attempt, 10));
38
- const cappedDelay = Math.min(expDelay, config.maxDelayMs);
39
- const jitterRange = cappedDelay * 0.25;
40
- const jitter = Math.random() * jitterRange;
41
- return cappedDelay - jitterRange + jitter;
42
- }
43
- /**
44
- * Check if error is retryable.
45
- */
46
- function isRetryable(error) {
47
- if (error.variant === "ServerError")
48
- return true;
49
- if (error.variant === "RateLimited")
50
- return true;
51
- if (error.variant === "Http")
52
- return true; // Network errors
53
- return false;
54
- }
55
- /**
56
- * Sleep for a duration.
57
- */
58
- function sleep(ms) {
59
- return new Promise((resolve) => setTimeout(resolve, ms));
60
- }
61
- /**
62
- * REST API client for the Lightcone platform.
63
- *
64
- * @example
65
- * ```typescript
66
- * import { LightconeApiClient } from "@lightcone/sdk/api";
67
- *
68
- * const client = new LightconeApiClient();
69
- *
70
- * // Get all markets
71
- * const markets = await client.getMarkets();
72
- *
73
- * // Get orderbook
74
- * const orderbook = await client.getOrderbook("market1:ob1");
75
- * ```
76
- */
77
- class LightconeApiClient {
78
- baseUrl;
79
- timeout;
80
- headers;
81
- retryConfig;
82
- authToken;
83
- constructor(config = {}) {
84
- this.baseUrl = config.baseUrl || network_1.DEFAULT_API_URL;
85
- this.timeout = config.timeout || validation_1.DEFAULT_TIMEOUT_MS;
86
- this.headers = {
87
- "Content-Type": "application/json",
88
- ...config.headers,
89
- };
90
- this.retryConfig = {
91
- ...exports.DEFAULT_RETRY_CONFIG,
92
- ...config.retry,
93
- };
94
- this.authToken = config.authToken;
95
- }
96
- // ============================================================================
97
- // AUTHENTICATION
98
- // ============================================================================
99
- /**
100
- * Log in with a Solana keypair. Stores the auth token for subsequent requests.
101
- *
102
- * @param keypair - The Solana Keypair for authentication
103
- * @returns AuthCredentials containing the auth token and user info
104
- */
105
- async login(keypair) {
106
- const credentials = await (0, auth_1.authenticate)(keypair);
107
- this.authToken = credentials.authToken;
108
- return credentials;
109
- }
110
- /**
111
- * Set the authentication token manually.
112
- */
113
- setAuthToken(token) {
114
- this.authToken = token;
115
- }
116
- /**
117
- * Clear the authentication token.
118
- */
119
- clearAuthToken() {
120
- this.authToken = undefined;
121
- }
122
- /**
123
- * Check if the client has an authentication token.
124
- */
125
- hasAuthToken() {
126
- return this.authToken !== undefined;
127
- }
128
- // ============================================================================
129
- // PRIVATE HELPERS
130
- // ============================================================================
131
- /**
132
- * Make an HTTP request with retry support.
133
- */
134
- async request(method, path, body, queryParams, authenticated) {
135
- let url = `${this.baseUrl}${path}`;
136
- // Add query parameters
137
- if (queryParams && Object.keys(queryParams).length > 0) {
138
- const params = new URLSearchParams(queryParams);
139
- url += `?${params.toString()}`;
140
- }
141
- // Build headers, adding auth cookie if needed
142
- const requestHeaders = { ...this.headers };
143
- if (authenticated && this.authToken) {
144
- requestHeaders["Cookie"] = `auth_token=${this.authToken}`;
145
- }
146
- let lastError;
147
- for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
148
- // Delay before retry (not on first attempt)
149
- if (attempt > 0) {
150
- const delay = calculateRetryDelay(attempt - 1, this.retryConfig);
151
- await sleep(delay);
152
- }
153
- const controller = new AbortController();
154
- const timeoutId = setTimeout(() => controller.abort(), this.timeout);
155
- try {
156
- const response = await fetch(url, {
157
- method,
158
- headers: requestHeaders,
159
- body: body ? JSON.stringify(body) : undefined,
160
- signal: controller.signal,
161
- });
162
- clearTimeout(timeoutId);
163
- if (!response.ok) {
164
- let errorMessage = `HTTP ${response.status}`;
165
- try {
166
- const errorData = (await response.json());
167
- errorMessage = (0, error_1.getErrorMessage)(errorData);
168
- }
169
- catch (parseError) {
170
- console.warn(`Failed to parse error response: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
171
- }
172
- const error = error_1.ApiError.fromStatus(response.status, errorMessage);
173
- // Check if retryable
174
- if (isRetryable(error) && attempt < this.retryConfig.maxRetries) {
175
- lastError = error;
176
- continue;
177
- }
178
- throw error;
179
- }
180
- const data = (await response.json());
181
- return data;
182
- }
183
- catch (error) {
184
- clearTimeout(timeoutId);
185
- if (error instanceof error_1.ApiError) {
186
- // Already an ApiError - check if retryable
187
- if (isRetryable(error) && attempt < this.retryConfig.maxRetries) {
188
- lastError = error;
189
- continue;
190
- }
191
- throw error;
192
- }
193
- let apiError;
194
- if (error instanceof Error) {
195
- if (error.name === "AbortError") {
196
- apiError = error_1.ApiError.http("Request timeout");
197
- }
198
- else {
199
- apiError = error_1.ApiError.http(error.message);
200
- }
201
- }
202
- else {
203
- apiError = error_1.ApiError.http("Unknown error");
204
- }
205
- // Network errors are retryable
206
- if (isRetryable(apiError) && attempt < this.retryConfig.maxRetries) {
207
- lastError = apiError;
208
- continue;
209
- }
210
- throw apiError;
211
- }
212
- }
213
- // Should not reach here, but throw last error if we do
214
- throw lastError || error_1.ApiError.http("Unknown error");
215
- }
216
- // ============================================================================
217
- // HEALTH CHECK
218
- // ============================================================================
219
- /**
220
- * Check if the API is healthy.
221
- *
222
- * @throws {ApiError} If the health check fails
223
- */
224
- async healthCheck() {
225
- await this.request("GET", "/health");
226
- }
227
- // ============================================================================
228
- // MARKETS
229
- // ============================================================================
230
- /**
231
- * Get all available markets.
232
- *
233
- * @returns List of markets
234
- */
235
- async getMarkets() {
236
- return this.request("GET", "/markets");
237
- }
238
- /**
239
- * Get market information by pubkey.
240
- *
241
- * @param marketPubkey - Market PDA address (Base58)
242
- * @returns Market details
243
- * @throws {ApiError} If marketPubkey is invalid
244
- */
245
- async getMarket(marketPubkey) {
246
- (0, validation_1.validatePubkey)(marketPubkey, "marketPubkey");
247
- return this.request("GET", `/markets/${encodeURIComponent(marketPubkey)}`);
248
- }
249
- /**
250
- * Get market information by slug.
251
- *
252
- * @param slug - URL-friendly market slug
253
- * @returns Market details
254
- */
255
- async getMarketBySlug(slug) {
256
- return this.request("GET", `/markets/by-slug/${encodeURIComponent(slug)}`);
257
- }
258
- /**
259
- * Get deposit assets for a market.
260
- *
261
- * @param marketPubkey - Market PDA address (Base58)
262
- * @returns Deposit assets
263
- * @throws {ApiError} If marketPubkey is invalid
264
- */
265
- async getDepositAssets(marketPubkey) {
266
- (0, validation_1.validatePubkey)(marketPubkey, "marketPubkey");
267
- return this.request("GET", `/markets/${encodeURIComponent(marketPubkey)}/deposit-assets`);
268
- }
269
- // ============================================================================
270
- // ORDERBOOK
271
- // ============================================================================
272
- /**
273
- * Get orderbook snapshot.
274
- *
275
- * @param orderbookId - Orderbook identifier
276
- * @param depth - Number of levels (default: 20)
277
- * @returns Orderbook snapshot
278
- */
279
- async getOrderbook(orderbookId, depth) {
280
- return this.request("GET", `/orderbook/${encodeURIComponent(orderbookId)}`, undefined, toQueryParams({ depth }));
281
- }
282
- // ============================================================================
283
- // ORDERS
284
- // ============================================================================
285
- /**
286
- * Submit a new order.
287
- *
288
- * @param request - Order details
289
- * @returns Order response with hash and fill info
290
- * @throws {ApiError} If any pubkey or signature is invalid
291
- */
292
- async submitOrder(request) {
293
- (0, validation_1.validatePubkey)(request.maker, "maker");
294
- (0, validation_1.validatePubkey)(request.market_pubkey, "market_pubkey");
295
- (0, validation_1.validatePubkey)(request.base_token, "base_token");
296
- (0, validation_1.validatePubkey)(request.quote_token, "quote_token");
297
- (0, validation_1.validateSignature)(request.signature);
298
- return this.request("POST", "/orders/submit", request);
299
- }
300
- /**
301
- * Cancel an order with a pre-computed signature.
302
- *
303
- * @param orderHash - Hash of the order to cancel (hex)
304
- * @param maker - Order creator's pubkey (Base58)
305
- * @param signature - Ed25519 signature over the order hash (hex, 128 chars)
306
- * @returns Cancel response
307
- * @throws {ApiError} If maker pubkey or signature is invalid
308
- */
309
- async cancelOrderWithSignature(orderHash, maker, signature) {
310
- (0, validation_1.validatePubkey)(maker, "maker");
311
- (0, validation_1.validateSignature)(signature);
312
- const request = { order_hash: orderHash, maker, signature };
313
- return this.request("POST", "/orders/cancel", request);
314
- }
315
- /**
316
- * Cancel an order, auto-signing with the given keypair.
317
- *
318
- * @param orderHash - Hash of the order to cancel (hex)
319
- * @param signer - Keypair to sign the cancellation
320
- * @returns Cancel response
321
- */
322
- async cancelOrder(orderHash, signer) {
323
- const maker = signer.publicKey.toBase58();
324
- const signature = (0, orders_1.signCancelOrder)(orderHash, signer);
325
- return this.cancelOrderWithSignature(orderHash, maker, signature);
326
- }
327
- /**
328
- * Cancel all orders for a user with a pre-computed signature.
329
- *
330
- * @param userPubkey - User's public key (Base58)
331
- * @param signature - Ed25519 signature over "cancel_all:{pubkey}:{timestamp}" (hex, 128 chars)
332
- * @param timestamp - Unix timestamp used in the signed message
333
- * @param orderbookId - Optional orderbook filter
334
- * @returns Cancel all response
335
- * @throws {ApiError} If any pubkey or signature is invalid
336
- */
337
- async cancelAllOrdersWithSignature(userPubkey, signature, timestamp, orderbookId) {
338
- (0, validation_1.validatePubkey)(userPubkey, "userPubkey");
339
- (0, validation_1.validateSignature)(signature);
340
- const request = {
341
- user_pubkey: userPubkey,
342
- orderbook_id: orderbookId,
343
- signature,
344
- timestamp,
345
- };
346
- return this.request("POST", "/orders/cancel-all", request);
347
- }
348
- /**
349
- * Cancel all orders for a user, auto-signing with the given keypair.
350
- *
351
- * @param signer - Keypair to sign the cancellation
352
- * @param orderbookId - Optional orderbook filter
353
- * @returns Cancel all response
354
- */
355
- async cancelAllOrders(signer, orderbookId) {
356
- const userPubkey = signer.publicKey.toBase58();
357
- const timestamp = Math.floor(Date.now() / 1000);
358
- const signature = (0, orders_1.signCancelAll)(userPubkey, timestamp, signer);
359
- return this.cancelAllOrdersWithSignature(userPubkey, signature, timestamp, orderbookId);
360
- }
361
- // ============================================================================
362
- // USER POSITIONS
363
- // ============================================================================
364
- /**
365
- * Get user positions across all markets.
366
- *
367
- * @param userPubkey - User's public key (Base58)
368
- * @returns User positions
369
- * @throws {ApiError} If userPubkey is invalid
370
- */
371
- async getUserPositions(userPubkey) {
372
- (0, validation_1.validatePubkey)(userPubkey, "userPubkey");
373
- return this.request("GET", `/users/${encodeURIComponent(userPubkey)}/positions`);
374
- }
375
- /**
376
- * Get user positions in a specific market.
377
- *
378
- * @param userPubkey - User's public key (Base58)
379
- * @param marketPubkey - Market PDA address (Base58)
380
- * @returns Market positions
381
- * @throws {ApiError} If any pubkey is invalid
382
- */
383
- async getUserMarketPositions(userPubkey, marketPubkey) {
384
- (0, validation_1.validatePubkey)(userPubkey, "userPubkey");
385
- (0, validation_1.validatePubkey)(marketPubkey, "marketPubkey");
386
- return this.request("GET", `/users/${encodeURIComponent(userPubkey)}/markets/${encodeURIComponent(marketPubkey)}/positions`);
387
- }
388
- // ============================================================================
389
- // USER ORDERS
390
- // ============================================================================
391
- /**
392
- * Get user's open orders.
393
- *
394
- * @param userPubkey - User's public key (Base58)
395
- * @returns User orders and balances
396
- * @throws {ApiError} If userPubkey is invalid
397
- */
398
- async getUserOrders(userPubkey) {
399
- (0, validation_1.validatePubkey)(userPubkey, "userPubkey");
400
- return this.request("POST", "/users/orders", { user_pubkey: userPubkey }, undefined, true);
401
- }
402
- // ============================================================================
403
- // PRICE HISTORY
404
- // ============================================================================
405
- /**
406
- * Get historical price data.
407
- *
408
- * @param params - Query parameters
409
- * @returns Price history data
410
- * @throws {ApiError} If limit is out of bounds (1-500)
411
- */
412
- async getPriceHistory(params) {
413
- (0, validation_1.validateLimit)(params.limit);
414
- return this.request("GET", "/price-history", undefined, toQueryParams(params));
415
- }
416
- // ============================================================================
417
- // TRADES
418
- // ============================================================================
419
- /**
420
- * Get recent trades.
421
- *
422
- * @param params - Query parameters
423
- * @returns Trade history
424
- * @throws {ApiError} If limit is out of bounds (1-500)
425
- */
426
- async getTrades(params) {
427
- (0, validation_1.validateLimit)(params.limit);
428
- return this.request("GET", "/trades", undefined, toQueryParams(params));
429
- }
430
- // ============================================================================
431
- // ADMIN
432
- // ============================================================================
433
- /**
434
- * Admin health check.
435
- *
436
- * @returns Admin status
437
- */
438
- async adminHealthCheck() {
439
- return this.request("GET", "/admin/test");
440
- }
441
- /**
442
- * Create a new orderbook (admin only).
443
- *
444
- * @param request - Orderbook creation request
445
- * @returns Created orderbook info
446
- */
447
- async createOrderbook(request) {
448
- return this.request("POST", "/admin/create-orderbook", request);
449
- }
450
- }
451
- exports.LightconeApiClient = LightconeApiClient;
452
- //# sourceMappingURL=client.js.map