@lifi/perps-sdk 23.0.0 → 24.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 (289) hide show
  1. package/README.md +85 -45
  2. package/dist/cjs/client/PerpsClient.d.ts +3 -2
  3. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  4. package/dist/cjs/client/PerpsClient.js +16 -9
  5. package/dist/cjs/client/PerpsClient.js.map +1 -1
  6. package/dist/cjs/decimal/arithmetic.d.ts +13 -0
  7. package/dist/cjs/decimal/arithmetic.d.ts.map +1 -0
  8. package/dist/cjs/decimal/arithmetic.js +48 -0
  9. package/dist/cjs/decimal/arithmetic.js.map +1 -0
  10. package/dist/cjs/decimal/big.d.ts +0 -1
  11. package/dist/cjs/decimal/big.d.ts.map +1 -1
  12. package/dist/cjs/decimal/big.js +0 -4
  13. package/dist/cjs/decimal/big.js.map +1 -1
  14. package/dist/cjs/decimal/compare.d.ts +7 -0
  15. package/dist/cjs/decimal/compare.d.ts.map +1 -0
  16. package/dist/cjs/decimal/compare.js +21 -0
  17. package/dist/cjs/decimal/compare.js.map +1 -0
  18. package/dist/cjs/decimal/convert.d.ts +12 -6
  19. package/dist/cjs/decimal/convert.d.ts.map +1 -1
  20. package/dist/cjs/decimal/convert.js +36 -14
  21. package/dist/cjs/decimal/convert.js.map +1 -1
  22. package/dist/cjs/decimal/decimalStringToBig.d.ts +5 -0
  23. package/dist/cjs/decimal/decimalStringToBig.d.ts.map +1 -0
  24. package/dist/cjs/decimal/decimalStringToBig.js +27 -0
  25. package/dist/cjs/decimal/decimalStringToBig.js.map +1 -0
  26. package/dist/cjs/decimal/format.d.ts.map +1 -1
  27. package/dist/cjs/decimal/format.js +70 -49
  28. package/dist/cjs/decimal/format.js.map +1 -1
  29. package/dist/cjs/decimal/parse.d.ts +4 -3
  30. package/dist/cjs/decimal/parse.d.ts.map +1 -1
  31. package/dist/cjs/decimal/parse.js +44 -19
  32. package/dist/cjs/decimal/parse.js.map +1 -1
  33. package/dist/cjs/index.d.ts +13 -10
  34. package/dist/cjs/index.d.ts.map +1 -1
  35. package/dist/cjs/index.js +66 -7
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/cjs/math/fills.d.ts +1 -1
  38. package/dist/cjs/math/fills.d.ts.map +1 -1
  39. package/dist/cjs/math/fills.js +28 -13
  40. package/dist/cjs/math/fills.js.map +1 -1
  41. package/dist/cjs/math/order.d.ts +27 -16
  42. package/dist/cjs/math/order.d.ts.map +1 -1
  43. package/dist/cjs/math/order.js +106 -122
  44. package/dist/cjs/math/order.js.map +1 -1
  45. package/dist/cjs/math/position.d.ts +85 -35
  46. package/dist/cjs/math/position.d.ts.map +1 -1
  47. package/dist/cjs/math/position.js +88 -91
  48. package/dist/cjs/math/position.js.map +1 -1
  49. package/dist/cjs/services/getGasRecommendation.js +1 -1
  50. package/dist/cjs/services/getGasRecommendation.js.map +1 -1
  51. package/dist/cjs/services/getQuote.d.ts +1 -1
  52. package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
  53. package/dist/cjs/services/resolveSubscribeQuote.js +3 -2
  54. package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
  55. package/dist/cjs/transport/request.d.ts +1 -0
  56. package/dist/cjs/transport/request.d.ts.map +1 -1
  57. package/dist/cjs/transport/request.js +2 -2
  58. package/dist/cjs/transport/request.js.map +1 -1
  59. package/dist/cjs/types/api.d.ts +4 -0
  60. package/dist/cjs/types/api.d.ts.map +1 -1
  61. package/dist/cjs/types/provider.d.ts +9 -5
  62. package/dist/cjs/types/provider.d.ts.map +1 -1
  63. package/dist/cjs/types/withdrawal.d.ts +12 -4
  64. package/dist/cjs/types/withdrawal.d.ts.map +1 -1
  65. package/dist/cjs/utils/createSafeFunction.d.ts +2 -0
  66. package/dist/cjs/utils/createSafeFunction.d.ts.map +1 -0
  67. package/dist/cjs/utils/createSafeFunction.js +15 -0
  68. package/dist/cjs/utils/createSafeFunction.js.map +1 -0
  69. package/dist/cjs/utils/timestampToIsoString.d.ts +3 -0
  70. package/dist/cjs/utils/timestampToIsoString.d.ts.map +1 -0
  71. package/dist/cjs/utils/timestampToIsoString.js +16 -0
  72. package/dist/cjs/utils/timestampToIsoString.js.map +1 -0
  73. package/dist/cjs/utils/warnOnce.d.ts +2 -0
  74. package/dist/cjs/utils/warnOnce.d.ts.map +1 -1
  75. package/dist/cjs/utils/warnOnce.js +13 -1
  76. package/dist/cjs/utils/warnOnce.js.map +1 -1
  77. package/dist/cjs/version.d.ts +1 -1
  78. package/dist/cjs/version.js +1 -1
  79. package/dist/cjs/websocket/PerpsWsClient.d.ts +2 -0
  80. package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
  81. package/dist/cjs/websocket/PerpsWsClient.js +14 -1
  82. package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
  83. package/dist/cjs/websocket/wsLog.d.ts +2 -0
  84. package/dist/cjs/websocket/wsLog.d.ts.map +1 -1
  85. package/dist/cjs/websocket/wsLog.js +8 -0
  86. package/dist/cjs/websocket/wsLog.js.map +1 -1
  87. package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
  88. package/dist/cjs/wire/orderAmounts.js +6 -9
  89. package/dist/cjs/wire/orderAmounts.js.map +1 -1
  90. package/dist/cjs/wire/refuel.d.ts +4 -1
  91. package/dist/cjs/wire/refuel.d.ts.map +1 -1
  92. package/dist/cjs/wire/refuel.js +23 -6
  93. package/dist/cjs/wire/refuel.js.map +1 -1
  94. package/dist/cjs/wire/transferable.js +3 -3
  95. package/dist/cjs/wire/transferable.js.map +1 -1
  96. package/dist/cjs/wire/withdraw.d.ts.map +1 -1
  97. package/dist/cjs/wire/withdraw.js +3 -3
  98. package/dist/cjs/wire/withdraw.js.map +1 -1
  99. package/dist/esm/client/PerpsClient.d.ts +17 -4
  100. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  101. package/dist/esm/client/PerpsClient.js +30 -8
  102. package/dist/esm/client/PerpsClient.js.map +1 -1
  103. package/dist/esm/decimal/arithmetic.d.ts +84 -0
  104. package/dist/esm/decimal/arithmetic.d.ts.map +1 -0
  105. package/dist/esm/decimal/arithmetic.js +110 -0
  106. package/dist/esm/decimal/arithmetic.js.map +1 -0
  107. package/dist/esm/decimal/big.d.ts +0 -2
  108. package/dist/esm/decimal/big.d.ts.map +1 -1
  109. package/dist/esm/decimal/big.js +0 -4
  110. package/dist/esm/decimal/big.js.map +1 -1
  111. package/dist/esm/decimal/compare.d.ts +45 -0
  112. package/dist/esm/decimal/compare.d.ts.map +1 -0
  113. package/dist/esm/decimal/compare.js +53 -0
  114. package/dist/esm/decimal/compare.js.map +1 -0
  115. package/dist/esm/decimal/convert.d.ts +62 -26
  116. package/dist/esm/decimal/convert.d.ts.map +1 -1
  117. package/dist/esm/decimal/convert.js +76 -25
  118. package/dist/esm/decimal/convert.js.map +1 -1
  119. package/dist/esm/decimal/decimalStringToBig.d.ts +26 -0
  120. package/dist/esm/decimal/decimalStringToBig.d.ts.map +1 -0
  121. package/dist/esm/decimal/decimalStringToBig.js +40 -0
  122. package/dist/esm/decimal/decimalStringToBig.js.map +1 -0
  123. package/dist/esm/decimal/format.d.ts +4 -1
  124. package/dist/esm/decimal/format.d.ts.map +1 -1
  125. package/dist/esm/decimal/format.js +71 -66
  126. package/dist/esm/decimal/format.js.map +1 -1
  127. package/dist/esm/decimal/parse.d.ts +26 -7
  128. package/dist/esm/decimal/parse.d.ts.map +1 -1
  129. package/dist/esm/decimal/parse.js +59 -33
  130. package/dist/esm/decimal/parse.js.map +1 -1
  131. package/dist/esm/index.d.ts +13 -10
  132. package/dist/esm/index.d.ts.map +1 -1
  133. package/dist/esm/index.js +9 -6
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/math/fills.d.ts +6 -3
  136. package/dist/esm/math/fills.d.ts.map +1 -1
  137. package/dist/esm/math/fills.js +31 -16
  138. package/dist/esm/math/fills.js.map +1 -1
  139. package/dist/esm/math/order.d.ts +85 -65
  140. package/dist/esm/math/order.d.ts.map +1 -1
  141. package/dist/esm/math/order.js +158 -166
  142. package/dist/esm/math/order.js.map +1 -1
  143. package/dist/esm/math/position.d.ts +155 -98
  144. package/dist/esm/math/position.d.ts.map +1 -1
  145. package/dist/esm/math/position.js +157 -155
  146. package/dist/esm/math/position.js.map +1 -1
  147. package/dist/esm/services/getGasRecommendation.js +1 -1
  148. package/dist/esm/services/getGasRecommendation.js.map +1 -1
  149. package/dist/esm/services/getQuote.d.ts +2 -2
  150. package/dist/esm/services/getQuote.js +1 -1
  151. package/dist/esm/services/resolveSubscribeQuote.d.ts +1 -1
  152. package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
  153. package/dist/esm/services/resolveSubscribeQuote.js +4 -3
  154. package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
  155. package/dist/esm/transport/request.d.ts +5 -0
  156. package/dist/esm/transport/request.d.ts.map +1 -1
  157. package/dist/esm/transport/request.js +2 -2
  158. package/dist/esm/transport/request.js.map +1 -1
  159. package/dist/esm/types/api.d.ts +9 -0
  160. package/dist/esm/types/api.d.ts.map +1 -1
  161. package/dist/esm/types/provider.d.ts +26 -13
  162. package/dist/esm/types/provider.d.ts.map +1 -1
  163. package/dist/esm/types/withdrawal.d.ts +32 -7
  164. package/dist/esm/types/withdrawal.d.ts.map +1 -1
  165. package/dist/esm/utils/createSafeFunction.d.ts +9 -0
  166. package/dist/esm/utils/createSafeFunction.d.ts.map +1 -0
  167. package/dist/esm/utils/createSafeFunction.js +19 -0
  168. package/dist/esm/utils/createSafeFunction.js.map +1 -0
  169. package/dist/esm/utils/timestampToIsoString.d.ts +15 -0
  170. package/dist/esm/utils/timestampToIsoString.d.ts.map +1 -0
  171. package/dist/esm/utils/timestampToIsoString.js +24 -0
  172. package/dist/esm/utils/timestampToIsoString.js.map +1 -0
  173. package/dist/esm/utils/warnOnce.d.ts +16 -0
  174. package/dist/esm/utils/warnOnce.d.ts.map +1 -1
  175. package/dist/esm/utils/warnOnce.js +24 -0
  176. package/dist/esm/utils/warnOnce.js.map +1 -1
  177. package/dist/esm/version.d.ts +1 -1
  178. package/dist/esm/version.js +1 -1
  179. package/dist/esm/websocket/PerpsWsClient.d.ts +7 -0
  180. package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
  181. package/dist/esm/websocket/PerpsWsClient.js +20 -2
  182. package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
  183. package/dist/esm/websocket/wsLog.d.ts +12 -0
  184. package/dist/esm/websocket/wsLog.d.ts.map +1 -1
  185. package/dist/esm/websocket/wsLog.js +18 -0
  186. package/dist/esm/websocket/wsLog.js.map +1 -1
  187. package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
  188. package/dist/esm/wire/orderAmounts.js +2 -2
  189. package/dist/esm/wire/orderAmounts.js.map +1 -1
  190. package/dist/esm/wire/refuel.d.ts +24 -14
  191. package/dist/esm/wire/refuel.d.ts.map +1 -1
  192. package/dist/esm/wire/refuel.js +38 -17
  193. package/dist/esm/wire/refuel.js.map +1 -1
  194. package/dist/esm/wire/transferable.js +3 -3
  195. package/dist/esm/wire/transferable.js.map +1 -1
  196. package/dist/esm/wire/withdraw.d.ts.map +1 -1
  197. package/dist/esm/wire/withdraw.js +3 -3
  198. package/dist/esm/wire/withdraw.js.map +1 -1
  199. package/dist/types/client/PerpsClient.d.ts +17 -4
  200. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  201. package/dist/types/decimal/arithmetic.d.ts +84 -0
  202. package/dist/types/decimal/arithmetic.d.ts.map +1 -0
  203. package/dist/types/decimal/big.d.ts +0 -2
  204. package/dist/types/decimal/big.d.ts.map +1 -1
  205. package/dist/types/decimal/compare.d.ts +45 -0
  206. package/dist/types/decimal/compare.d.ts.map +1 -0
  207. package/dist/types/decimal/convert.d.ts +62 -26
  208. package/dist/types/decimal/convert.d.ts.map +1 -1
  209. package/dist/types/decimal/decimalStringToBig.d.ts +26 -0
  210. package/dist/types/decimal/decimalStringToBig.d.ts.map +1 -0
  211. package/dist/types/decimal/format.d.ts +4 -1
  212. package/dist/types/decimal/format.d.ts.map +1 -1
  213. package/dist/types/decimal/parse.d.ts +26 -7
  214. package/dist/types/decimal/parse.d.ts.map +1 -1
  215. package/dist/types/index.d.ts +13 -10
  216. package/dist/types/index.d.ts.map +1 -1
  217. package/dist/types/math/fills.d.ts +6 -3
  218. package/dist/types/math/fills.d.ts.map +1 -1
  219. package/dist/types/math/order.d.ts +85 -65
  220. package/dist/types/math/order.d.ts.map +1 -1
  221. package/dist/types/math/position.d.ts +155 -98
  222. package/dist/types/math/position.d.ts.map +1 -1
  223. package/dist/types/services/getQuote.d.ts +2 -2
  224. package/dist/types/services/resolveSubscribeQuote.d.ts +1 -1
  225. package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
  226. package/dist/types/transport/request.d.ts +5 -0
  227. package/dist/types/transport/request.d.ts.map +1 -1
  228. package/dist/types/types/api.d.ts +9 -0
  229. package/dist/types/types/api.d.ts.map +1 -1
  230. package/dist/types/types/provider.d.ts +26 -13
  231. package/dist/types/types/provider.d.ts.map +1 -1
  232. package/dist/types/types/withdrawal.d.ts +32 -7
  233. package/dist/types/types/withdrawal.d.ts.map +1 -1
  234. package/dist/types/utils/createSafeFunction.d.ts +9 -0
  235. package/dist/types/utils/createSafeFunction.d.ts.map +1 -0
  236. package/dist/types/utils/timestampToIsoString.d.ts +15 -0
  237. package/dist/types/utils/timestampToIsoString.d.ts.map +1 -0
  238. package/dist/types/utils/warnOnce.d.ts +16 -0
  239. package/dist/types/utils/warnOnce.d.ts.map +1 -1
  240. package/dist/types/version.d.ts +1 -1
  241. package/dist/types/websocket/PerpsWsClient.d.ts +7 -0
  242. package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
  243. package/dist/types/websocket/wsLog.d.ts +12 -0
  244. package/dist/types/websocket/wsLog.d.ts.map +1 -1
  245. package/dist/types/wire/orderAmounts.d.ts.map +1 -1
  246. package/dist/types/wire/refuel.d.ts +24 -14
  247. package/dist/types/wire/refuel.d.ts.map +1 -1
  248. package/dist/types/wire/withdraw.d.ts.map +1 -1
  249. package/package.json +2 -2
  250. package/src/client/PerpsClient.ts +48 -10
  251. package/src/decimal/arithmetic.ts +144 -0
  252. package/src/decimal/big.ts +0 -5
  253. package/src/decimal/compare.ts +67 -0
  254. package/src/decimal/convert.ts +123 -44
  255. package/src/decimal/decimalStringToBig.ts +47 -0
  256. package/src/decimal/format.ts +81 -68
  257. package/src/decimal/parse.ts +73 -36
  258. package/src/index.ts +76 -8
  259. package/src/math/fills.ts +32 -17
  260. package/src/math/order.ts +261 -216
  261. package/src/math/position.ts +277 -194
  262. package/src/services/getGasRecommendation.ts +1 -1
  263. package/src/services/getQuote.ts +2 -2
  264. package/src/services/resolveSubscribeQuote.ts +4 -3
  265. package/src/transport/request.ts +7 -2
  266. package/src/types/api.ts +10 -0
  267. package/src/types/provider.ts +35 -13
  268. package/src/types/withdrawal.ts +35 -8
  269. package/src/utils/createSafeFunction.ts +20 -0
  270. package/src/utils/timestampToIsoString.ts +31 -0
  271. package/src/utils/warnOnce.ts +44 -0
  272. package/src/version.ts +1 -1
  273. package/src/websocket/PerpsWsClient.ts +25 -2
  274. package/src/websocket/wsLog.ts +31 -0
  275. package/src/wire/orderAmounts.ts +3 -2
  276. package/src/wire/refuel.ts +56 -20
  277. package/src/wire/transferable.ts +3 -3
  278. package/src/wire/withdraw.ts +3 -5
  279. package/dist/cjs/decimal/requireDecimal.d.ts +0 -4
  280. package/dist/cjs/decimal/requireDecimal.d.ts.map +0 -1
  281. package/dist/cjs/decimal/requireDecimal.js +0 -17
  282. package/dist/cjs/decimal/requireDecimal.js.map +0 -1
  283. package/dist/esm/decimal/requireDecimal.d.ts +0 -11
  284. package/dist/esm/decimal/requireDecimal.d.ts.map +0 -1
  285. package/dist/esm/decimal/requireDecimal.js +0 -18
  286. package/dist/esm/decimal/requireDecimal.js.map +0 -1
  287. package/dist/types/decimal/requireDecimal.d.ts +0 -11
  288. package/dist/types/decimal/requireDecimal.d.ts.map +0 -1
  289. package/src/decimal/requireDecimal.ts +0 -21
