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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/README.md +4 -30
  2. package/dist/cjs/acceptTerms.d.ts +20 -0
  3. package/dist/cjs/acceptTerms.d.ts.map +1 -0
  4. package/dist/cjs/acceptTerms.js +10 -0
  5. package/dist/cjs/acceptTerms.js.map +1 -0
  6. package/dist/cjs/account.d.ts +191 -0
  7. package/dist/cjs/account.d.ts.map +1 -0
  8. package/{src/_esm → dist/cjs}/account.js.map +1 -1
  9. package/dist/cjs/action.d.ts +200 -0
  10. package/dist/cjs/action.d.ts.map +1 -0
  11. package/dist/cjs/action.js.map +1 -0
  12. package/dist/cjs/asset.d.ts +11 -0
  13. package/dist/cjs/asset.d.ts.map +1 -0
  14. package/dist/cjs/asset.js.map +1 -0
  15. package/{src/_types → dist/cjs}/enums.d.ts +6 -12
  16. package/dist/cjs/enums.d.ts.map +1 -0
  17. package/{src/_cjs → dist/cjs}/enums.js +4 -0
  18. package/dist/cjs/enums.js.map +1 -0
  19. package/dist/cjs/errors.d.ts.map +1 -0
  20. package/dist/cjs/errors.js.map +1 -0
  21. package/{src/_types → dist/cjs}/index.d.ts +11 -5
  22. package/dist/cjs/index.d.ts.map +1 -0
  23. package/{src/_cjs → dist/cjs}/index.js +11 -5
  24. package/dist/cjs/index.js.map +1 -0
  25. package/{src/_types/asset.d.ts → dist/cjs/market.d.ts} +33 -25
  26. package/dist/cjs/market.d.ts.map +1 -0
  27. package/dist/cjs/market.js +3 -0
  28. package/dist/cjs/market.js.map +1 -0
  29. package/dist/cjs/meta.d.ts +17 -0
  30. package/dist/cjs/meta.d.ts.map +1 -0
  31. package/dist/cjs/meta.js +3 -0
  32. package/dist/cjs/meta.js.map +1 -0
  33. package/dist/cjs/primitives.d.ts +3 -0
  34. package/dist/cjs/primitives.d.ts.map +1 -0
  35. package/dist/cjs/primitives.js +3 -0
  36. package/dist/cjs/primitives.js.map +1 -0
  37. package/dist/cjs/providers.d.ts +58 -0
  38. package/dist/cjs/providers.d.ts.map +1 -0
  39. package/{src/_cjs → dist/cjs}/providers.js.map +1 -1
  40. package/dist/cjs/quote.d.ts +23 -0
  41. package/dist/cjs/quote.d.ts.map +1 -0
  42. package/dist/cjs/quote.js +3 -0
  43. package/dist/cjs/quote.js.map +1 -0
  44. package/{src/_types → dist/cjs}/subscriptions.d.ts +14 -13
  45. package/dist/cjs/subscriptions.d.ts.map +1 -0
  46. package/{src/_cjs → dist/cjs}/subscriptions.js.map +1 -1
  47. package/dist/cjs/typedData.d.ts +23 -0
  48. package/dist/cjs/typedData.d.ts.map +1 -0
  49. package/{src/_cjs → dist/cjs}/typedData.js.map +1 -1
  50. package/dist/cjs/vote.d.ts +27 -0
  51. package/dist/cjs/vote.d.ts.map +1 -0
  52. package/dist/cjs/vote.js +12 -0
  53. package/dist/cjs/vote.js.map +1 -0
  54. package/dist/esm/acceptTerms.d.ts +45 -0
  55. package/dist/esm/acceptTerms.d.ts.map +1 -0
  56. package/dist/esm/acceptTerms.js +12 -0
  57. package/dist/esm/acceptTerms.js.map +1 -0
  58. package/dist/esm/account.d.ts +229 -0
  59. package/dist/esm/account.d.ts.map +1 -0
  60. package/{src/_cjs → dist/esm}/account.js.map +1 -1
  61. package/{src/_types → dist/esm}/action.d.ts +56 -69
  62. package/dist/esm/action.d.ts.map +1 -0
  63. package/dist/esm/action.js +2 -0
  64. package/dist/esm/action.js.map +1 -0
  65. package/dist/esm/asset.d.ts +25 -0
  66. package/dist/esm/asset.d.ts.map +1 -0
  67. package/dist/esm/asset.js.map +1 -0
  68. package/dist/esm/enums.d.ts +171 -0
  69. package/dist/esm/enums.d.ts.map +1 -0
  70. package/{src/_esm → dist/esm}/enums.js +26 -10
  71. package/dist/esm/enums.js.map +1 -0
  72. package/dist/esm/errors.d.ts +8 -0
  73. package/dist/esm/errors.d.ts.map +1 -0
  74. package/dist/esm/errors.js.map +1 -0
  75. package/dist/esm/index.d.ts +23 -0
  76. package/dist/esm/index.d.ts.map +1 -0
  77. package/dist/esm/index.js +23 -0
  78. package/dist/esm/index.js.map +1 -0
  79. package/dist/esm/market.d.ts +107 -0
  80. package/dist/esm/market.d.ts.map +1 -0
  81. package/dist/esm/market.js +2 -0
  82. package/dist/esm/market.js.map +1 -0
  83. package/dist/esm/meta.d.ts +37 -0
  84. package/dist/esm/meta.d.ts.map +1 -0
  85. package/dist/esm/meta.js +2 -0
  86. package/dist/esm/meta.js.map +1 -0
  87. package/dist/esm/primitives.d.ts +5 -0
  88. package/dist/esm/primitives.d.ts.map +1 -0
  89. package/dist/esm/primitives.js +2 -0
  90. package/dist/esm/primitives.js.map +1 -0
  91. package/dist/esm/providers.d.ts +116 -0
  92. package/dist/esm/providers.d.ts.map +1 -0
  93. package/{src/_esm → dist/esm}/providers.js.map +1 -1
  94. package/dist/esm/quote.d.ts +47 -0
  95. package/dist/esm/quote.d.ts.map +1 -0
  96. package/dist/esm/quote.js +2 -0
  97. package/dist/esm/quote.js.map +1 -0
  98. package/dist/esm/subscriptions.d.ts +115 -0
  99. package/dist/esm/subscriptions.d.ts.map +1 -0
  100. package/{src/_esm → dist/esm}/subscriptions.js.map +1 -1
  101. package/dist/esm/typedData.d.ts +28 -0
  102. package/dist/esm/typedData.d.ts.map +1 -0
  103. package/{src/_esm → dist/esm}/typedData.js.map +1 -1
  104. package/dist/esm/vote.d.ts +68 -0
  105. package/dist/esm/vote.d.ts.map +1 -0
  106. package/dist/esm/vote.js +20 -0
  107. package/dist/esm/vote.js.map +1 -0
  108. package/dist/types/acceptTerms.d.ts +45 -0
  109. package/dist/types/acceptTerms.d.ts.map +1 -0
  110. package/dist/types/account.d.ts +229 -0
  111. package/dist/types/account.d.ts.map +1 -0
  112. package/dist/types/action.d.ts +248 -0
  113. package/dist/types/action.d.ts.map +1 -0
  114. package/dist/types/asset.d.ts +25 -0
  115. package/dist/types/asset.d.ts.map +1 -0
  116. package/dist/types/enums.d.ts +171 -0
  117. package/dist/types/enums.d.ts.map +1 -0
  118. package/dist/types/errors.d.ts +8 -0
  119. package/dist/types/errors.d.ts.map +1 -0
  120. package/dist/types/index.d.ts +23 -0
  121. package/dist/types/index.d.ts.map +1 -0
  122. package/dist/types/market.d.ts +107 -0
  123. package/dist/types/market.d.ts.map +1 -0
  124. package/dist/types/meta.d.ts +37 -0
  125. package/dist/types/meta.d.ts.map +1 -0
  126. package/dist/types/primitives.d.ts +5 -0
  127. package/dist/types/primitives.d.ts.map +1 -0
  128. package/dist/types/providers.d.ts +116 -0
  129. package/dist/types/providers.d.ts.map +1 -0
  130. package/dist/types/quote.d.ts +47 -0
  131. package/dist/types/quote.d.ts.map +1 -0
  132. package/dist/types/subscriptions.d.ts +115 -0
  133. package/dist/types/subscriptions.d.ts.map +1 -0
  134. package/dist/types/typedData.d.ts +28 -0
  135. package/dist/types/typedData.d.ts.map +1 -0
  136. package/dist/types/vote.d.ts +68 -0
  137. package/dist/types/vote.d.ts.map +1 -0
  138. package/package.json +37 -65
  139. package/src/acceptTerms.ts +53 -0
  140. package/src/account.ts +74 -111
  141. package/src/action.ts +64 -96
  142. package/src/asset.ts +19 -82
  143. package/src/enums.ts +27 -10
  144. package/src/errors.ts +1 -0
  145. package/src/index.ts +20 -5
  146. package/src/market.ts +137 -0
  147. package/src/meta.ts +38 -0
  148. package/src/primitives.ts +5 -0
  149. package/src/providers.ts +79 -110
  150. package/src/quote.ts +49 -0
  151. package/src/subscriptions.ts +62 -18
  152. package/src/typedData.ts +20 -11
  153. package/src/vote.ts +79 -0
  154. package/providers/hyperliquid/package.json +0 -5
  155. package/providers/lighter/package.json +0 -5
  156. package/src/_cjs/action.js.map +0 -1
  157. package/src/_cjs/asset.js.map +0 -1
  158. package/src/_cjs/enums.js.map +0 -1
  159. package/src/_cjs/errors.js.map +0 -1
  160. package/src/_cjs/index.js.map +0 -1
  161. package/src/_cjs/providers/_shared/fillClassification.js +0 -37
  162. package/src/_cjs/providers/_shared/fillClassification.js.map +0 -1
  163. package/src/_cjs/providers/hyperliquid/assetId.js +0 -21
  164. package/src/_cjs/providers/hyperliquid/assetId.js.map +0 -1
  165. package/src/_cjs/providers/hyperliquid/index.js +0 -20
  166. package/src/_cjs/providers/hyperliquid/index.js.map +0 -1
  167. package/src/_cjs/providers/hyperliquid/mappers/_market.js +0 -15
  168. package/src/_cjs/providers/hyperliquid/mappers/_market.js.map +0 -1
  169. package/src/_cjs/providers/hyperliquid/mappers/activity.js +0 -128
  170. package/src/_cjs/providers/hyperliquid/mappers/activity.js.map +0 -1
  171. package/src/_cjs/providers/hyperliquid/mappers/asset.js +0 -29
  172. package/src/_cjs/providers/hyperliquid/mappers/asset.js.map +0 -1
  173. package/src/_cjs/providers/hyperliquid/mappers/fill.js +0 -36
  174. package/src/_cjs/providers/hyperliquid/mappers/fill.js.map +0 -1
  175. package/src/_cjs/providers/hyperliquid/mappers/index.js +0 -20
  176. package/src/_cjs/providers/hyperliquid/mappers/index.js.map +0 -1
  177. package/src/_cjs/providers/hyperliquid/mappers/order.js +0 -153
  178. package/src/_cjs/providers/hyperliquid/mappers/order.js.map +0 -1
  179. package/src/_cjs/providers/hyperliquid/mappers/position.js +0 -32
  180. package/src/_cjs/providers/hyperliquid/mappers/position.js.map +0 -1
  181. package/src/_cjs/providers/hyperliquid/mappers/shared.js +0 -2
  182. package/src/_cjs/providers/hyperliquid/mappers/shared.js.map +0 -1
  183. package/src/_cjs/providers/hyperliquid/types.js +0 -21
  184. package/src/_cjs/providers/hyperliquid/types.js.map +0 -1
  185. package/src/_cjs/providers/lighter/apiTypes.js +0 -3
  186. package/src/_cjs/providers/lighter/apiTypes.js.map +0 -1
  187. package/src/_cjs/providers/lighter/index.js +0 -20
  188. package/src/_cjs/providers/lighter/index.js.map +0 -1
  189. package/src/_cjs/providers/lighter/mappers/fill.js +0 -34
  190. package/src/_cjs/providers/lighter/mappers/fill.js.map +0 -1
  191. package/src/_cjs/providers/lighter/mappers/index.js +0 -13
  192. package/src/_cjs/providers/lighter/mappers/index.js.map +0 -1
  193. package/src/_cjs/providers/lighter/mappers/order.js +0 -142
  194. package/src/_cjs/providers/lighter/mappers/order.js.map +0 -1
  195. package/src/_cjs/providers/lighter/mappers/position.js +0 -35
  196. package/src/_cjs/providers/lighter/mappers/position.js.map +0 -1
  197. package/src/_cjs/providers/lighter/types.js +0 -23
  198. package/src/_cjs/providers/lighter/types.js.map +0 -1
  199. package/src/_esm/action.js +0 -2
  200. package/src/_esm/action.js.map +0 -1
  201. package/src/_esm/asset.js.map +0 -1
  202. package/src/_esm/enums.js.map +0 -1
  203. package/src/_esm/errors.js.map +0 -1
  204. package/src/_esm/index.js +0 -9
  205. package/src/_esm/index.js.map +0 -1
  206. package/src/_esm/providers/_shared/fillClassification.js +0 -43
  207. package/src/_esm/providers/_shared/fillClassification.js.map +0 -1
  208. package/src/_esm/providers/hyperliquid/assetId.js +0 -25
  209. package/src/_esm/providers/hyperliquid/assetId.js.map +0 -1
  210. package/src/_esm/providers/hyperliquid/index.js +0 -4
  211. package/src/_esm/providers/hyperliquid/index.js.map +0 -1
  212. package/src/_esm/providers/hyperliquid/mappers/_market.js +0 -22
  213. package/src/_esm/providers/hyperliquid/mappers/_market.js.map +0 -1
  214. package/src/_esm/providers/hyperliquid/mappers/activity.js +0 -138
  215. package/src/_esm/providers/hyperliquid/mappers/activity.js.map +0 -1
  216. package/src/_esm/providers/hyperliquid/mappers/asset.js +0 -25
  217. package/src/_esm/providers/hyperliquid/mappers/asset.js.map +0 -1
  218. package/src/_esm/providers/hyperliquid/mappers/fill.js +0 -32
  219. package/src/_esm/providers/hyperliquid/mappers/fill.js.map +0 -1
  220. package/src/_esm/providers/hyperliquid/mappers/index.js +0 -6
  221. package/src/_esm/providers/hyperliquid/mappers/index.js.map +0 -1
  222. package/src/_esm/providers/hyperliquid/mappers/order.js +0 -151
  223. package/src/_esm/providers/hyperliquid/mappers/order.js.map +0 -1
  224. package/src/_esm/providers/hyperliquid/mappers/position.js +0 -28
  225. package/src/_esm/providers/hyperliquid/mappers/position.js.map +0 -1
  226. package/src/_esm/providers/hyperliquid/mappers/shared.js +0 -2
  227. package/src/_esm/providers/hyperliquid/mappers/shared.js.map +0 -1
  228. package/src/_esm/providers/hyperliquid/types.js +0 -35
  229. package/src/_esm/providers/hyperliquid/types.js.map +0 -1
  230. package/src/_esm/providers/lighter/apiTypes.js +0 -5
  231. package/src/_esm/providers/lighter/apiTypes.js.map +0 -1
  232. package/src/_esm/providers/lighter/index.js +0 -4
  233. package/src/_esm/providers/lighter/index.js.map +0 -1
  234. package/src/_esm/providers/lighter/mappers/fill.js +0 -39
  235. package/src/_esm/providers/lighter/mappers/fill.js.map +0 -1
  236. package/src/_esm/providers/lighter/mappers/index.js +0 -4
  237. package/src/_esm/providers/lighter/mappers/index.js.map +0 -1
  238. package/src/_esm/providers/lighter/mappers/order.js +0 -162
  239. package/src/_esm/providers/lighter/mappers/order.js.map +0 -1
  240. package/src/_esm/providers/lighter/mappers/position.js +0 -38
  241. package/src/_esm/providers/lighter/mappers/position.js.map +0 -1
  242. package/src/_esm/providers/lighter/types.js +0 -26
  243. package/src/_esm/providers/lighter/types.js.map +0 -1
  244. package/src/_types/account.d.ts +0 -268
  245. package/src/_types/account.d.ts.map +0 -1
  246. package/src/_types/action.d.ts.map +0 -1
  247. package/src/_types/asset.d.ts.map +0 -1
  248. package/src/_types/enums.d.ts.map +0 -1
  249. package/src/_types/errors.d.ts.map +0 -1
  250. package/src/_types/index.d.ts.map +0 -1
  251. package/src/_types/providers/_shared/fillClassification.d.ts +0 -12
  252. package/src/_types/providers/_shared/fillClassification.d.ts.map +0 -1
  253. package/src/_types/providers/hyperliquid/assetId.d.ts +0 -14
  254. package/src/_types/providers/hyperliquid/assetId.d.ts.map +0 -1
  255. package/src/_types/providers/hyperliquid/index.d.ts +0 -4
  256. package/src/_types/providers/hyperliquid/index.d.ts.map +0 -1
  257. package/src/_types/providers/hyperliquid/mappers/_market.d.ts +0 -13
  258. package/src/_types/providers/hyperliquid/mappers/_market.d.ts.map +0 -1
  259. package/src/_types/providers/hyperliquid/mappers/activity.d.ts +0 -13
  260. package/src/_types/providers/hyperliquid/mappers/activity.d.ts.map +0 -1
  261. package/src/_types/providers/hyperliquid/mappers/asset.d.ts +0 -4
  262. package/src/_types/providers/hyperliquid/mappers/asset.d.ts.map +0 -1
  263. package/src/_types/providers/hyperliquid/mappers/fill.d.ts +0 -6
  264. package/src/_types/providers/hyperliquid/mappers/fill.d.ts.map +0 -1
  265. package/src/_types/providers/hyperliquid/mappers/index.d.ts +0 -6
  266. package/src/_types/providers/hyperliquid/mappers/index.d.ts.map +0 -1
  267. package/src/_types/providers/hyperliquid/mappers/order.d.ts +0 -18
  268. package/src/_types/providers/hyperliquid/mappers/order.d.ts.map +0 -1
  269. package/src/_types/providers/hyperliquid/mappers/position.d.ts +0 -4
  270. package/src/_types/providers/hyperliquid/mappers/position.d.ts.map +0 -1
  271. package/src/_types/providers/hyperliquid/mappers/shared.d.ts +0 -1
  272. package/src/_types/providers/hyperliquid/mappers/shared.d.ts.map +0 -1
  273. package/src/_types/providers/hyperliquid/types.d.ts +0 -289
  274. package/src/_types/providers/hyperliquid/types.d.ts.map +0 -1
  275. package/src/_types/providers/lighter/apiTypes.d.ts +0 -76
  276. package/src/_types/providers/lighter/apiTypes.d.ts.map +0 -1
  277. package/src/_types/providers/lighter/index.d.ts +0 -4
  278. package/src/_types/providers/lighter/index.d.ts.map +0 -1
  279. package/src/_types/providers/lighter/mappers/fill.d.ts +0 -9
  280. package/src/_types/providers/lighter/mappers/fill.d.ts.map +0 -1
  281. package/src/_types/providers/lighter/mappers/index.d.ts +0 -4
  282. package/src/_types/providers/lighter/mappers/index.d.ts.map +0 -1
  283. package/src/_types/providers/lighter/mappers/order.d.ts +0 -35
  284. package/src/_types/providers/lighter/mappers/order.d.ts.map +0 -1
  285. package/src/_types/providers/lighter/mappers/position.d.ts +0 -8
  286. package/src/_types/providers/lighter/mappers/position.d.ts.map +0 -1
  287. package/src/_types/providers/lighter/types.d.ts +0 -90
  288. package/src/_types/providers/lighter/types.d.ts.map +0 -1
  289. package/src/_types/providers.d.ts +0 -145
  290. package/src/_types/providers.d.ts.map +0 -1
  291. package/src/_types/subscriptions.d.ts.map +0 -1
  292. package/src/_types/typedData.d.ts +0 -18
  293. package/src/_types/typedData.d.ts.map +0 -1
  294. package/src/providers/_shared/fillClassification.ts +0 -50
  295. package/src/providers/hyperliquid/assetId.ts +0 -32
  296. package/src/providers/hyperliquid/index.ts +0 -3
  297. package/src/providers/hyperliquid/mappers/_market.ts +0 -21
  298. package/src/providers/hyperliquid/mappers/activity.ts +0 -169
  299. package/src/providers/hyperliquid/mappers/asset.ts +0 -33
  300. package/src/providers/hyperliquid/mappers/fill.ts +0 -41
  301. package/src/providers/hyperliquid/mappers/index.ts +0 -11
  302. package/src/providers/hyperliquid/mappers/order.ts +0 -169
  303. package/src/providers/hyperliquid/mappers/position.ts +0 -33
  304. package/src/providers/hyperliquid/mappers/shared.ts +0 -0
  305. package/src/providers/hyperliquid/types.ts +0 -379
  306. package/src/providers/lighter/apiTypes.ts +0 -87
  307. package/src/providers/lighter/index.ts +0 -3
  308. package/src/providers/lighter/mappers/fill.ts +0 -57
  309. package/src/providers/lighter/mappers/index.ts +0 -8
  310. package/src/providers/lighter/mappers/order.ts +0 -184
  311. package/src/providers/lighter/mappers/position.ts +0 -46
  312. package/src/providers/lighter/types.ts +0 -111
  313. /package/{src/_cjs → dist/cjs}/account.js +0 -0
  314. /package/{src/_cjs → dist/cjs}/action.js +0 -0
  315. /package/{src/_cjs → dist/cjs}/asset.js +0 -0
  316. /package/{src/_types → dist/cjs}/errors.d.ts +0 -0
  317. /package/{src/_cjs → dist/cjs}/errors.js +0 -0
  318. /package/{src/_cjs → dist/cjs}/package.json +0 -0
  319. /package/{src/_cjs → dist/cjs}/providers.js +0 -0
  320. /package/{src/_cjs → dist/cjs}/subscriptions.js +0 -0
  321. /package/{src/_cjs → dist/cjs}/typedData.js +0 -0
  322. /package/{src/_esm → dist/esm}/account.js +0 -0
  323. /package/{src/_esm → dist/esm}/asset.js +0 -0
  324. /package/{src/_esm → dist/esm}/errors.js +0 -0
  325. /package/{src/_esm → dist/esm}/package.json +0 -0
  326. /package/{src/_esm → dist/esm}/providers.js +0 -0
  327. /package/{src/_esm → dist/esm}/subscriptions.js +0 -0
  328. /package/{src/_esm → dist/esm}/typedData.js +0 -0
