@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
@@ -0,0 +1,116 @@
1
+ import type { Asset } from './asset.js';
2
+ import type { ActionType, PerpsSigner, SigningMethod } from './enums.js';
3
+ import type { OhlcvInterval } from './market.js';
4
+ /** @public */
5
+ export interface ParamOption {
6
+ value: string;
7
+ label: string;
8
+ }
9
+ /** @public */
10
+ export interface Param {
11
+ /** Wire key for the action params object: `{ [param.name]: value }`. */
12
+ name: string;
13
+ type: 'string';
14
+ /** Present iff the parameter has a fixed enumeration of admissible values. */
15
+ values?: ParamOption[];
16
+ default?: ParamOption;
17
+ readOnly?: boolean;
18
+ }
19
+ /**
20
+ * A single provider action. The same shape backs `Provider.setup`,
21
+ * `Provider.options`, and `Provider.actions` — categorisation lives in which
22
+ * array it sits in, not in the type. The core three fields are always present;
23
+ * the rest are presentation/ordering hints provided per-action in the
24
+ * provider's hardcoded metadata.
25
+ * @public
26
+ */
27
+ export interface ProviderAction {
28
+ type: ActionType;
29
+ signers: PerpsSigner[];
30
+ signingMethod: SigningMethod;
31
+ /**
32
+ * Human label. Drives the card heading in the setup/options modals, and may
33
+ * also front an in-flight trading action ("{title} is working…").
34
+ */
35
+ title?: string;
36
+ description?: string;
37
+ /** UI form fields the widget renders to collect input for this action. */
38
+ params?: Param[];
39
+ /**
40
+ * Ascending order in which the user satisfies setup steps. Cloud-init
41
+ * convention: 10, 20, 30, … with 99 reserved for "always last"; the gaps
42
+ * leave room to insert steps later without renumbering. Lower runs first;
43
+ * a step may depend on every lower-sequenced step already being satisfied.
44
+ */
45
+ sequence?: number;
46
+ }
47
+ /**
48
+ * Provider-attached advisory shown against a market. Provider-agnostic: the
49
+ * producer decides when to emit one (e.g. an HL HIP-3 sub-dex risk warning).
50
+ * @public
51
+ */
52
+ export interface TradeNotice {
53
+ /** Maps to the widget's panel styling: `warn` → warning, `info` → info. */
54
+ level: 'info' | 'warn';
55
+ /** Plaintext; any URL is rendered as text, not a hyperlink. */
56
+ message: string;
57
+ }
58
+ /** @public */
59
+ export interface ProviderCategory {
60
+ id: string;
61
+ logoURI?: string;
62
+ /** `null` for the "spot" category — no single fixed quote. */
63
+ quoteAsset: Asset | null;
64
+ tradeNotice?: TradeNotice;
65
+ }
66
+ /** @public */
67
+ export interface Provider {
68
+ key: string;
69
+ name: string;
70
+ logoURI: string;
71
+ signingMethod: SigningMethod;
72
+ /** When false, the provider is announced but not yet selectable in clients. */
73
+ active: boolean;
74
+ setup: ProviderAction[];
75
+ options: ProviderAction[];
76
+ actions: ProviderAction[];
77
+ categories: ProviderCategory[];
78
+ wsUrl?: string;
79
+ /** Absent means no minimum advertised. */
80
+ minDepositUsd?: number;
81
+ /**
82
+ * Minimum order notional value in USD. Feeds the SDK's `validateMargin`
83
+ * `minMarginUsd` parameter. Absent means no minimum advertised.
84
+ */
85
+ minOrderValueUsd?: number;
86
+ /**
87
+ * Minimum order notional value in USD for reduce-only orders, when the
88
+ * provider applies a lower floor than `minOrderValueUsd`. Absent means
89
+ * reduce-only orders use the same floor as `minOrderValueUsd`.
90
+ */
91
+ minReduceOrderValueUsd?: number;
92
+ /** Minimum withdrawal notional in USD. Absent means no minimum advertised. */
93
+ minWithdrawalUsd?: number;
94
+ /** Flat deposit fee in USD the provider charges. Absent means no fee advertised. */
95
+ depositFeeUsd?: number;
96
+ /** Flat withdrawal fee in USD the provider charges. Absent means no fee advertised. */
97
+ withdrawalFeeUsd?: number;
98
+ /**
99
+ * Aggregate up-votes for this provider. Populated only for inactive
100
+ * providers (those gathering demand before launch); absent once `active`.
101
+ */
102
+ upVotes?: number;
103
+ /** Aggregate down-votes. Populated only for inactive providers; see {@link upVotes}. */
104
+ downVotes?: number;
105
+ /**
106
+ * Candle intervals this provider supports for OHLCV/chart requests, in
107
+ * ascending order. Drives the client's chart interval selector. Empty for
108
+ * providers that expose no candle data.
109
+ */
110
+ supportedIntervals: OhlcvInterval[];
111
+ }
112
+ /** @public */
113
+ export interface ProvidersResponse {
114
+ providers: Provider[];
115
+ }
116
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,cAAc;AACd,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,cAAc;AACd,MAAM,WAAW,KAAK;IACpB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,cAAc;AACd,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,UAAU,EAAE,KAAK,GAAG,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,cAAc;AACd,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,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,kBAAkB,EAAE,aAAa,EAAE,CAAA;CACpC;AAED,cAAc;AACd,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../providers.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import type { FeeTier } from './account.js';
2
+ import type { FundingInfo } from './market.js';
3
+ /** @public */
4
+ export type QuoteSide = 'buy' | 'sell';
5
+ /** @public */
6
+ export type TradeType = 'perps' | 'spot';
7
+ /**
8
+ * One-shot fill estimate for a market order of `sizeUsd` notional on a single
9
+ * venue: the VWAP fill walked from the orderbook, the price impact versus the
10
+ * mark, the base-tier taker fee, and (for perps) the current funding rate.
11
+ *
12
+ * `priceImpactBps` is signed-magnitude basis points (1 bps = 0.01%) of the
13
+ * VWAP fill's deviation from `markPrice` — always non-negative, since a buy
14
+ * fills above mark and a sell below.
15
+ * @public
16
+ */
17
+ export interface Quote {
18
+ provider: string;
19
+ /** Human `displaySymbol` the quote was resolved against, e.g. `"BTC"`. */
20
+ symbol: string;
21
+ /** Opaque resolved `Market.id`. */
22
+ marketId: string;
23
+ type: TradeType;
24
+ side: QuoteSide;
25
+ /** Input notional in USD. */
26
+ sizeUsd: string;
27
+ /** Base amount the book filled for `sizeUsd` (or the most obtainable when the book is too thin). */
28
+ baseSize: string;
29
+ markPrice: string;
30
+ /** Volume-weighted average fill price from the book walk. */
31
+ expectedFillPrice: string;
32
+ /** VWAP deviation from `markPrice` in basis points; non-negative. */
33
+ priceImpactBps: string;
34
+ /** Base maker/taker fee fractions (not bps) for the public tier. */
35
+ feeTier: FeeTier;
36
+ /** Always `true` in v1 — quotes use the public base tier, never a per-account tier. */
37
+ isDefaultFeeTier: boolean;
38
+ /** Taker fee on the filled notional in USD: `filledNotional * feeTier.taker`. */
39
+ feeUsd: string;
40
+ /** Current funding for perps; `null` for spot. */
41
+ funding: FundingInfo | null;
42
+ /** `true` when the book could not fill the full `sizeUsd` — `baseSize`/fill reflect the best obtainable. */
43
+ insufficientLiquidity: boolean;
44
+ /** Unix milliseconds the quote was produced. */
45
+ timestamp: number;
46
+ }
47
+ //# sourceMappingURL=quote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../../src/quote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,cAAc;AACd,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA;AAEtC,cAAc;AACd,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAExC;;;;;;;;;GASG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;IACf,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,oGAAoG;IACpG,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAA;IACzB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAA;IACzB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,4GAA4G;IAC5G,qBAAqB,EAAE,OAAO,CAAA;IAC9B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=quote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.js","sourceRoot":"","sources":["../../src/quote.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ import type { Balance, Fill, OpenOrder, Position, TriggerOrder } from './account.js';
2
+ import type { Candle, OhlcvInterval, OrderbookResponse } from './market.js';
3
+ import type { Address } from './primitives.js';
4
+ /** @public */
5
+ export type PricesSubscription = {
6
+ channel: 'prices';
7
+ dex: string;
8
+ };
9
+ /** @public */
10
+ export type OrderbookSubscription = {
11
+ channel: 'orderbook';
12
+ dex: string;
13
+ marketId: string;
14
+ depth?: number;
15
+ /**
16
+ * Desired price granularity of streamed levels, in quote currency (e.g.
17
+ * `10` buckets a BTC book into $10-wide levels). Providers that aggregate
18
+ * the book server-side honour it best-effort; providers that stream the
19
+ * full book ignore it. `undefined` requests full precision.
20
+ */
21
+ priceStep?: number;
22
+ };
23
+ /** @public */
24
+ export type CandleSubscription = {
25
+ channel: 'candle';
26
+ dex: string;
27
+ marketId: string;
28
+ interval: OhlcvInterval;
29
+ };
30
+ /** @public */
31
+ export type OrderUpdatesSubscription = {
32
+ channel: 'orderUpdates';
33
+ dex: string;
34
+ address: Address;
35
+ };
36
+ /** @public */
37
+ export type FillsSubscription = {
38
+ channel: 'fills';
39
+ dex: string;
40
+ address: Address;
41
+ };
42
+ /** @public */
43
+ export type PositionsSubscription = {
44
+ channel: 'positions';
45
+ dex: string;
46
+ address: Address;
47
+ };
48
+ /** @public */
49
+ export type SpotBalancesSubscription = {
50
+ channel: 'spotBalances';
51
+ dex: string;
52
+ address: Address;
53
+ };
54
+ /** @public */
55
+ export type Subscription = PricesSubscription | OrderbookSubscription | CandleSubscription | OrderUpdatesSubscription | FillsSubscription | PositionsSubscription | SpotBalancesSubscription;
56
+ /** @public */
57
+ export type PricesEvent = {
58
+ channel: 'prices';
59
+ data: Record<string, string>;
60
+ };
61
+ /** @public */
62
+ export type OrderbookEvent = {
63
+ channel: 'orderbook';
64
+ data: OrderbookResponse;
65
+ };
66
+ /** @public */
67
+ export type CandleEvent = {
68
+ channel: 'candle';
69
+ data: Candle;
70
+ };
71
+ /** @public */
72
+ export type OrderUpdatesEvent = {
73
+ channel: 'orderUpdates';
74
+ data: {
75
+ /** Upserts — active orders, non-trigger. */
76
+ openOrders: OpenOrder[];
77
+ /** Upserts — active orders with trigger semantics (TP/SL). */
78
+ triggerOrders: TriggerOrder[];
79
+ /**
80
+ * orderIds whose status just transitioned to terminal (filled, cancelled,
81
+ * rejected, expired). Consumers should evict these from both buckets.
82
+ */
83
+ terminated: string[];
84
+ };
85
+ };
86
+ /** @public */
87
+ export type FillsEvent = {
88
+ channel: 'fills';
89
+ data: Fill[];
90
+ };
91
+ /**
92
+ * Positions stream frame. `data` is always the full set of currently open
93
+ * positions for the subscribed address, never a partial update: zero-size
94
+ * entries never appear, and a close is observed as the market's absence from
95
+ * the next frame. Consumers replace their state; they must not merge.
96
+ * @public
97
+ */
98
+ export type PositionsEvent = {
99
+ channel: 'positions';
100
+ data: Position[];
101
+ };
102
+ /**
103
+ * Spot holdings as typed {@link Balance}s, each carrying the venue-locked
104
+ * portion (`locked` = reserved against open orders; `available = units − locked`).
105
+ * @public
106
+ */
107
+ export type SpotBalancesEvent = {
108
+ channel: 'spotBalances';
109
+ data: (Balance & {
110
+ locked: string;
111
+ })[];
112
+ };
113
+ /** @public */
114
+ export type SubscriptionEvent = PricesEvent | OrderbookEvent | CandleEvent | OrderUpdatesEvent | FillsEvent | PositionsEvent | SpotBalancesEvent;
115
+ //# sourceMappingURL=subscriptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/subscriptions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../subscriptions.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/subscriptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import type { Address, Hex } from './primitives.js';
2
+ /** @public */
3
+ export interface TypedDataDomain {
4
+ name?: string;
5
+ version?: string;
6
+ chainId?: number;
7
+ verifyingContract?: Address;
8
+ salt?: Hex;
9
+ }
10
+ /** @public */
11
+ export interface TypedDataParameter {
12
+ name: string;
13
+ type: string;
14
+ }
15
+ /** @public */
16
+ export type PerpsPrimaryType = string;
17
+ /** @public */
18
+ export type PerpsTypedData = {
19
+ domain: TypedDataDomain;
20
+ types: Record<string, readonly TypedDataParameter[]>;
21
+ primaryType: PerpsPrimaryType;
22
+ message: Record<string, any>;
23
+ };
24
+ /** @public */
25
+ export type PerpsSignedTypedData = PerpsTypedData & {
26
+ signature: Hex;
27
+ };
28
+ //# sourceMappingURL=typedData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../../src/typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEnD,cAAc;AACd,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,cAAc;AACd,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAErC,cAAc;AACd,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;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC7B,CAAA;AAED,cAAc;AACd,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,SAAS,EAAE,GAAG,CAAA;CACf,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"typedData.js","sourceRoot":"","sources":["../typedData.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"typedData.js","sourceRoot":"","sources":["../../src/typedData.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import type { Address } from './primitives.js';
2
+ import type { PerpsTypedData, TypedDataParameter } from './typedData.js';
3
+ /**
4
+ * Sentinel sent in the `provider` field for provider-independent actions
5
+ * (e.g. {@link "./enums.js".ActionType.META_VOTE}). The backend dispatches
6
+ * on this value instead of resolving a real provider plugin.
7
+ * @public
8
+ */
9
+ export declare const META_PROVIDER = "meta";
10
+ /** @public */
11
+ export type MetaProvider = typeof META_PROVIDER;
12
+ /**
13
+ * Vote direction. `up` endorses the subject; `down` opposes it.
14
+ * @public
15
+ */
16
+ export type VoteDirection = 'up' | 'down';
17
+ /**
18
+ * Discriminates what a vote is about, leaving room for future product-level
19
+ * vote subjects without changing the EIP-712 `primaryType`.
20
+ * @public
21
+ */
22
+ export type VoteType = 'provider';
23
+ /**
24
+ * Params for an {@link "./enums.js".ActionType.META_VOTE} action.
25
+ *
26
+ * `targetProvider` is the voted-on subject — kept distinct from the transport
27
+ * `provider` field, which carries the {@link META_PROVIDER} sentinel for this
28
+ * provider-independent action.
29
+ * @public
30
+ */
31
+ export interface VoteParams {
32
+ /** Key of the inactive provider being voted on (the voted-on subject). */
33
+ targetProvider: string;
34
+ direction: VoteDirection;
35
+ voteType: VoteType;
36
+ }
37
+ /**
38
+ * EIP-712 message body for a `Vote`. Field order matches {@link voteTypeFields}.
39
+ * @public
40
+ */
41
+ export interface VoteMessage {
42
+ /** Key of the inactive provider being voted on. */
43
+ targetProvider: string;
44
+ direction: VoteDirection;
45
+ voteType: VoteType;
46
+ voter: Address;
47
+ /** Unix timestamp in milliseconds. */
48
+ timestamp: number;
49
+ }
50
+ /**
51
+ * EIP-712 type member list for the `Vote` primary type. Field order is part of
52
+ * the signed digest and must match the backend's encoder.
53
+ * @public
54
+ */
55
+ export declare const voteTypeFields: readonly TypedDataParameter[];
56
+ /**
57
+ * EIP-712 typed data for a vote, as returned by `createAction` and signed
58
+ * client-side. `primaryType` is always `'Vote'`.
59
+ * @public
60
+ */
61
+ export interface VoteTypedData extends PerpsTypedData {
62
+ primaryType: 'Vote';
63
+ types: {
64
+ Vote: readonly TypedDataParameter[];
65
+ } & PerpsTypedData['types'];
66
+ message: VoteMessage;
67
+ }
68
+ //# sourceMappingURL=vote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vote.d.ts","sourceRoot":"","sources":["../../src/vote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAS,CAAA;AAEnC,cAAc;AACd,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAA;AAE/C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,MAAM,CAAA;AAEzC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAA;AAEjC;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EAMvD,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,kBAAkB,EAAE,CAAA;KAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACxE,OAAO,EAAE,WAAW,CAAA;CACrB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Sentinel sent in the `provider` field for provider-independent actions
3
+ * (e.g. {@link "./enums.js".ActionType.META_VOTE}). The backend dispatches
4
+ * on this value instead of resolving a real provider plugin.
5
+ * @public
6
+ */
7
+ export const META_PROVIDER = 'meta';
8
+ /**
9
+ * EIP-712 type member list for the `Vote` primary type. Field order is part of
10
+ * the signed digest and must match the backend's encoder.
11
+ * @public
12
+ */
13
+ export const voteTypeFields = [
14
+ { name: 'targetProvider', type: 'string' },
15
+ { name: 'direction', type: 'string' },
16
+ { name: 'voteType', type: 'string' },
17
+ { name: 'voter', type: 'address' },
18
+ { name: 'timestamp', type: 'uint256' },
19
+ ];
20
+ //# sourceMappingURL=vote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vote.js","sourceRoot":"","sources":["../../src/vote.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAA;AA+CnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;CACvC,CAAA"}
@@ -0,0 +1,45 @@
1
+ import type { Address } from './primitives.js';
2
+ import type { PerpsTypedData, TypedDataParameter } from './typedData.js';
3
+ /**
4
+ * Params for an {@link "./enums.js".ActionType.META_ACCEPT_TERMS} action.
5
+ *
6
+ * Provider-independent: cast with the {@link "./vote.js".META_PROVIDER}
7
+ * sentinel in the transport `provider` field.
8
+ * @public
9
+ */
10
+ export interface AcceptTermsParams {
11
+ /** Terms-of-Service version being accepted; backend-owned, relayed verbatim. */
12
+ termsVersion: string;
13
+ }
14
+ /**
15
+ * EIP-712 message body for an `AcceptTerms`. Field order matches
16
+ * {@link acceptTermsTypeFields}.
17
+ * @public
18
+ */
19
+ export interface AcceptTermsMessage {
20
+ /** Human-readable action, e.g. `"Accept LI.FI Perps Terms of Service v3"`. */
21
+ action: string;
22
+ acceptor: Address;
23
+ termsVersion: string;
24
+ /** Unix timestamp in milliseconds. */
25
+ timestamp: number;
26
+ }
27
+ /**
28
+ * EIP-712 type member list for the `AcceptTerms` primary type. Field order is
29
+ * part of the signed digest and must match the backend's encoder.
30
+ * @public
31
+ */
32
+ export declare const acceptTermsTypeFields: readonly TypedDataParameter[];
33
+ /**
34
+ * EIP-712 typed data for a terms acceptance, as returned by `createAction` and
35
+ * signed client-side. `primaryType` is always `'AcceptTerms'`.
36
+ * @public
37
+ */
38
+ export interface AcceptTermsTypedData extends PerpsTypedData {
39
+ primaryType: 'AcceptTerms';
40
+ types: {
41
+ AcceptTerms: readonly TypedDataParameter[];
42
+ } & PerpsTypedData['types'];
43
+ message: AcceptTermsMessage;
44
+ }
45
+ //# sourceMappingURL=acceptTerms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acceptTerms.d.ts","sourceRoot":"","sources":["../../src/acceptTerms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAK9D,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,WAAW,EAAE,aAAa,CAAA;IAC1B,KAAK,EAAE;QACL,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAA;KAC3C,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,EAAE,kBAAkB,CAAA;CAC5B"}