@@ -1,54 +1,80 @@
1
- import { DECIMAL_PATTERN } from '@lifi/perps-types';
1
+ import { DECIMAL_PATTERN, PerpsErrorCode } from '@lifi/perps-types';
2
+ import Big from 'big.js';
3
+ import { PerpsError } from '../errors/PerpsError.js';
4
+ import { createSafeFunction } from '../utils/createSafeFunction.js';
5
+ import { decimalStringToBig } from './decimalStringToBig.js';
2
6
  /**
3
- * Parse a string to a float, stripping common formatting artefacts.
7
+ * Read a decimal string as a JS float, for a chart or pixel value only. A
8
+ * float holds about 15 significant digits, so the result can lose precision;
9
+ * never use it for an amount sent to a venue.
4
10
  *
5
- * Handles:
6
- * - Currency prefixes/suffixes ($, USD, etc.)
7
- * - Explicit sign prefixes (+/-)
8
- * - Thousands separators (commas)
9
- * - Percentage suffixes (%)
10
- * - Whitespace
11
- *
12
- * @returns Parsed number; `0` for empty/blank input, `NaN` when a non-empty
13
- * string contains no parseable number
11
+ * @throws {PerpsError} `ValidationError` when `value` is not a decimal string
12
+ * or is too large for a finite float.
13
+ * @public
14
14
  */