package/src/action.ts CHANGED
@@ -1,42 +1,47 @@
1
- import type { MarginMode, OrderType } from './enums.js'
2
- import {
3
- type ActionType,
4
- type OrderSide,
5
- type OrderStatus,
6
- type TimeInForce,
7
- type TriggerCondition,
1
+ import type { AcceptTermsParams } from './acceptTerms.js'
2
+ import type {
3
+ ActionType,
4
+ MarginMode,
5
+ OrderSide,
6
+ OrderStatus,
7
+ OrderType,
8
+ TimeInForce,
9
+ TriggerCondition,
8
10
  } from './enums.js'
9
- import type { Address, Hex, PerpsTypedData } from './typedData.js'
10
- import type { AssetIdentity, AssetDisplay } from './asset.js'
11
-
12
- // ActionStep variants (create sign → execute). The SDK picks the variant
13
- // from the provider's `signingMethod` on `/providers`:
14
- // Eip712 — EIP-712 typed data + ECDSA signature
15
- // WasmBlob — WASM signer output ({txType, txInfo, txHash})
16
- // EvmTx — plain EVM transaction
11
+ import type { MarketDisplay, MarketRef } from './market.js'
12
+ import type { Address, Hex } from './primitives.js'
13
+ import type { PerpsTypedData } from './typedData.js'
14
+ import type { VoteParams } from './vote.js'
15
+
16
+ /** @public */
17
17
  export interface Eip712ActionStep {
18
18
  action: ActionType
19
19
  typedData: PerpsTypedData
20
20
  }
21
21
 
22
+ /** @public */
22
23
  export interface WasmBlobActionStep {
23
24
  action: ActionType
24
25
  wasmSignParams: Record<string, unknown>
25
26
  }
26
27
 
28
+ /** @public */
27
29
  export interface EvmTxActionStep {
28
30
  action: ActionType
29
31
  txParams: Record<string, unknown>
30
32
  }
31
33
 
34
+ /** @public */
32
35
  export type ActionStep = Eip712ActionStep | WasmBlobActionStep | EvmTxActionStep
33
36
 
37
+ /** @public */
34
38
  export interface Eip712SignedActionStep {
35
39
  action: ActionType
36
40
  typedData: PerpsTypedData
37
41
  signature: Hex
38
42
  }
39
43
 
44
+ /** @public */
40
45
  export interface WasmBlobSignedActionStep {
41
46
  action: ActionType
42
47
  wasmSignParams: Record<string, unknown>
@@ -47,17 +52,20 @@ export interface WasmBlobSignedActionStep {
47
52
  }
48
53
  }
49
54
 
55
+ /** @public */
50
56
  export interface EvmTxSignedActionStep {
51
57
  action: ActionType
52
58
  txParams: Record<string, unknown>
53
59
  txHash: string
54
60
  }
55
61
 
62
+ /** @public */
56
63
  export type SignedActionStep =
57
64
  | Eip712SignedActionStep
58
65
  | WasmBlobSignedActionStep
59
66
  | EvmTxSignedActionStep
60
67
 
68
+ /** @public */
61
69
  export type ActionResult =
62
70
  | {
63
71
  action: ActionType
@@ -70,15 +78,13 @@ export type ActionResult =
70
78
  error: string
71
79
  }
72
80
 
73
- // ---------------------------------------------------------------------------
74
- // Shared data types
75
- // ---------------------------------------------------------------------------
76
-
81
+ /** @public */
77
82
  export interface TriggerOrderInput {
78
83
  triggerPrice: string
79
84
  limitPrice?: string
80
85
  }
81
86
 
87
+ /** @public */
82
88
  export interface ModifyOrderInput {
83
89
  id: string
84
90
  price?: string
@@ -87,9 +93,10 @@ export interface ModifyOrderInput {
87
93
  limitPrice?: string
88
94
  }
89
95
 
96
+ /** @public */
90
97
  export interface Order {
91
98
  orderId: string
92
- asset: AssetDisplay
99
+ market: MarketDisplay
93
100
  side: OrderSide
94
101
  type: OrderType
95
102
  price?: string
@@ -103,36 +110,22 @@ export interface Order {
103
110
  triggerPrice?: string
104
111
  triggerCondition?: TriggerCondition
105
112
  status: OrderStatus
106
- /**
107
- * Human-readable English sentence describing *why* the order ended in a
108
- * terminal non-FILLED state (e.g. slippage exceeded, reduce-only would
109
- * not reduce, expiry). Populated only when the provider exposes a
110
- * specific cancellation/rejection reason; `undefined` for non-terminal
111
- * statuses, plain `filled`, and bare cancels/rejects with no actionable
112
- * detail.
113
- */
113
+ /** Human-readable reason for a terminal non-FILLED status; undefined when no actionable detail. */
114
114
  statusReason?: string
115
115
  averagePrice?: string
116
116
  createdAt: string
117
117
  updatedAt: string
118
118
  }
119
119
 
120
- // ---------------------------------------------------------------------------
121
- // Per-action param types
122
- // ---------------------------------------------------------------------------
123
-
120
+ /** @public */
124
121
  export interface PlaceOrderParams {
125
- asset: AssetIdentity
122
+ market: MarketRef
126
123
  side: OrderSide
127
124
  type?: OrderType
128
125
  size: string
129
126
  price?: string
130
127
  leverage?: number
131
- /**
132
- * Margin mode to use for the position. When omitted, the backend falls back
133
- * to the provider's default (currently CROSS for both Hyperliquid and
134
- * Lighter). Callers should set this explicitly when they need ISOLATED.
135
- */
128
+ /** Omitted falls back to the provider's default (currently CROSS). */
136
129
  marginMode?: MarginMode
137
130
  reduceOnly?: boolean
138
131
  timeInForce?: TimeInForce
@@ -141,43 +134,46 @@ export interface PlaceOrderParams {
141
134
  stopLoss?: TriggerOrderInput
142
135
  }
143
136
 
137
+ /** @public */
144
138
  export interface PlaceTriggerOrderParams {
145
- asset: AssetIdentity
139
+ market: MarketRef
146
140
  side: OrderSide
147
141
  takeProfit?: TriggerOrderInput
148
142
  stopLoss?: TriggerOrderInput
149
143
  }
150
144
 
145
+ /** @public */
151
146
  export interface CancelOrderParams {
152
147
  ids: string[]
153
148
  }
154
149
 
150
+ /** @public */
155
151
  export interface ModifyOrderParams {
156
152
  modifications: ModifyOrderInput[]
157
153
  }
158
154
 
155
+ /** @public */
159
156
  export interface UpdateLeverageParams {
160
- asset: AssetIdentity
157
+ market: MarketRef
161
158
  leverage: number
162
- /**
163
- * Margin mode to use for the position. When omitted, the backend falls back
164
- * to the provider's default (currently CROSS for both Hyperliquid and
165
- * Lighter). Callers should set this explicitly when they need ISOLATED.
166
- */
159
+ /** Omitted falls back to the provider's default (currently CROSS). */
167
160
  marginMode?: MarginMode
168
161
  }
169
162
 
163
+ /** @public */
170
164
  export interface UpdatePositionMarginParams {
171
- asset: AssetIdentity
165
+ market: MarketRef
172
166
  action: 'add' | 'remove'
173
167
  amount: string
174
168
  }
175
169
 
170
+ /** @public */
176
171
  export interface WithdrawalParams {
177
172
  destination: Address
178
173
  amount: string
179
174
  }
180
175
 
176
+ /** @public */
181
177
  export interface DepositParams {
182
178
  /** Amount of the token to deposit (human-readable, e.g. "100.5"). */
183
179
  amount: string
@@ -187,35 +183,23 @@ export interface DepositParams {
187
183
  chainId: number
188
184
  }
189
185
 
186
+ /** @public */
190
187
  export interface ApproveAgentParams {
191
188
  agentAddress: string
192
189
  agentTtlMs?: number
193
190
  }
194
191
 
195
- /**
196
- * Params for `ActionType.ACCOUNT_MODE` — switch the account's operating
197
- * mode (e.g. HL abstraction variant, Lighter UTA / Simple). The string
198
- * is opaque per-provider; the authoritative enumeration of valid values
199
- * lives on the descriptor's `Param.values` array (see
200
- * `ProviderActionDescriptor` in `providers.ts`). The SDK and backend are
201
- * responsible for validating `mode` against that array — `@lifi/perps-types`
202
- * intentionally does not encode the per-provider value list here, so a
203
- * provider can add a new mode without a types release.
204
- */
192
+ /** @public */
205
193
  export interface AccountModeParams {
206
194
  mode: string
207
195
  }
208
196
 
209
- /**
210
- * Params for `ActionType.ACCOUNT_TYPE` — switch the account's fee/latency
211
- * tier (e.g. Lighter standard / premium). Providers without tiering omit
212
- * the action entirely; the descriptor's `Param.values` array enumerates
213
- * the valid tiers for providers that do support it.
214
- */
197
+ /** @public */
215
198
  export interface AccountTypeParams {
216
199
  tier: string
217
200
  }
218
201
 
202
+ /** @public */
219
203
  export interface SendAssetParams {
220
204
  collateral: string
221
205
  sourceDex: string
@@ -223,10 +207,7 @@ export interface SendAssetParams {
223
207
  amount: string
224
208
  }
225
209
 
226
- // ---------------------------------------------------------------------------
227
- // ActionParamsMap — compile-time type resolution for SDK
228
- // ---------------------------------------------------------------------------
229
-
210
+ /** @public */
230
211
  export interface CancelAllOrdersParams {
231
212
  /** 0=immediate (cancel GTC), 1=scheduled, 2=abort scheduled */
232
213
  timeInForce: number
@@ -234,33 +215,28 @@ export interface CancelAllOrdersParams {
234
215
  timestampMs?: number
235
216
  }
236
217
 
218
+ /** @public */
237
219
  export interface RegisterApiKeyParams {
238
220
  /** The API key slot index to register (0-255). Reusing a fixed slot overwrites the old key. */
239
221
  apiKeyIndex: number
222
+ /**
223
+ * The SDK's currently-stored Lighter public key for this slot, if any. The
224
+ * backend returns `[]` (already satisfied) only when this equals the
225
+ * on-chain pubkey at the slot; otherwise it stages a ChangePubKey blob so
226
+ * the slot can be (re-)registered. Omit when the SDK has no local key.
227
+ */
228
+ knownPublicKey?: string
240
229
  }
241
230
 
242
- /**
243
- * Params for `ActionType.APPROVE_READ_ONLY_TOKEN` — mint a long-lived
244
- * read-only token Lighter recognises for query-only access (positions,
245
- * fills, balances). The token format on the wire is
246
- * `ro:{accountIndex}:{scope}:{expiry}:{rand}`; this type carries only the
247
- * inputs needed to construct that token, not the token itself.
248
- *
249
- * `expirySeconds` is the absolute unix-seconds expiry. Lighter constrains
250
- * the lifetime to a minimum of 1 day and a maximum of 10 years from now;
251
- * the SDK and backend are responsible for enforcing those bounds.
252
- *
253
- * `scope` mirrors Lighter's documented `single | all` literal:
254
- * - `'single'` — token authorises read access to one account only.
255
- * - `'all'` — token authorises read access to every account owned by the
256
- * signer. Default for the perps stack today.
257
- */
231
+ /** @public */
258
232
  export interface ApproveReadOnlyTokenParams {
259
233
  accountIndex: number
234
+ /** Absolute unix-seconds expiry. Lighter requires lifetime between 1 day and 10 years. */
260
235
  expirySeconds: number
261
236
  scope: 'single' | 'all'
262
237
  }
263
238
 
239
+ /** @public */
264
240
  export interface ActionParamsMap {
265
241
  [ActionType.APPROVE_AGENT]: ApproveAgentParams
266
242
  [ActionType.APPROVE_BUILDER_FEE]: Record<string, never>
@@ -279,17 +255,11 @@ export interface ActionParamsMap {
279
255
  [ActionType.REGISTER_API_KEY]: RegisterApiKeyParams
280
256
  [ActionType.APPROVE_READ_ONLY_TOKEN]: ApproveReadOnlyTokenParams
281
257
  [ActionType.DEPOSIT]: DepositParams
258
+ [ActionType.META_VOTE]: VoteParams
259
+ [ActionType.META_ACCEPT_TERMS]: AcceptTermsParams
282
260
  }
283
261
 
284
- // ---------------------------------------------------------------------------
285
- // Request / Response types
286
- // ---------------------------------------------------------------------------
287
-
288
- /**
289
- * Distributed discriminated request shape: selecting an `action` literal
290
- * narrows `params` to exactly the matching entry in `ActionParamsMap`.
291
- * Mapped over `ActionType` so a new action automatically yields a new branch.
292
- */
262
+ /** @public */
293
263
  export type CreateActionRequest = {
294
264
  [K in ActionType]: {
295
265
  provider: string
@@ -300,15 +270,12 @@ export type CreateActionRequest = {
300
270
  }
301
271
  }[ActionType]
302
272
 
273
+ /** @public */
303
274
  export interface CreateActionResponse {
304
275
  actions: ActionStep[]
305
276
  }
306
277
 
307
- /**
308
- * Distributed discriminated execute-request shape: narrowing on `action`
309
- * pins the action kind to a single `ActionType`; `actions` is the
310
- * already-discriminated `SignedActionStep[]` union above.
311
- */
278
+ /** @public */
312
279
  export type ExecuteActionRequest = {
313
280
  [K in ActionType]: {
314
281
  provider: string
@@ -319,6 +286,7 @@ export type ExecuteActionRequest = {
319
286
  }
320
287
  }[ActionType]
321
288
 
289
+ /** @public */
322
290
  export interface ExecuteActionResponse {
323
291
  results: ActionResult[]
324
292
  }
package/src/asset.ts CHANGED
@@ -1,88 +1,25 @@
1
- export interface FundingInfo {
2
- rate: string
3
- nextFundingTime: number
4
- }
5
-
6
- export interface AssetIdentity {
7
- assetId: string // provider's canonical identity: "BTC", "xyz:PURR", "@142"
8
- market: string // market category from /providers.markets: "hyperliquid", "xyz", "spot"
9
- }
10
-
11
- export interface Asset extends AssetIdentity {
12
- displaySymbol: string // UI base name: "BTC", "PURR"; spot keeps full pair: "PURR/USDC"
13
- displayQuote: string | null // quote asset for perps: "USDC", "USDH"; null for spot
14
- displayName?: string // future: "Bitcoin", "Ethereum"
1
+ /**
2
+ * Underlying token/registry entry. The base entity of the perps taxonomy:
3
+ * a tradable unit referenced by markets (as base/quote legs) and held by
4
+ * accounts (as balances). NOT a market — see {@link BaseMarket}.
5
+ * @public
6
+ */
7
+ export interface Asset {
8
+ providerId: string
9
+ /**
10
+ * The asset's own provider-native id. Lighter: numeric `asset_id`, stringified.
11
+ * Hyperliquid spot: the venue token index (`spotMeta.tokens[].index`, the
12
+ * value HL carries in a balance's `token` field) identical to that token's
13
+ * spot `Market.baseAsset.id`, so a held balance resolves to its market by
14
+ * identity. NEVER the coin symbol (that is `displaySymbol`).
15
+ */
16
+ id: string
17
+ displaySymbol: string
15
18
  logoURI: string
16
- szDecimals: number
17
- maxLeverage: number
18
- onlyIsolated: boolean
19
- isMarginCollateral?: boolean
20
- funding: FundingInfo
21
- openInterest?: string
22
- volume24h?: string
23
- prevDayPrice?: string
24
- markPrice: string
25
- }
26
-
27
- export type AssetDisplay = Pick<
28
- Asset,
29
- 'assetId' | 'market' | 'displaySymbol' | 'displayQuote'
30
- >
31
-
32
- export interface AssetPrice {
33
- assetId: string
34
- price: string
19
+ displayName?: string
35
20
  }
36
21
 
22
+ /** @public */
37
23
  export interface AssetsResponse {
38
24
  assets: Asset[]
39
25
  }
40
-
41
- export interface PricesResponse {
42
- prices: AssetPrice[]
43
- }
44
-
45
- export interface Candle {
46
- t: number
47
- o: string
48
- h: string
49
- l: string
50
- c: string
51
- v: string
52
- }
53
-
54
- export interface OhlcvResponse {
55
- provider: string
56
- assetId: string
57
- interval: string
58
- candles: Candle[]
59
- }
60
-
61
- export type OhlcvInterval =
62
- | '1m'
63
- | '3m'
64
- | '5m'
65
- | '15m'
66
- | '30m'
67
- | '1h'
68
- | '2h'
69
- | '4h'
70
- | '8h'
71
- | '12h'
72
- | '1d'
73
- | '3d'
74
- | '1w'
75
- | '1M'
76
-
77
- export interface OrderbookLevel {
78
- price: string
79
- size: string
80
- }
81
-
82
- export interface OrderbookResponse {
83
- provider: string
84
- assetId: string
85
- bids: OrderbookLevel[]
86
- asks: OrderbookLevel[]
87
- timestamp: number
88
- }
package/src/enums.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /** @public */
1
2
  export enum PerpsErrorCode {
2
3
  // Base errors (2000-2009)
3
4
  DefaultError = 2000,
@@ -10,6 +11,7 @@ export enum PerpsErrorCode {
10
11
  // Auth errors (2010-2019)
11
12
  SignatureInvalid = 2010,
12
13
  AgentUnauthorized = 2011,
14
+ TermsNotAccepted = 2012,
13
15
 
14
16
  // Trading errors (2020-2039)
15
17
  ExchangeRejected = 2020,
@@ -32,11 +34,13 @@ export enum PerpsErrorCode {
32
34
  RouteNotFound = 2060,
33
35
  }
34
36
 
37
+ /** @public */
35
38
  export enum OrderSide {
36
39
  BUY = 'BUY',
37
40
  SELL = 'SELL',
38
41
  }
39
42
 
43
+ /** @public */
40
44
  export enum OrderType {
41
45
  MARKET = 'MARKET',
42
46
  LIMIT = 'LIMIT',
@@ -47,16 +51,19 @@ export enum OrderType {
47
51
  TRIGGER_ONLY = 'TRIGGER_ONLY',
48
52
  }
49
53
 
54
+ /** @public */
50
55
  export enum PositionSide {
51
56
  LONG = 'LONG',
52
57
  SHORT = 'SHORT',
53
58
  }
54
59
 
60
+ /** @public */
55
61
  export enum MarginMode {
56
62
  ISOLATED = 'ISOLATED',
57
63
  CROSS = 'CROSS',
58
64
  }
59
65
 
66
+ /** @public */
60
67
  export enum TimeInForce {
61
68
  GTC = 'GTC',
62
69
  IOC = 'IOC',
@@ -64,6 +71,7 @@ export enum TimeInForce {
64
71
  GTT = 'GTT',
65
72
  }
66
73
 
74
+ /** @public */
67
75
  export enum OrderStatus {
68
76
  PENDING = 'PENDING',
69
77
  OPEN = 'OPEN',
@@ -75,6 +83,7 @@ export enum OrderStatus {
75
83
  TRIGGERED = 'TRIGGERED',
76
84
  }
77
85
 
86
+ /** @public */
78
87
  export enum FillStatus {
79
88
  FILLED = 'FILLED',
80
89
  PARTIALLY_FILLED = 'PARTIALLY_FILLED',
@@ -82,25 +91,17 @@ export enum FillStatus {
82
91
  REJECTED = 'REJECTED',
83
92
  }
84
93
 
94
+ /** @public */
85
95
  export enum LiquidityRole {
86
96
  MAKER = 'maker',
87
97
  TAKER = 'taker',
88
98
  }
89
99
 
100
+ /** @public */
90
101
  export enum ActionType {
91
102
  APPROVE_AGENT = 'approveAgent',
92
103
  APPROVE_BUILDER_FEE = 'approveBuilderFee',
93
- /**
94
- * Generic account-level operating mode (e.g. Hyperliquid abstraction
95
- * variants, Lighter UTA / Simple). HL maps it to the appropriate
96
- * EIP-712 typed-data builder internally.
97
- */
98
104
  ACCOUNT_MODE = 'accountMode',
99
- /**
100
- * Generic account-level fee/latency tier (e.g. Lighter standard /
101
- * premium). Providers that have no tiering (Hyperliquid) omit this
102
- * action from their descriptor list.
103
- */
104
105
  ACCOUNT_TYPE = 'accountType',
105
106
  SEND_ASSET = 'sendAsset',
106
107
  WITHDRAWAL = 'withdrawal',
@@ -115,24 +116,32 @@ export enum ActionType {
115
116
  REGISTER_API_KEY = 'registerApiKey',
116
117
  APPROVE_READ_ONLY_TOKEN = 'approveReadOnlyToken',
117
118
  DEPOSIT = 'deposit',
119
+ /** Provider-independent: sent with the `META_PROVIDER` sentinel, not a real provider key. */
120
+ META_VOTE = 'metaVote',
121
+ /** Provider-independent: sent with the `META_PROVIDER` sentinel, not a real provider key. */
122
+ META_ACCEPT_TERMS = 'metaAcceptTerms',
118
123
  }
119
124
 
125
+ /** @public */
120
126
  export enum TriggerCondition {
121
127
  ABOVE = 'ABOVE',
122
128
  BELOW = 'BELOW',
123
129
  }
124
130
 
131
+ /** @public */
125
132
  export enum TriggerOrderType {
126
133
  TAKE_PROFIT = 'TAKE_PROFIT',
127
134
  STOP_LOSS = 'STOP_LOSS',
128
135
  }
129
136
 
137
+ /** @public */
130
138
  export enum TriggerOrderStatus {
131
139
  WAITING = 'WAITING',
132
140
  TRIGGERED = 'TRIGGERED',
133
141
  CANCELLED = 'CANCELLED',
134
142
  }
135
143
 
144
+ /** @public */
136
145
  export enum ActivityType {
137
146
  DEPOSIT = 'DEPOSIT',
138
147
  WITHDRAWAL = 'WITHDRAWAL',
@@ -141,6 +150,7 @@ export enum ActivityType {
141
150
  TRANSFER = 'TRANSFER',
142
151
  }
143
152
 
153
+ /** @public */
144
154
  export enum FillClassification {
145
155
  OPENED_LONG = 'Opened Long',
146
156
  OPENED_SHORT = 'Opened Short',
@@ -156,31 +166,38 @@ export enum FillClassification {
156
166
  SPOT_SELL = 'Spot Sell',
157
167
  }
158
168
 
169
+ /** @public */
159
170
  export enum LiquidationClassification {
160
171
  LIQUIDATED = 'Liquidated',
161
172
  }
162
173
 
174
+ /** @public */
163
175
  export enum FundingClassification {
164
176
  FUNDING = 'Funding',
165
177
  }
166
178
 
179
+ /** @public */
167
180
  export enum TransferClassification {
168
181
  DEPOSIT = 'Deposit',
169
182
  WITHDRAWAL = 'Withdrawal',
183
+ TRANSFER = 'Transfer',
170
184
  }
171
185
 
186
+ /** @public */
172
187
  export type ActivityClassification =
173
188
  | FillClassification
174
189
  | LiquidationClassification
175
190
  | FundingClassification
176
191
  | TransferClassification
177
192
 
193
+ /** @public */
178
194
  export enum PerpsSigner {
179
195
  USER = 'USER',
180
196
  AGENT = 'AGENT',
181
197
  API_KEY = 'API_KEY',
182
198
  }
183
199
 
200
+ /** @public */
184
201
  export enum SigningMethod {
185
202
  EIP712 = 'eip712',
186
203
  WASM_BLOB = 'wasmBlob',
package/src/errors.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { PerpsErrorCode } from './enums.js'
2
2
 
3
+ /** @public */
3
4
  export interface PerpsErrorBody {
4
5
  code: PerpsErrorCode
5
6
  tool?: string
package/src/index.ts CHANGED
@@ -1,8 +1,23 @@
1
- export * from './typedData.js'
2
- export * from './enums.js'
3
- export * from './providers.js'
4
- export * from './asset.js'
5
- export * from './action.js'
1
+ /**
2
+ * `@lifi/perps-types` — shared cross-provider type surface for the perps SDK:
3
+ * account/order/market shapes, action params, enums, error codes, provider
4
+ * descriptors, subscriptions, and EIP-712 typed-data structures.
5
+ *
6
+ * @packageDocumentation
7
+ * @public
8
+ */
9
+
10
+ export * from './acceptTerms.js'
6
11
  export * from './account.js'
12
+ export * from './action.js'
13
+ export * from './asset.js'
14
+ export * from './enums.js'
7
15
  export * from './errors.js'
16
+ export * from './market.js'
17
+ export * from './meta.js'
18
+ export * from './primitives.js'
19
+ export * from './providers.js'
20
+ export * from './quote.js'
8
21
  export * from './subscriptions.js'
22
+ export * from './typedData.js'
23
+ export * from './vote.js'