@lifi/perps-types 0.2.0-alpha.0 → 1.0.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 (328) hide show
  1. package/README.md +6 -30
  2. package/dist/cjs/acceptTerms.d.ts +20 -0
  3. package/dist/cjs/acceptTerms.d.ts.map +1 -0
  4. package/dist/cjs/acceptTerms.js +10 -0
  5. package/dist/cjs/acceptTerms.js.map +1 -0
  6. package/dist/cjs/account.d.ts +191 -0
  7. package/dist/cjs/account.d.ts.map +1 -0
  8. package/{src/_esm → dist/cjs}/account.js.map +1 -1
  9. package/dist/cjs/action.d.ts +200 -0
  10. package/dist/cjs/action.d.ts.map +1 -0
  11. package/dist/cjs/action.js.map +1 -0
  12. package/dist/cjs/asset.d.ts +11 -0
  13. package/dist/cjs/asset.d.ts.map +1 -0
  14. package/dist/cjs/asset.js.map +1 -0
  15. package/{src/_types → dist/cjs}/enums.d.ts +6 -12
  16. package/dist/cjs/enums.d.ts.map +1 -0
  17. package/{src/_cjs → dist/cjs}/enums.js +4 -0
  18. package/dist/cjs/enums.js.map +1 -0
  19. package/dist/cjs/errors.d.ts.map +1 -0
  20. package/dist/cjs/errors.js.map +1 -0
  21. package/{src/_types → dist/cjs}/index.d.ts +11 -5
  22. package/dist/cjs/index.d.ts.map +1 -0
  23. package/{src/_cjs → dist/cjs}/index.js +11 -5
  24. package/dist/cjs/index.js.map +1 -0
  25. package/{src/_types/asset.d.ts → dist/cjs/market.d.ts} +33 -25
  26. package/dist/cjs/market.d.ts.map +1 -0
  27. package/dist/cjs/market.js +3 -0
  28. package/dist/cjs/market.js.map +1 -0
  29. package/dist/cjs/meta.d.ts +17 -0
  30. package/dist/cjs/meta.d.ts.map +1 -0
  31. package/dist/cjs/meta.js +3 -0
  32. package/dist/cjs/meta.js.map +1 -0
  33. package/dist/cjs/primitives.d.ts +3 -0
  34. package/dist/cjs/primitives.d.ts.map +1 -0
  35. package/dist/cjs/primitives.js +3 -0
  36. package/dist/cjs/primitives.js.map +1 -0
  37. package/dist/cjs/providers.d.ts +58 -0
  38. package/dist/cjs/providers.d.ts.map +1 -0
  39. package/{src/_cjs → dist/cjs}/providers.js.map +1 -1
  40. package/dist/cjs/quote.d.ts +23 -0
  41. package/dist/cjs/quote.d.ts.map +1 -0
  42. package/dist/cjs/quote.js +3 -0
  43. package/dist/cjs/quote.js.map +1 -0
  44. package/{src/_types → dist/cjs}/subscriptions.d.ts +14 -13
  45. package/dist/cjs/subscriptions.d.ts.map +1 -0
  46. package/{src/_cjs → dist/cjs}/subscriptions.js.map +1 -1
  47. package/dist/cjs/typedData.d.ts +23 -0
  48. package/dist/cjs/typedData.d.ts.map +1 -0
  49. package/{src/_cjs → dist/cjs}/typedData.js.map +1 -1
  50. package/dist/cjs/vote.d.ts +27 -0
  51. package/dist/cjs/vote.d.ts.map +1 -0
  52. package/dist/cjs/vote.js +12 -0
  53. package/dist/cjs/vote.js.map +1 -0
  54. package/dist/esm/acceptTerms.d.ts +45 -0
  55. package/dist/esm/acceptTerms.d.ts.map +1 -0
  56. package/dist/esm/acceptTerms.js +12 -0
  57. package/dist/esm/acceptTerms.js.map +1 -0
  58. package/dist/esm/account.d.ts +229 -0
  59. package/dist/esm/account.d.ts.map +1 -0
  60. package/{src/_cjs → dist/esm}/account.js.map +1 -1
  61. package/{src/_types → dist/esm}/action.d.ts +56 -69
  62. package/dist/esm/action.d.ts.map +1 -0
  63. package/dist/esm/action.js +2 -0
  64. package/dist/esm/action.js.map +1 -0
  65. package/dist/esm/asset.d.ts +25 -0
  66. package/dist/esm/asset.d.ts.map +1 -0
  67. package/dist/esm/asset.js.map +1 -0
  68. package/dist/esm/enums.d.ts +171 -0
  69. package/dist/esm/enums.d.ts.map +1 -0
  70. package/{src/_esm → dist/esm}/enums.js +26 -10
  71. package/dist/esm/enums.js.map +1 -0
  72. package/dist/esm/errors.d.ts +8 -0
  73. package/dist/esm/errors.d.ts.map +1 -0
  74. package/dist/esm/errors.js.map +1 -0
  75. package/dist/esm/index.d.ts +23 -0
  76. package/dist/esm/index.d.ts.map +1 -0
  77. package/dist/esm/index.js +23 -0
  78. package/dist/esm/index.js.map +1 -0
  79. package/dist/esm/market.d.ts +107 -0
  80. package/dist/esm/market.d.ts.map +1 -0
  81. package/dist/esm/market.js +2 -0
  82. package/dist/esm/market.js.map +1 -0
  83. package/dist/esm/meta.d.ts +37 -0
  84. package/dist/esm/meta.d.ts.map +1 -0
  85. package/dist/esm/meta.js +2 -0
  86. package/dist/esm/meta.js.map +1 -0
  87. package/dist/esm/primitives.d.ts +5 -0
  88. package/dist/esm/primitives.d.ts.map +1 -0
  89. package/dist/esm/primitives.js +2 -0
  90. package/dist/esm/primitives.js.map +1 -0
  91. package/dist/esm/providers.d.ts +116 -0
  92. package/dist/esm/providers.d.ts.map +1 -0
  93. package/{src/_esm → dist/esm}/providers.js.map +1 -1
  94. package/dist/esm/quote.d.ts +47 -0
  95. package/dist/esm/quote.d.ts.map +1 -0
  96. package/dist/esm/quote.js +2 -0
  97. package/dist/esm/quote.js.map +1 -0
  98. package/dist/esm/subscriptions.d.ts +115 -0
  99. package/dist/esm/subscriptions.d.ts.map +1 -0
  100. package/{src/_esm → dist/esm}/subscriptions.js.map +1 -1
  101. package/dist/esm/typedData.d.ts +28 -0
  102. package/dist/esm/typedData.d.ts.map +1 -0
  103. package/{src/_esm → dist/esm}/typedData.js.map +1 -1
  104. package/dist/esm/vote.d.ts +68 -0
  105. package/dist/esm/vote.d.ts.map +1 -0
  106. package/dist/esm/vote.js +20 -0
  107. package/dist/esm/vote.js.map +1 -0
  108. package/dist/types/acceptTerms.d.ts +45 -0
  109. package/dist/types/acceptTerms.d.ts.map +1 -0
  110. package/dist/types/account.d.ts +229 -0
  111. package/dist/types/account.d.ts.map +1 -0
  112. package/dist/types/action.d.ts +248 -0
  113. package/dist/types/action.d.ts.map +1 -0
  114. package/dist/types/asset.d.ts +25 -0
  115. package/dist/types/asset.d.ts.map +1 -0
  116. package/dist/types/enums.d.ts +171 -0
  117. package/dist/types/enums.d.ts.map +1 -0
  118. package/dist/types/errors.d.ts +8 -0
  119. package/dist/types/errors.d.ts.map +1 -0
  120. package/dist/types/index.d.ts +23 -0
  121. package/dist/types/index.d.ts.map +1 -0
  122. package/dist/types/market.d.ts +107 -0
  123. package/dist/types/market.d.ts.map +1 -0
  124. package/dist/types/meta.d.ts +37 -0
  125. package/dist/types/meta.d.ts.map +1 -0
  126. package/dist/types/primitives.d.ts +5 -0
  127. package/dist/types/primitives.d.ts.map +1 -0
  128. package/dist/types/providers.d.ts +116 -0
  129. package/dist/types/providers.d.ts.map +1 -0
  130. package/dist/types/quote.d.ts +47 -0
  131. package/dist/types/quote.d.ts.map +1 -0
  132. package/dist/types/subscriptions.d.ts +115 -0
  133. package/dist/types/subscriptions.d.ts.map +1 -0
  134. package/dist/types/typedData.d.ts +28 -0
  135. package/dist/types/typedData.d.ts.map +1 -0
  136. package/dist/types/vote.d.ts +68 -0
  137. package/dist/types/vote.d.ts.map +1 -0
  138. package/package.json +37 -65
  139. package/src/acceptTerms.ts +53 -0
  140. package/src/account.ts +74 -111
  141. package/src/action.ts +64 -96
  142. package/src/asset.ts +19 -82
  143. package/src/enums.ts +27 -10
  144. package/src/errors.ts +1 -0
  145. package/src/index.ts +20 -5
  146. package/src/market.ts +137 -0
  147. package/src/meta.ts +38 -0
  148. package/src/primitives.ts +5 -0
  149. package/src/providers.ts +79 -110
  150. package/src/quote.ts +49 -0
  151. package/src/subscriptions.ts +62 -18
  152. package/src/typedData.ts +20 -11
  153. package/src/vote.ts +79 -0
  154. package/providers/hyperliquid/package.json +0 -5
  155. package/providers/lighter/package.json +0 -5
  156. package/src/_cjs/action.js.map +0 -1
  157. package/src/_cjs/asset.js.map +0 -1
  158. package/src/_cjs/enums.js.map +0 -1
  159. package/src/_cjs/errors.js.map +0 -1
  160. package/src/_cjs/index.js.map +0 -1
  161. package/src/_cjs/providers/_shared/fillClassification.js +0 -37
  162. package/src/_cjs/providers/_shared/fillClassification.js.map +0 -1
  163. package/src/_cjs/providers/hyperliquid/assetId.js +0 -21
  164. package/src/_cjs/providers/hyperliquid/assetId.js.map +0 -1
  165. package/src/_cjs/providers/hyperliquid/index.js +0 -20
  166. package/src/_cjs/providers/hyperliquid/index.js.map +0 -1
  167. package/src/_cjs/providers/hyperliquid/mappers/_market.js +0 -15
  168. package/src/_cjs/providers/hyperliquid/mappers/_market.js.map +0 -1
  169. package/src/_cjs/providers/hyperliquid/mappers/activity.js +0 -128
  170. package/src/_cjs/providers/hyperliquid/mappers/activity.js.map +0 -1
  171. package/src/_cjs/providers/hyperliquid/mappers/asset.js +0 -29
  172. package/src/_cjs/providers/hyperliquid/mappers/asset.js.map +0 -1
  173. package/src/_cjs/providers/hyperliquid/mappers/fill.js +0 -36
  174. package/src/_cjs/providers/hyperliquid/mappers/fill.js.map +0 -1
  175. package/src/_cjs/providers/hyperliquid/mappers/index.js +0 -20
  176. package/src/_cjs/providers/hyperliquid/mappers/index.js.map +0 -1
  177. package/src/_cjs/providers/hyperliquid/mappers/order.js +0 -153
  178. package/src/_cjs/providers/hyperliquid/mappers/order.js.map +0 -1
  179. package/src/_cjs/providers/hyperliquid/mappers/position.js +0 -32
  180. package/src/_cjs/providers/hyperliquid/mappers/position.js.map +0 -1
  181. package/src/_cjs/providers/hyperliquid/mappers/shared.js +0 -2
  182. package/src/_cjs/providers/hyperliquid/mappers/shared.js.map +0 -1
  183. package/src/_cjs/providers/hyperliquid/types.js +0 -21
  184. package/src/_cjs/providers/hyperliquid/types.js.map +0 -1
  185. package/src/_cjs/providers/lighter/apiTypes.js +0 -3
  186. package/src/_cjs/providers/lighter/apiTypes.js.map +0 -1
  187. package/src/_cjs/providers/lighter/index.js +0 -20
  188. package/src/_cjs/providers/lighter/index.js.map +0 -1
  189. package/src/_cjs/providers/lighter/mappers/fill.js +0 -34
  190. package/src/_cjs/providers/lighter/mappers/fill.js.map +0 -1
  191. package/src/_cjs/providers/lighter/mappers/index.js +0 -13
  192. package/src/_cjs/providers/lighter/mappers/index.js.map +0 -1
  193. package/src/_cjs/providers/lighter/mappers/order.js +0 -142
  194. package/src/_cjs/providers/lighter/mappers/order.js.map +0 -1
  195. package/src/_cjs/providers/lighter/mappers/position.js +0 -35
  196. package/src/_cjs/providers/lighter/mappers/position.js.map +0 -1
  197. package/src/_cjs/providers/lighter/types.js +0 -23
  198. package/src/_cjs/providers/lighter/types.js.map +0 -1
  199. package/src/_esm/action.js +0 -2
  200. package/src/_esm/action.js.map +0 -1
  201. package/src/_esm/asset.js.map +0 -1
  202. package/src/_esm/enums.js.map +0 -1
  203. package/src/_esm/errors.js.map +0 -1
  204. package/src/_esm/index.js +0 -9
  205. package/src/_esm/index.js.map +0 -1
  206. package/src/_esm/providers/_shared/fillClassification.js +0 -43
  207. package/src/_esm/providers/_shared/fillClassification.js.map +0 -1
  208. package/src/_esm/providers/hyperliquid/assetId.js +0 -25
  209. package/src/_esm/providers/hyperliquid/assetId.js.map +0 -1
  210. package/src/_esm/providers/hyperliquid/index.js +0 -4
  211. package/src/_esm/providers/hyperliquid/index.js.map +0 -1
  212. package/src/_esm/providers/hyperliquid/mappers/_market.js +0 -22
  213. package/src/_esm/providers/hyperliquid/mappers/_market.js.map +0 -1
  214. package/src/_esm/providers/hyperliquid/mappers/activity.js +0 -138
  215. package/src/_esm/providers/hyperliquid/mappers/activity.js.map +0 -1
  216. package/src/_esm/providers/hyperliquid/mappers/asset.js +0 -25
  217. package/src/_esm/providers/hyperliquid/mappers/asset.js.map +0 -1
  218. package/src/_esm/providers/hyperliquid/mappers/fill.js +0 -32
  219. package/src/_esm/providers/hyperliquid/mappers/fill.js.map +0 -1
  220. package/src/_esm/providers/hyperliquid/mappers/index.js +0 -6
  221. package/src/_esm/providers/hyperliquid/mappers/index.js.map +0 -1
  222. package/src/_esm/providers/hyperliquid/mappers/order.js +0 -151
  223. package/src/_esm/providers/hyperliquid/mappers/order.js.map +0 -1
  224. package/src/_esm/providers/hyperliquid/mappers/position.js +0 -28
  225. package/src/_esm/providers/hyperliquid/mappers/position.js.map +0 -1
  226. package/src/_esm/providers/hyperliquid/mappers/shared.js +0 -2
  227. package/src/_esm/providers/hyperliquid/mappers/shared.js.map +0 -1
  228. package/src/_esm/providers/hyperliquid/types.js +0 -35
  229. package/src/_esm/providers/hyperliquid/types.js.map +0 -1
  230. package/src/_esm/providers/lighter/apiTypes.js +0 -5
  231. package/src/_esm/providers/lighter/apiTypes.js.map +0 -1
  232. package/src/_esm/providers/lighter/index.js +0 -4
  233. package/src/_esm/providers/lighter/index.js.map +0 -1
  234. package/src/_esm/providers/lighter/mappers/fill.js +0 -39
  235. package/src/_esm/providers/lighter/mappers/fill.js.map +0 -1
  236. package/src/_esm/providers/lighter/mappers/index.js +0 -4
  237. package/src/_esm/providers/lighter/mappers/index.js.map +0 -1
  238. package/src/_esm/providers/lighter/mappers/order.js +0 -162
  239. package/src/_esm/providers/lighter/mappers/order.js.map +0 -1
  240. package/src/_esm/providers/lighter/mappers/position.js +0 -38
  241. package/src/_esm/providers/lighter/mappers/position.js.map +0 -1
  242. package/src/_esm/providers/lighter/types.js +0 -26
  243. package/src/_esm/providers/lighter/types.js.map +0 -1
  244. package/src/_types/account.d.ts +0 -268
  245. package/src/_types/account.d.ts.map +0 -1
  246. package/src/_types/action.d.ts.map +0 -1
  247. package/src/_types/asset.d.ts.map +0 -1
  248. package/src/_types/enums.d.ts.map +0 -1
  249. package/src/_types/errors.d.ts.map +0 -1
  250. package/src/_types/index.d.ts.map +0 -1
  251. package/src/_types/providers/_shared/fillClassification.d.ts +0 -12
  252. package/src/_types/providers/_shared/fillClassification.d.ts.map +0 -1
  253. package/src/_types/providers/hyperliquid/assetId.d.ts +0 -14
  254. package/src/_types/providers/hyperliquid/assetId.d.ts.map +0 -1
  255. package/src/_types/providers/hyperliquid/index.d.ts +0 -4
  256. package/src/_types/providers/hyperliquid/index.d.ts.map +0 -1
  257. package/src/_types/providers/hyperliquid/mappers/_market.d.ts +0 -13
  258. package/src/_types/providers/hyperliquid/mappers/_market.d.ts.map +0 -1
  259. package/src/_types/providers/hyperliquid/mappers/activity.d.ts +0 -13
  260. package/src/_types/providers/hyperliquid/mappers/activity.d.ts.map +0 -1
  261. package/src/_types/providers/hyperliquid/mappers/asset.d.ts +0 -4
  262. package/src/_types/providers/hyperliquid/mappers/asset.d.ts.map +0 -1
  263. package/src/_types/providers/hyperliquid/mappers/fill.d.ts +0 -6
  264. package/src/_types/providers/hyperliquid/mappers/fill.d.ts.map +0 -1
  265. package/src/_types/providers/hyperliquid/mappers/index.d.ts +0 -6
  266. package/src/_types/providers/hyperliquid/mappers/index.d.ts.map +0 -1
  267. package/src/_types/providers/hyperliquid/mappers/order.d.ts +0 -18
  268. package/src/_types/providers/hyperliquid/mappers/order.d.ts.map +0 -1
  269. package/src/_types/providers/hyperliquid/mappers/position.d.ts +0 -4
  270. package/src/_types/providers/hyperliquid/mappers/position.d.ts.map +0 -1
  271. package/src/_types/providers/hyperliquid/mappers/shared.d.ts +0 -1
  272. package/src/_types/providers/hyperliquid/mappers/shared.d.ts.map +0 -1
  273. package/src/_types/providers/hyperliquid/types.d.ts +0 -289
  274. package/src/_types/providers/hyperliquid/types.d.ts.map +0 -1
  275. package/src/_types/providers/lighter/apiTypes.d.ts +0 -76
  276. package/src/_types/providers/lighter/apiTypes.d.ts.map +0 -1
  277. package/src/_types/providers/lighter/index.d.ts +0 -4
  278. package/src/_types/providers/lighter/index.d.ts.map +0 -1
  279. package/src/_types/providers/lighter/mappers/fill.d.ts +0 -9
  280. package/src/_types/providers/lighter/mappers/fill.d.ts.map +0 -1
  281. package/src/_types/providers/lighter/mappers/index.d.ts +0 -4
  282. package/src/_types/providers/lighter/mappers/index.d.ts.map +0 -1
  283. package/src/_types/providers/lighter/mappers/order.d.ts +0 -35
  284. package/src/_types/providers/lighter/mappers/order.d.ts.map +0 -1
  285. package/src/_types/providers/lighter/mappers/position.d.ts +0 -8
  286. package/src/_types/providers/lighter/mappers/position.d.ts.map +0 -1
  287. package/src/_types/providers/lighter/types.d.ts +0 -90
  288. package/src/_types/providers/lighter/types.d.ts.map +0 -1
  289. package/src/_types/providers.d.ts +0 -145
  290. package/src/_types/providers.d.ts.map +0 -1
  291. package/src/_types/subscriptions.d.ts.map +0 -1
  292. package/src/_types/typedData.d.ts +0 -18
  293. package/src/_types/typedData.d.ts.map +0 -1
  294. package/src/providers/_shared/fillClassification.ts +0 -50
  295. package/src/providers/hyperliquid/assetId.ts +0 -32
  296. package/src/providers/hyperliquid/index.ts +0 -3
  297. package/src/providers/hyperliquid/mappers/_market.ts +0 -21
  298. package/src/providers/hyperliquid/mappers/activity.ts +0 -169
  299. package/src/providers/hyperliquid/mappers/asset.ts +0 -33
  300. package/src/providers/hyperliquid/mappers/fill.ts +0 -41
  301. package/src/providers/hyperliquid/mappers/index.ts +0 -11
  302. package/src/providers/hyperliquid/mappers/order.ts +0 -169
  303. package/src/providers/hyperliquid/mappers/position.ts +0 -33
  304. package/src/providers/hyperliquid/mappers/shared.ts +0 -0
  305. package/src/providers/hyperliquid/types.ts +0 -379
  306. package/src/providers/lighter/apiTypes.ts +0 -87
  307. package/src/providers/lighter/index.ts +0 -3
  308. package/src/providers/lighter/mappers/fill.ts +0 -57
  309. package/src/providers/lighter/mappers/index.ts +0 -8
  310. package/src/providers/lighter/mappers/order.ts +0 -184
  311. package/src/providers/lighter/mappers/position.ts +0 -46
  312. package/src/providers/lighter/types.ts +0 -111
  313. /package/{src/_cjs → dist/cjs}/account.js +0 -0
  314. /package/{src/_cjs → dist/cjs}/action.js +0 -0
  315. /package/{src/_cjs → dist/cjs}/asset.js +0 -0
  316. /package/{src/_types → dist/cjs}/errors.d.ts +0 -0
  317. /package/{src/_cjs → dist/cjs}/errors.js +0 -0
  318. /package/{src/_cjs → dist/cjs}/package.json +0 -0
  319. /package/{src/_cjs → dist/cjs}/providers.js +0 -0
  320. /package/{src/_cjs → dist/cjs}/subscriptions.js +0 -0
  321. /package/{src/_cjs → dist/cjs}/typedData.js +0 -0
  322. /package/{src/_esm → dist/esm}/account.js +0 -0
  323. /package/{src/_esm → dist/esm}/asset.js +0 -0
  324. /package/{src/_esm → dist/esm}/errors.js +0 -0
  325. /package/{src/_esm → dist/esm}/package.json +0 -0
  326. /package/{src/_esm → dist/esm}/providers.js +0 -0
  327. /package/{src/_esm → dist/esm}/subscriptions.js +0 -0
  328. /package/{src/_esm → dist/esm}/typedData.js +0 -0