15
- function toFloat(value) {
16
- if (!value) {
17
- return 0;
18
- }
19
- const cleaned = value.trim().replace(/[$%]/g, '').replace(/,/g, '').trim();
20
- if (!cleaned) {
21
- return 0;
15
+ export function decimalStringToNumber(value) {
16
+ const parsed = decimalStringToBig(value).toNumber();
17
+ if (!Number.isFinite(parsed)) {
18
+ throw new PerpsError(PerpsErrorCode.ValidationError, `'${value}' is too large for a finite number.`);
22
19
  }
23
- return parseFloat(cleaned);
20
+ return parsed;
24
21
  }
25
- const FORMATTED_NUMBER = /^(?:[+-]\s*)?(?:\$\s*)?(?:(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:\s*(?:%|USD))?$/i;
26
22
  /**
27
- * Parse an optional decimal field, tolerating currency symbols, grouping
28
- * separators and a percentage suffix around the number.
29
- * Gives back `undefined` for a missing, malformed or non-finite value, and `0` for an empty string.
23
+ * {@link decimalStringToNumber}, or `undefined` with a warning when it throws.
30
24
  *
31
25
  * @public
32
26
  */
33
- export function parseDecimal(value) {
34
- if (value == null) {
27
+ export const safeDecimalStringToNumber = createSafeFunction('decimalStringToNumber', decimalStringToNumber);
28
+ /**
29
+ * Narrows an unknown value to a {@link DecimalString}. No characters are
30
+ * removed first.
31
+ *
32
+ * @public
33
+ */
34
+ export function isDecimalString(value) {
35
+ return typeof value === 'string' && DECIMAL_PATTERN.test(value);
36
+ }
37
+ const MAX_SPELLED_EXPONENT = 1000;
38
+ function spellDecimal(value) {
39
+ if (isDecimalString(value)) {
40
+ return value;
41
+ }
42
+ if (typeof value !== 'string' && typeof value !== 'number') {
35
43
  return undefined;
36
44
  }
37
- if (value.trim() === '') {
38
- return toFloat(value);
45
+ if (typeof value === 'number' && !Number.isFinite(value)) {
46
+ return undefined;
39
47
  }
40
- if (!FORMATTED_NUMBER.test(value.trim())) {
48
+ let parsed;
49
+ try {
50
+ parsed = new Big(value);
51
+ }
52
+ catch {
41
53
  return undefined;
42
54
  }
43
- const parsed = toFloat(value);
44
- return Number.isFinite(parsed) ? parsed : undefined;
55
+ // Spelling out an unbounded exponent builds a string of that many digits.
56
+ if (Math.abs(parsed.e) > MAX_SPELLED_EXPONENT) {
57
+ return undefined;
58
+ }
59
+ return (parsed.eq(0) ? new Big(0) : parsed).toFixed();
45
60
  }
46
61
  /**
47
- * Narrows an unknown value to a {@link DecimalString}.
62
+ * Read a venue value (a string or a number) as a decimal string, for a
63
+ * money-path value that must not go on wrong. A number or an exponent string
64
+ * is spelled out in full; no `$`, `%` or `,` is removed.
48
65
  *
66
+ * @param tool - Provider key set on the error.
67
+ * @throws {PerpsError} `SDKError` naming `field` when `value` is not a finite
68
+ * decimal.
49
69
  * @public
50
70
  */
51
- export function isDecimalString(value) {
52
- return typeof value === 'string' && DECIMAL_PATTERN.test(value);
71
+ export function unknownToDecimalString(value, field, tool) {
72
+ const decimal = spellDecimal(value);
73
+ if (decimal !== undefined) {
74
+ return decimal;
75
+ }
76
+ const error = new PerpsError(PerpsErrorCode.SDKError, `${tool} field \`${field}\` is not a valid decimal: '${String(value)}'`);
77
+ error.tool = tool;
78
+ throw error;
53
79
  }
54
80
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAA;AAEvE;;;;;;;;;;;;GAYG;AACH,SAAS,OAAO,CAAC,KAAa;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,gBAAgB,GACpB,2GAA2G,CAAA;AAE7G;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAgD;IAEhD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,IAAI,KAAK,qCAAqC,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CACzD,uBAAuB,EACvB,qBAAqB,CACtB,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAEjC,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,MAAW,CAAA;IACf,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,0EAA0E;IAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,oBAAoB,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AACvD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc,EACd,KAAa,EACb,IAAY;IAEZ,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAC1B,cAAc,CAAC,QAAQ,EACvB,GAAG,IAAI,YAAY,KAAK,+BAA+B,MAAM,CAAC,KAAK,CAAC,GAAG,CACxE,CAAA;IACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,KAAK,CAAA;AACb,CAAC"}
@@ -10,17 +10,19 @@ export * from '@lifi/perps-types';
10
10
  export { createPerpsClient, DEFAULT_API_URL, } from './client/createPerpsClient.js';
11
11
  export { PerpsClient } from './client/PerpsClient.js';
12
12
  export { requireProvider } from './client/requireProvider.js';
13
- export type { BaseUnitsRounding } from './decimal/convert.js';
14
- export { baseUnitsToDecimal, decimalToBaseUnits, numberToDecimalString, truncateDecimal, } from './decimal/convert.js';
13
+ export { absDecimalString, addDecimalString, divideDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, safeAbsDecimalString, safeAddDecimalString, safeDivideDecimalString, safeDivideDecimalStringRoundDown, safeMultiplyDecimalString, safeSubtractDecimalString, subtractDecimalString, } from './decimal/arithmetic.js';
14
+ export { compareDecimalStrings, isDecimalStringGreaterThan, isDecimalStringZero, safeCompareDecimalStrings, safeIsDecimalStringGreaterThan, safeIsDecimalStringZero, } from './decimal/compare.js';
15
+ export type { DecimalRounding } from './decimal/convert.js';
16
+ export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString, safeTruncateDecimal, scaledIntegerToDecimalString, truncateDecimal, } from './decimal/convert.js';
15
17
  export type { FormatOptions, RoundingMode } from './decimal/format.js';
16
18
  export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
17
- export { isDecimalString, parseDecimal } from './decimal/parse.js';
19
+ export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, unknownToDecimalString, } from './decimal/parse.js';
18
20
  export { PerpsErrorMessage } from './errors/constants.js';
19
21
  export { PerpsError } from './errors/PerpsError.js';
20
22
  export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
21
23
  export type { ExpectedPnl } from './math/order.js';
22
- export { applySlippage, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, walkOrderbook, } from './math/order.js';
23
- export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, wouldImmediatelyLiquidate, } from './math/position.js';
24
+ export { applySlippageToPrice, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, safeApplySlippageToPrice, safeBuildQuote, safeCalculateExpectedPnl, safeCalculateRealizedPnlPercent, safeCalculateSize, safeCalculateTriggerPercent, safeCalculateTriggerPrice, safeEstimateFees, safeEstimateRealizedPnl, safeResolveCloseSize, safeWalkOrderbook, walkOrderbook, } from './math/order.js';
25
+ export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateLiquidationPriceAtMarketRate, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, safeCalculateEffectiveLeverage, safeCalculateLiquidationDistance, safeCalculateNotionalValue, safeCalculateRealizedPnl, safeCalculateRequiredMargin, safeCalculateRoe, safeCalculateUnrealizedPnl, safeEstimateAverageEntryPrice, safeEstimateLiquidationPrice, safeEstimateLiquidationPriceAtMarketRate, safeEstimateNewLeverage, safeEstimateUnrealizedPnl, safeWouldImmediatelyLiquidate, wouldImmediatelyLiquidate, } from './math/position.js';
24
26
  export { AssetRegistry, getAssetRegistry, toAssetDisplay, } from './registry/assetRegistry.js';
25
27
  export type { DefaultMarketProvider } from './registry/marketRegistry.js';
26
28
  export { DEFAULT_MARKET_ID, getDefaultMarketId, getMarketRegistry, isActiveMarket, MarketRegistry, toMarketDisplay, toPerpsMarketDisplay, } from './registry/marketRegistry.js';
@@ -74,18 +76,19 @@ export type { FetchWithRetryOptions } from './transport/fetchWithRetry.js';
74
76
  export { fetchWithRetry, isAbortError } from './transport/fetchWithRetry.js';
75
77
  export type { ProviderRetryConfig, ResolvedRetryPolicy, RetryAttemptContext, RetryClassification, RetryClassifyContext, RetryConfig, RetryPolicy, } from './transport/retryPolicy.js';
76
78
  export { DISABLED_RETRY, LIFI_REQUEST_KEY, LIFI_RETRY_DEFAULTS, resolveRetryPolicy, } from './transport/retryPolicy.js';
77
- export type { BuildProviderSetupParams, CancelOrdersParams, CancelTwapOrderParams as ClientCancelTwapOrderParams, CreateReferralCodeActionParams, ExecuteMetaActionParams, GetAccountResult, GetDepositFlowParams, GetPortfolioHistoryParams, GetSetupParams, GetWithdrawableBalancesParams, GetWithdrawFlowParams, ModifyOrdersParams, PerpsClientOptions, PerpsConfig, PlaceOrderParams as ClientPlaceOrderParams, PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams, PlaceTwapOrderParams as ClientPlaceTwapOrderParams, ProviderSetup, SendAssetActionParams, SetupChecklistItem, SubmitOnboardingParams, WithdrawParams, } from './types/api.js';
79
+ export type { BuildProviderSetupParams, CancelOrdersParams, CancelTwapOrderParams as ClientCancelTwapOrderParams, CreateReferralCodeActionParams, ExecuteMetaActionParams, GetAccountResult, GetDepositFlowParams, GetPortfolioHistoryParams, GetSetupParams, GetWithdrawableBalancesParams, GetWithdrawalTypesParams, GetWithdrawFlowParams, ModifyOrdersParams, PerpsClientOptions, PerpsConfig, PlaceOrderParams as ClientPlaceOrderParams, PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams, PlaceTwapOrderParams as ClientPlaceTwapOrderParams, ProviderSetup, SendAssetActionParams, SetupChecklistItem, SubmitOnboardingParams, WithdrawParams, } from './types/api.js';
78
80
  export type { PerpsBaseConfig, PerpsClientSigner, RequestInterceptor, SDKRequestOptions, SwitchChainHook, } from './types/config.js';
79
81
  export type { DeclaredDepositAsset, DepositFlow, DepositFlowFirstDepositPipeline, DepositFlowLifiSwap, DepositFlowSetupRequired, } from './types/deposit.js';
80
- export type { ActionSignerContribution, LiquidationEstimateParams, PerpsProvider, PerpsProviderPlugin, PerpsSDKClient, ProviderAccountExistsParams, ProviderGetAccountParams, ProviderGetActivityParams, ProviderGetAvailableToTradeParams, ProviderGetDepositFlowParams, ProviderGetFillsParams, ProviderGetMarketSettingsParams, ProviderGetOrderParams, ProviderGetOrdersParams, ProviderGetPortfolioHistoryParams, ProviderGetPositionsParams, ProviderGetQuoteParams, ProviderGetWithdrawableBalancesParams, ProviderGetWithdrawFlowParams, QuoteListener, SignActionProgress, SignActionsContext, } from './types/provider.js';
81
- export type { ProviderWithdrawableBalance, WithdrawableBalance, WithdrawalRoute, WithdrawFlow, WithdrawFlowReady, WithdrawFlowSetupRequired, } from './types/withdrawal.js';
82
+ export type { ActionSignerContribution, LiquidationEstimateParams, PerpsProvider, PerpsProviderPlugin, PerpsSDKClient, ProviderAccountExistsParams, ProviderGetAccountParams, ProviderGetActivityParams, ProviderGetAvailableToTradeParams, ProviderGetDepositFlowParams, ProviderGetFillsParams, ProviderGetMarketSettingsParams, ProviderGetOrderParams, ProviderGetOrdersParams, ProviderGetPortfolioHistoryParams, ProviderGetPositionsParams, ProviderGetQuoteParams, ProviderGetWithdrawableBalancesParams, ProviderGetWithdrawalTypesParams, ProviderGetWithdrawFlowParams, QuoteListener, SignActionProgress, SignActionsContext, } from './types/provider.js';
83
+ export type { ProviderWithdrawableBalance, WithdrawableBalance, WithdrawalSourceTypes, WithdrawalTypeOption, WithdrawFlow, WithdrawFlowReady, WithdrawFlowSetupRequired, } from './types/withdrawal.js';
82
84
  export { paginateActivity } from './utils/activityPaging.js';
83
85
  export { ETHEREUM_NATIVE_GAS, ETHEREUM_USDC, HYPERLIQUID_USDC, LIGHTER_USDC, ROBINHOOD_NATIVE_GAS, ROBINHOOD_USDG, } from './utils/depositAssets.js';
84
86
  export { ExplorerChainId, explorerTxUrl, explorerTxUrlFromBase, } from './utils/explorer.js';
85
87
  export { ACTIVE_ORDER_STATUSES, isActiveOrderStatus, isRegularOrder, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, isTriggerOrder, isTwapOrder, triggerConditionFor, } from './utils/orderClassification.js';
86
88
  export { isSetupOptionFor, selectUserSetupActions, } from './utils/setupActions.js';
87
89
  export { signTypedData, signTypedDataWithSigner, } from './utils/signTypedData.js';
88
- export { createWarnOnce } from './utils/warnOnce.js';
90
+ export { safeTimestampToIsoString, timestampToIsoString, } from './utils/timestampToIsoString.js';
91
+ export { createWarnOnce, warnSkippedVenueRow } from './utils/warnOnce.js';
89
92
  export { name, version } from './version.js';
90
93
  export { cachePromise } from './websocket/cachePromise.js';
91
94
  export type { DecodeChainMode } from './websocket/decodeChain.js';
@@ -100,7 +103,7 @@ export { wsLog } from './websocket/wsLog.js';
100
103
  export type { OrderAmounts, OrderAmountsInput, } from './wire/orderAmounts.js';
101
104
  export { calculateOrderAmounts } from './wire/orderAmounts.js';
102
105
  export type { RefuelAmountInput } from './wire/refuel.js';
103
- export { calculateRefuelAmount } from './wire/refuel.js';
106
+ export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
104
107
  export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
105
108
  export { calculateTransferable } from './wire/transferable.js';
106
109
  export { calculateWithdrawMax } from './wire/withdraw.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -12,14 +12,16 @@ export * from '@lifi/perps-types';
12
12
  export { createPerpsClient, DEFAULT_API_URL, } from './client/createPerpsClient.js';
13
13
  export { PerpsClient } from './client/PerpsClient.js';
14
14
  export { requireProvider } from './client/requireProvider.js';
15
- export { baseUnitsToDecimal, decimalToBaseUnits, numberToDecimalString, truncateDecimal, } from './decimal/convert.js';
15
+ export { absDecimalString, addDecimalString, divideDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, safeAbsDecimalString, safeAddDecimalString, safeDivideDecimalString, safeDivideDecimalStringRoundDown, safeMultiplyDecimalString, safeSubtractDecimalString, subtractDecimalString, } from './decimal/arithmetic.js';
16
+ export { compareDecimalStrings, isDecimalStringGreaterThan, isDecimalStringZero, safeCompareDecimalStrings, safeIsDecimalStringGreaterThan, safeIsDecimalStringZero, } from './decimal/compare.js';
17
+ export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString, safeTruncateDecimal, scaledIntegerToDecimalString, truncateDecimal, } from './decimal/convert.js';
16
18
  export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
17
- export { isDecimalString, parseDecimal } from './decimal/parse.js';
19
+ export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, unknownToDecimalString, } from './decimal/parse.js';
18
20
  export { PerpsErrorMessage } from './errors/constants.js';
19
21
  export { PerpsError } from './errors/PerpsError.js';
20
22
  export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
21
- export { applySlippage, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, walkOrderbook, } from './math/order.js';
22
- export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, wouldImmediatelyLiquidate, } from './math/position.js';
23
+ export { applySlippageToPrice, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, safeApplySlippageToPrice, safeBuildQuote, safeCalculateExpectedPnl, safeCalculateRealizedPnlPercent, safeCalculateSize, safeCalculateTriggerPercent, safeCalculateTriggerPrice, safeEstimateFees, safeEstimateRealizedPnl, safeResolveCloseSize, safeWalkOrderbook, walkOrderbook, } from './math/order.js';
24
+ export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateLiquidationPriceAtMarketRate, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, safeCalculateEffectiveLeverage, safeCalculateLiquidationDistance, safeCalculateNotionalValue, safeCalculateRealizedPnl, safeCalculateRequiredMargin, safeCalculateRoe, safeCalculateUnrealizedPnl, safeEstimateAverageEntryPrice, safeEstimateLiquidationPrice, safeEstimateLiquidationPriceAtMarketRate, safeEstimateNewLeverage, safeEstimateUnrealizedPnl, safeWouldImmediatelyLiquidate, wouldImmediatelyLiquidate, } from './math/position.js';
23
25
  // Registries
24
26
  export { AssetRegistry, getAssetRegistry, toAssetDisplay, } from './registry/assetRegistry.js';
25
27
  export { DEFAULT_MARKET_ID, getDefaultMarketId, getMarketRegistry, isActiveMarket, MarketRegistry, toMarketDisplay, toPerpsMarketDisplay, } from './registry/marketRegistry.js';
@@ -58,7 +60,8 @@ export { ExplorerChainId, explorerTxUrl, explorerTxUrlFromBase, } from './utils/
58
60
  export { ACTIVE_ORDER_STATUSES, isActiveOrderStatus, isRegularOrder, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, isTriggerOrder, isTwapOrder, triggerConditionFor, } from './utils/orderClassification.js';
59
61
  export { isSetupOptionFor, selectUserSetupActions, } from './utils/setupActions.js';
60
62
  export { signTypedData, signTypedDataWithSigner, } from './utils/signTypedData.js';
61
- export { createWarnOnce } from './utils/warnOnce.js';
63
+ export { safeTimestampToIsoString, timestampToIsoString, } from './utils/timestampToIsoString.js';
64
+ export { createWarnOnce, warnSkippedVenueRow } from './utils/warnOnce.js';
62
65
  // Version
63
66
  export { name, version } from './version.js';
64
67
  export { cachePromise } from './websocket/cachePromise.js';