@@ -1,145 +0,0 @@
1
- import type { ActionType, PerpsSigner, SigningMethod } from './enums.js';
2
- export interface ActionDescriptor {
3
- type: ActionType;
4
- signers: PerpsSigner[];
5
- /**
6
- * How the SDK must sign this specific action. Most actions match the
7
- * provider's dominant pattern (Hyperliquid: EIP712, Lighter: WASM_BLOB),
8
- * but on-chain bridge actions like DEPOSIT are EVM_TX regardless of
9
- * provider — the SDK dispatches by this field rather than by
10
- * `Provider.signingMethod`.
11
- */
12
- signingMethod: SigningMethod;
13
- }
14
- /**
15
- * One selectable value on a `Param` whose `values` are enumerated.
16
- *
17
- * `value` is the opaque per-provider identifier the SDK passes back to the
18
- * backend in the corresponding action params (e.g. the string assigned to
19
- * `mode` for `ACCOUNT_MODE`, or `tier` for `ACCOUNT_TYPE`).
20
- * `label` is the user-facing string the widget renders.
21
- */
22
- export interface ParamOption {
23
- value: string;
24
- label: string;
25
- }
26
- /**
27
- * A single parameter the widget must collect from the user before
28
- * dispatching an action.
29
- *
30
- * `name` is the wire key the widget passes through to `execute()` — for the
31
- * existing `ACCOUNT_MODE` action that's `'mode'`, for `ACCOUNT_TYPE` it's
32
- * `'tier'`, etc. The widget builds the action's params object as
33
- * `{ [param.name]: <selected value> }` straight from the descriptor at
34
- * dispatch time; there is no per-ActionType translation layer.
35
- *
36
- * `type` describes the primitive shape of the value. Currently only
37
- * `'string'` is admitted — numeric / boolean primitives are deferred until
38
- * a real descriptor needs them.
39
- *
40
- * `values` is present iff the parameter has a fixed enumeration of
41
- * admissible values (e.g. Hyperliquid abstraction modes, Lighter account
42
- * tiers). When absent the widget renders a free-form input appropriate to
43
- * the primitive `type`.
44
- *
45
- * `default` flags the suggested choice when `values` is provided. Must be
46
- * one of the entries in `values` if specified; consumers should fall back
47
- * to "no selection" when absent and let the user pick.
48
- *
49
- * `readOnly: true` means the widget must render the control disabled —
50
- * typically used when the provider exposes the current value but does not
51
- * allow the user to change it from this surface (e.g. Lighter account
52
- * mode, which is set during onboarding and immutable thereafter).
53
- */
54
- export interface Param {
55
- name: string;
56
- type: 'string';
57
- values?: ParamOption[];
58
- default?: ParamOption;
59
- readOnly?: boolean;
60
- }
61
- /**
62
- * Self-documenting descriptor for an account-level action the user may
63
- * (setup) or must (options) interact with. Extends `ActionDescriptor`
64
- * because each descriptor resolves to exactly one action the SDK
65
- * dispatches when the user proceeds; the additional fields are the
66
- * presentation and parameter-collection metadata the widget needs to
67
- * render the action without hardcoded per-ActionType branches.
68
- *
69
- * `params` is the list of parameters the widget must collect from the
70
- * user (zero-or-more); each entry tells the widget the wire key, the
71
- * primitive type, optional enumeration of admissible values, and
72
- * optional default. See `Param` for the field-level semantics.
73
- *
74
- * Categorisation of a descriptor as "setup" vs "options" is carried by
75
- * which array on `Provider` it appears in (`Provider.setup` vs
76
- * `Provider.options`), NOT by a field on the descriptor — by design.
77
- * `ProviderSetup` and `ProviderOption` are type aliases for this same
78
- * shape with no additional fields.
79
- */
80
- export interface ProviderActionDescriptor extends ActionDescriptor {
81
- /** User-facing row title rendered in the setup / options modal. */
82
- title: string;
83
- /** User-facing description rendered in the setup / options modal. */
84
- description: string;
85
- /** Parameters the widget must collect before dispatching the action. */
86
- params: Param[];
87
- }
88
- /**
89
- * A descriptor that gates trading: the user MUST satisfy every entry on
90
- * `Provider.setup` before they can place orders with this provider. The
91
- * widget renders these in `<SetupModal />`, which auto-pops mid-session
92
- * whenever setup becomes unsatisfied (e.g. Hyperliquid agent expiry).
93
- *
94
- * Type alias for `ProviderActionDescriptor` — no additional fields. The
95
- * setup-vs-options distinction is the array, not a flag on the item.
96
- */
97
- export type ProviderSetup = ProviderActionDescriptor;
98
- /**
99
- * A post-setup descriptor the user MAY interact with to tune provider
100
- * behaviour (e.g. switching Hyperliquid abstraction modes, switching
101
- * Lighter account tier). The widget renders these in `<OptionsModal />`
102
- * behind a cog icon; they never gate trading.
103
- *
104
- * Type alias for `ProviderActionDescriptor` — no additional fields. The
105
- * setup-vs-options distinction is the array, not a flag on the item.
106
- */
107
- export type ProviderOption = ProviderActionDescriptor;
108
- export interface ProviderMarketInfo {
109
- id: string;
110
- quoteAsset: string | null;
111
- }
112
- export interface Provider {
113
- key: string;
114
- name: string;
115
- logoURI: string;
116
- signingMethod: SigningMethod;
117
- /** When false, the provider is announced but not yet selectable in clients. */
118
- active: boolean;
119
- /**
120
- * Mandatory account-setup descriptors. The user MUST satisfy every
121
- * entry before trading. The widget renders these in `<SetupModal />`,
122
- * which auto-pops whenever setup becomes unsatisfied. An empty array
123
- * is valid and indicates the provider has no setup gates.
124
- */
125
- setup: ProviderSetup[];
126
- /**
127
- * Optional post-setup descriptors the user may tune (account mode,
128
- * fee tier, etc.). Rendered in `<OptionsModal />` behind the cog icon;
129
- * never gates trading. An empty array is valid.
130
- */
131
- options: ProviderOption[];
132
- actions: ActionDescriptor[];
133
- markets: ProviderMarketInfo[];
134
- wsUrl?: string;
135
- /**
136
- * Minimum deposit amount in USD that the provider's deposit path will
137
- * accept. Absent means no minimum is advertised — clients should not
138
- * gate the deposit UX on a value they don't have.
139
- */
140
- minDepositUsd?: number;
141
- }
142
- export interface ProvidersResponse {
143
- providers: Provider[];
144
- }
145
- //# sourceMappingURL=providers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB;;;;;;OAMG;IACH,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAA;AAEpD;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,wBAAwB,CAAA;AAErD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,aAAa,CAAA;IAC5B,+EAA+E;IAC/E,MAAM,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB;;;;OAIG;IACH,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIxC,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACnE,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,WAAW,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,QAAQ,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,aAAa,CAAA;CACxB,CAAA;AACD,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,WAAW,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,wBAAwB,GACxB,iBAAiB,GACjB,qBAAqB,GACrB,wBAAwB,CAAA;AAI5B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAA;AAC7E,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAC9E,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,KAAK,EAAE,CAAA;CAAE,CAAA;AAC1E,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAA;AAC3D,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAA;AACvE,MAAM,MAAM,iBAAiB,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,cAAc,GACd,WAAW,GACX,iBAAiB,GACjB,UAAU,GACV,cAAc,GACd,iBAAiB,CAAA"}
@@ -1,18 +0,0 @@
1
- import type { Address, Hex, TypedDataDomain, TypedDataParameter } from 'viem';
2
- import type { HlPrimaryType } from './providers/hyperliquid/types.js';
3
- /**
4
- * All known EIP-712 primaryType values across supported providers.
5
- * Extend this union when adding a new EIP-712 provider.
6
- */
7
- export type PerpsPrimaryType = HlPrimaryType;
8
- export type PerpsTypedData = {
9
- domain: TypedDataDomain;
10
- types: Record<string, readonly TypedDataParameter[]>;
11
- primaryType: PerpsPrimaryType;
12
- message: Record<string, any>;
13
- };
14
- export type PerpsSignedTypedData = PerpsTypedData & {
15
- signature: Hex;
16
- };
17
- export type { Address, Hex, TypedDataDomain, TypedDataParameter };
18
- //# sourceMappingURL=typedData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAErE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAAA;IACpD,WAAW,EAAE,gBAAgB,CAAA;IAE7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,SAAS,EAAE,GAAG,CAAA;CACf,CAAA;AAGD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1,50 +0,0 @@
1
- import { FillClassification } from '../../enums.js'
2
-
3
- /**
4
- * Classify a perpetual fill into the Open/Close/Increase/Reduce/Switch
5
- * taxonomy from `FillClassification`.
6
- *
7
- * @param startPosition Signed position held BEFORE this fill (`> 0` long,
8
- * `< 0` short, `0` flat).
9
- * @param side Hyperliquid-style: `'B'` for buy, anything else for sell.
10
- * @param sz Unsigned fill size, parsed with `parseFloat`.
11
- */
12
- export function classifyFillFromPosition(
13
- startPosition: string,
14
- side: string,
15
- sz: string
16
- ): FillClassification {
17
- const start = parseFloat(startPosition)
18
- const delta = side === 'B' ? parseFloat(sz) : -parseFloat(sz)
19
- const end = start + delta
20
-
21
- if (start === 0) {
22
- return end > 0
23
- ? FillClassification.OPENED_LONG
24
- : FillClassification.OPENED_SHORT
25
- }
26
-
27
- if (start > 0) {
28
- if (end === 0) {
29
- return FillClassification.CLOSED_LONG
30
- }
31
- if (end < 0) {
32
- return FillClassification.SWITCHED_SHORT
33
- }
34
- if (end > start) {
35
- return FillClassification.INCREASED_LONG
36
- }
37
- return FillClassification.REDUCED_LONG
38
- }
39
-
40
- if (end === 0) {
41
- return FillClassification.CLOSED_SHORT
42
- }
43
- if (end > 0) {
44
- return FillClassification.SWITCHED_LONG
45
- }
46
- if (end < start) {
47
- return FillClassification.INCREASED_SHORT
48
- }
49
- return FillClassification.REDUCED_SHORT
50
- }
@@ -1,32 +0,0 @@
1
- /** Spot asset IDs use the @pairIndex format (e.g. "@230"). */
2
- export const assetIsSpot = (assetId: string): boolean => assetId.startsWith('@')
3
-
4
- /**
5
- * Calculate the asset ID for a given provider index and asset index.
6
- *
7
- * Main provider (provider = ''): assetId = indexInProvider
8
- * HIP-3 providers (provider = 'xyz'): assetId = 100_000 + perpDexIndex * 10_000 + indexInProvider
9
- */
10
- export const calculateAssetId = (
11
- providerIndex: number,
12
- indexInProvider: number
13
- ): number => {
14
- if (providerIndex === 0) {
15
- return indexInProvider
16
- }
17
- return 100_000 + providerIndex * 10_000 + indexInProvider
18
- }
19
-
20
- /**
21
- * Get the provider index from the given list of provider names.
22
- */
23
- export const getProviderIndex = (
24
- provider: string,
25
- providerNames: string[]
26
- ): number => {
27
- const index = providerNames.indexOf(provider)
28
- if (index === -1) {
29
- throw new Error(`Unknown sub-provider: ${provider}`)
30
- }
31
- return index
32
- }
@@ -1,3 +0,0 @@
1
- export * from './types.js'
2
- export * from './assetId.js'
3
- export * from './mappers/index.js'
@@ -1,21 +0,0 @@
1
- /**
2
- * Derive the `AssetIdentity.market` value (a `/providers.markets[].id`) from
3
- * a Hyperliquid `assetId`:
4
- * - `"BTC"` → main USDC perp dex → `"hyperliquid"`
5
- * - `"xyz:PURR"` → HIP-3 sub-dex → `"xyz"`
6
- * - `"@142"` → spot pair → `"spot"`
7
- *
8
- * Must stay in lockstep with `lifi-perps-backend`'s `toProviderMarketId` /
9
- * `buildAssetMarketLookup` — they define the same `/providers.markets[].id`
10
- * taxonomy on the wire.
11
- */
12
- export const deriveMarket = (assetId: string): string => {
13
- if (assetId.startsWith('@')) {
14
- return 'spot'
15
- }
16
- const colon = assetId.indexOf(':')
17
- if (colon > 0) {
18
- return assetId.slice(0, colon)
19
- }
20
- return 'hyperliquid'
21
- }
@@ -1,169 +0,0 @@
1
- import { ActivityType } from '../../../enums.js'
2
- import type {
3
- ActivityItem,
4
- DepositActivity,
5
- WithdrawalActivity,
6
- LiquidationActivity,
7
- FundingActivity,
8
- TransferActivity,
9
- } from '../../../account.js'
10
- import { isSendAssetDelta, isSpotTransferDelta } from '../types.js'
11
- import type { HlLedgerUpdate, HlFundingUpdate } from '../types.js'
12
- import { deriveMarket } from './_market.js'
13
-
14
- /**
15
- * Map a Hyperliquid non-funding ledger entry to an ActivityItem.
16
- *
17
- * Direction for `spotTransfer` and `sendAsset` is derived from
18
- * `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
19
- * Returns null for unsupported delta types and for same-user `sendAsset`
20
- * dex moves (where `user === destination === queriedAddress`).
21
- */
22
- export const mapLedgerEntry = (
23
- entry: HlLedgerUpdate,
24
- providerKey: string,
25
- queriedAddress: string
26
- ): ActivityItem | null => {
27
- const { delta } = entry
28
- const base = {
29
- id: entry.hash,
30
- provider: providerKey,
31
- timestamp: new Date(entry.time).toISOString(),
32
- }
33
-
34
- // Handled before the switch: the catch-all arm of `HlLedgerDelta` is a
35
- // structural supertype of the concrete delta, so a `switch (delta.type)`
36
- // cannot narrow off the discriminant. The user-defined type guard does.
37
- if (isSpotTransferDelta(delta)) {
38
- const queried = queriedAddress.toLowerCase()
39
- const sender = delta.user.toLowerCase()
40
- const recipient = delta.destination.toLowerCase()
41
- const direction: 'IN' | 'OUT' = queried === sender ? 'OUT' : 'IN'
42
- const counterpartyAddress = direction === 'OUT' ? recipient : sender
43
- const meta: Record<string, unknown> = {
44
- transferType: 'spotTransfer',
45
- }
46
- if (delta.usdcValue !== undefined) {
47
- meta.usdcValue = delta.usdcValue
48
- }
49
- if (delta.fee !== undefined) {
50
- meta.fee = delta.fee
51
- }
52
- if (delta.nativeTokenFee !== undefined) {
53
- meta.nativeTokenFee = delta.nativeTokenFee
54
- }
55
- if (delta.nonce !== undefined) {
56
- meta.nonce = delta.nonce
57
- }
58
- return {
59
- ...base,
60
- type: ActivityType.TRANSFER,
61
- direction,
62
- counterpartyAddress,
63
- asset: delta.token,
64
- amount: delta.amount,
65
- meta,
66
- } satisfies TransferActivity
67
- }
68
-
69
- // `sendAsset` (wire `type === 'send'`) covers cross-user transfers
70
- // (modelled as TRANSFER) and same-user dex moves (returned as null —
71
- // overloading TRANSFER for those would lie about direction). Pre-switch
72
- // narrowing for the same reason as spotTransfer.
73
- if (isSendAssetDelta(delta)) {
74
- const queried = queriedAddress.toLowerCase()
75
- const sender = delta.user.toLowerCase()
76
- const recipient = delta.destination.toLowerCase()
77
-
78
- if (sender === recipient && sender === queried) {
79
- return null
80
- }
81
-
82
- const direction: 'IN' | 'OUT' = queried === sender ? 'OUT' : 'IN'
83
- const counterpartyAddress = direction === 'OUT' ? recipient : sender
84
- const meta: Record<string, unknown> = {
85
- transferType: 'sendAsset',
86
- sourceDex: delta.sourceDex,
87
- destinationDex: delta.destinationDex,
88
- usdcValue: delta.usdcValue,
89
- fee: delta.fee,
90
- nativeTokenFee: delta.nativeTokenFee,
91
- feeToken: delta.feeToken,
92
- nonce: delta.nonce,
93
- }
94
- return {
95
- ...base,
96
- type: ActivityType.TRANSFER,
97
- direction,
98
- counterpartyAddress,
99
- asset: delta.token,
100
- amount: delta.amount,
101
- meta,
102
- } satisfies TransferActivity
103
- }
104
-
105
- switch (delta.type) {
106
- case 'deposit':
107
- return {
108
- ...base,
109
- type: ActivityType.DEPOSIT,
110
- amount: delta.usdc ?? '0',
111
- } satisfies DepositActivity
112
-
113
- case 'withdraw':
114
- return {
115
- ...base,
116
- type: ActivityType.WITHDRAWAL,
117
- amount: delta.usdc ?? '0',
118
- fee: (delta as { fee?: string }).fee ?? '0',
119
- } satisfies WithdrawalActivity
120
-
121
- case 'liquidation': {
122
- const d = delta as unknown as {
123
- type: string
124
- liquidatedNtlPos: string
125
- accountValue: string
126
- leverageType: string
127
- liquidatedPositions?: { coin: string; szi: string }[]
128
- }
129
- return {
130
- ...base,
131
- type: ActivityType.LIQUIDATION,
132
- liquidatedNotionalPosition: d.liquidatedNtlPos,
133
- accountValue: d.accountValue,
134
- leverageType: d.leverageType,
135
- liquidatedPositions: (d.liquidatedPositions ?? []).map((p) => ({
136
- asset: {
137
- assetId: p.coin,
138
- market: deriveMarket(p.coin),
139
- displaySymbol: p.coin,
140
- displayQuote: null,
141
- },
142
- size: p.szi,
143
- })),
144
- } satisfies LiquidationActivity
145
- }
146
-
147
- default:
148
- return null
149
- }
150
- }
151
-
152
- export const mapFundingActivity = (
153
- entry: HlFundingUpdate,
154
- providerKey: string
155
- ): FundingActivity => ({
156
- id: entry.hash,
157
- provider: providerKey,
158
- timestamp: new Date(entry.time).toISOString(),
159
- type: ActivityType.FUNDING,
160
- asset: {
161
- assetId: entry.delta.coin,
162
- market: deriveMarket(entry.delta.coin),
163
- displaySymbol: entry.delta.coin,
164
- displayQuote: null,
165
- },
166
- amount: entry.delta.usdc,
167
- positionSize: entry.delta.szi,
168
- fundingRate: entry.delta.fundingRate,
169
- })
@@ -1,33 +0,0 @@
1
- import type { Asset } from '../../../asset.js'
2
- import type { HlAssetCtx, HlUniverseItem } from '../types.js'
3
- import { deriveMarket } from './_market.js'
4
-
5
- const NEXT_FUNDING_INTERVAL_MS = 60 * 60 * 1000 // 1 hour
6
-
7
- export const mapAsset = (
8
- universe: HlUniverseItem,
9
- assetCtx: HlAssetCtx
10
- ): Asset => {
11
- const now = Date.now()
12
- const nextFundingTime =
13
- Math.ceil(now / NEXT_FUNDING_INTERVAL_MS) * NEXT_FUNDING_INTERVAL_MS
14
-
15
- return {
16
- assetId: universe.name,
17
- market: deriveMarket(universe.name),
18
- displaySymbol: universe.name,
19
- displayQuote: null,
20
- logoURI: `https://app.hyperliquid.xyz/coins/${universe.name}.svg`,
21
- szDecimals: universe.szDecimals,
22
- maxLeverage: universe.maxLeverage,
23
- onlyIsolated: universe.onlyIsolated === true,
24
- funding: {
25
- rate: assetCtx.funding,
26
- nextFundingTime,
27
- },
28
- openInterest: assetCtx.openInterest,
29
- volume24h: assetCtx.dayNtlVlm,
30
- prevDayPrice: assetCtx.prevDayPx,
31
- markPrice: assetCtx.markPx,
32
- }
33
- }
@@ -1,41 +0,0 @@
1
- import {
2
- FillClassification,
3
- FillStatus,
4
- LiquidityRole,
5
- OrderSide,
6
- OrderType,
7
- } from '../../../enums.js'
8
- import type { Fill } from '../../../account.js'
9
- import type { HlUserFill } from '../types.js'
10
- import { assetIsSpot } from '../assetId.js'
11
- import { classifyFillFromPosition } from '../../_shared/fillClassification.js'
12
- import { deriveMarket } from './_market.js'
13
-
14
- export { classifyFillFromPosition }
15
-
16
- export const mapFill = (fill: HlUserFill): Fill => ({
17
- id: String(fill.tid),
18
- orderId: String(fill.oid),
19
- asset: {
20
- assetId: fill.coin,
21
- market: deriveMarket(fill.coin),
22
- displaySymbol: fill.coin,
23
- displayQuote: null,
24
- },
25
- side: fill.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
26
- type: fill.dir?.includes('Limit') ? OrderType.LIMIT : OrderType.MARKET,
27
- size: fill.sz,
28
- price: fill.px,
29
- status: FillStatus.FILLED,
30
- liquidity: fill.crossed ? LiquidityRole.TAKER : LiquidityRole.MAKER,
31
- filledSize: fill.sz,
32
- fee: fill.fee,
33
- realizedPnl: fill.closedPnl === '0' ? null : fill.closedPnl,
34
- startPosition: fill.startPosition,
35
- classification: assetIsSpot(fill.coin)
36
- ? fill.side === 'B'
37
- ? FillClassification.SPOT_BUY
38
- : FillClassification.SPOT_SELL
39
- : classifyFillFromPosition(fill.startPosition, fill.side, fill.sz),
40
- createdAt: new Date(fill.time).toISOString(),
41
- })
@@ -1,11 +0,0 @@
1
- export { mapAsset } from './asset.js'
2
- export {
3
- isTriggerType,
4
- mapOpenOrder,
5
- mapOrder,
6
- mapOrderType,
7
- mapTriggerOrder,
8
- } from './order.js'
9
- export { mapPosition } from './position.js'
10
- export { classifyFillFromPosition, mapFill } from './fill.js'
11
- export { mapLedgerEntry, mapFundingActivity } from './activity.js'