@@ -68,7 +71,7 @@ export { ReconnectingWebSocket } from './websocket/ReconnectingWebSocket.js';
68
71
  export { WS_CHANNEL_TEARDOWN_LINGER_MS, WsProviderBase, } from './websocket/WsProviderBase.js';
69
72
  export { wsLog } from './websocket/wsLog.js';
70
73
  export { calculateOrderAmounts } from './wire/orderAmounts.js';
71
- export { calculateRefuelAmount } from './wire/refuel.js';
74
+ export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
72
75
  export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
73
76
  export { calculateTransferable } from './wire/transferable.js';
74
77
  export { calculateWithdrawMax } from './wire/withdraw.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,18 @@ export { FillClassification };
11
11
  *
12
12
  * @param startPosition Signed position held BEFORE this fill (`> 0` long,
13
13
  * `< 0` short, `0` flat).
14
- * @param side Hyperliquid-style: `'B'` for buy, anything else for sell.
15
- * @param sz Unsigned fill size, parsed with `parseFloat`.
14
+ * @param sz Unsigned fill size.
15
+ * @returns `BUY` or `SELL` when `startPosition` or `sz` is not a decimal
16
+ * string, so one malformed venue fill still maps.
16
17
  * @public
17
18
  */
18
- export declare function classifyFillFromPosition(startPosition: DecimalString, side: string, sz: DecimalString): FillClassification;
19
+ export declare function classifyFillFromPosition(startPosition: DecimalString, side: OrderSide, sz: DecimalString): FillClassification;
19
20
  /**
20
21
  * Classify a fill as open or close based on realizedPnl.
21
22
  * @deprecated Use `Fill.classification` instead — it uses startPosition
22
23
  * for accurate open/increase/reduce/close/reverse classification.
24
+ * @returns `BUY` or `SELL` when `realizedPnl` is a string that is not a
25
+ * decimal string.
23
26
  * @public
24
27
  */
25
28
  export declare function classifyFill(side: OrderSide, realizedPnl: DecimalString | null | undefined): FillClassification;
@@ -1 +1 @@
1
- {"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,mBAAmB,CAAA;AAG1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,aAAa,GAChB,kBAAkB,CAkCpB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAC5C,kBAAkB,CAUpB"}
1
+ {"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,mBAAmB,CAAA;AAK1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,aAAa,GAChB,kBAAkB,CAuCpB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAC5C,kBAAkB,CAepB"}
@@ -1,5 +1,7 @@
1
1
  import { FillClassification, OrderSide, } from '@lifi/perps-types';
2
- import { parseDecimal } from '../decimal/parse.js';
2
+ import Big from 'big.js';
3
+ import { isDecimalStringZero } from '../decimal/compare.js';
4
+ import { isDecimalString } from '../decimal/parse.js';
3
5
  /**
4
6
  * Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
5
7
  *
@@ -12,38 +14,44 @@ export { FillClassification };
12
14
  *
13
15
  * @param startPosition Signed position held BEFORE this fill (`> 0` long,
14
16
  * `< 0` short, `0` flat).
15
- * @param side Hyperliquid-style: `'B'` for buy, anything else for sell.
16
- * @param sz Unsigned fill size, parsed with `parseFloat`.
17
+ * @param sz Unsigned fill size.
18
+ * @returns `BUY` or `SELL` when `startPosition` or `sz` is not a decimal
19
+ * string, so one malformed venue fill still maps.
17
20
  * @public
18
21
  */
19
22
  export function classifyFillFromPosition(startPosition, side, sz) {
20
- const start = parseFloat(startPosition);
21
- const delta = side === 'B' ? parseFloat(sz) : -parseFloat(sz);
22
- const end = start + delta;
23
- if (start === 0) {
24
- return end > 0
23
+ if (!isDecimalString(startPosition) || !isDecimalString(sz)) {
24
+ return side === OrderSide.BUY
25
+ ? FillClassification.BUY
26
+ : FillClassification.SELL;
27
+ }
28
+ const start = new Big(startPosition);
29
+ const size = new Big(sz);
30
+ const end = side === OrderSide.BUY ? start.plus(size) : start.minus(size);
31
+ if (start.eq(0)) {
32
+ return end.gt(0)
25
33
  ? FillClassification.OPENED_LONG
26
34
  : FillClassification.OPENED_SHORT;
27
35
  }
28
- if (start > 0) {
29
- if (end === 0) {
36
+ if (start.gt(0)) {
37
+ if (end.eq(0)) {
30
38
  return FillClassification.CLOSED_LONG;
31
39
  }
32
- if (end < 0) {
40
+ if (end.lt(0)) {
33
41
  return FillClassification.SWITCHED_SHORT;
34
42
  }
35
- if (end > start) {
43
+ if (end.gt(start)) {
36
44
  return FillClassification.INCREASED_LONG;
37
45
  }
38
46
  return FillClassification.REDUCED_LONG;
39
47
  }
40
- if (end === 0) {
48
+ if (end.eq(0)) {
41
49
  return FillClassification.CLOSED_SHORT;
42
50
  }
43
- if (end > 0) {
51
+ if (end.gt(0)) {
44
52
  return FillClassification.SWITCHED_LONG;
45
53
  }
46
- if (end < start) {
54
+ if (end.lt(start)) {
47
55
  return FillClassification.INCREASED_SHORT;
48
56
  }
49
57
  return FillClassification.REDUCED_SHORT;
@@ -52,10 +60,17 @@ export function classifyFillFromPosition(startPosition, side, sz) {
52
60
  * Classify a fill as open or close based on realizedPnl.
53
61
  * @deprecated Use `Fill.classification` instead — it uses startPosition
54
62
  * for accurate open/increase/reduce/close/reverse classification.
63
+ * @returns `BUY` or `SELL` when `realizedPnl` is a string that is not a
64
+ * decimal string.
55
65
  * @public
56
66
  */
57
67
  export function classifyFill(side, realizedPnl) {
58
- const isClose = realizedPnl != null && parseDecimal(realizedPnl) !== 0;
68
+ if (realizedPnl != null && !isDecimalString(realizedPnl)) {
69
+ return side === OrderSide.BUY
70
+ ? FillClassification.BUY
71
+ : FillClassification.SELL;
72
+ }
73
+ const isClose = realizedPnl != null && !isDecimalStringZero(realizedPnl);
59
74
  if (side === OrderSide.BUY) {
60
75
  return isClose
61
76
  ? FillClassification.CLOSED_SHORT
@@ -1 +1 @@
1
- {"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAA4B,EAC5B,IAAY,EACZ,EAAiB;IAEjB,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAA;IAEzB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,GAAG,CAAC;YACZ,CAAC,CAAC,kBAAkB,CAAC,WAAW;YAChC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAA;IACrC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,OAAO,kBAAkB,CAAC,WAAW,CAAA;QACvC,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,kBAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;YAChB,OAAO,kBAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,OAAO,kBAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IAED,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,kBAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,kBAAkB,CAAC,aAAa,CAAA;IACzC,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,eAAe,CAAA;IAC3C,CAAC;IACD,OAAO,kBAAkB,CAAC,aAAa,CAAA;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAe,EACf,WAA6C;IAE7C,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACtE,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO;YACZ,CAAC,CAAC,kBAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAA;IACpC,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,kBAAkB,CAAC,WAAW;QAChC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"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"}