@lifi/perps-sdk 0.0.0-preview-143b69e → 0.0.0-preview-0b4b647

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 (96) hide show
  1. package/README.md +29 -16
  2. package/dist/cjs/decimal/convert.d.ts.map +1 -1
  3. package/dist/cjs/decimal/convert.js +3 -16
  4. package/dist/cjs/decimal/convert.js.map +1 -1
  5. package/dist/cjs/decimal/parse.d.ts +2 -1
  6. package/dist/cjs/decimal/parse.d.ts.map +1 -1
  7. package/dist/cjs/decimal/parse.js +5 -0
  8. package/dist/cjs/decimal/parse.js.map +1 -1
  9. package/dist/cjs/decimal/requireDecimal.d.ts.map +1 -0
  10. package/dist/cjs/{wire → decimal}/requireDecimal.js +2 -1
  11. package/dist/cjs/decimal/requireDecimal.js.map +1 -0
  12. package/dist/cjs/index.d.ts +2 -2
  13. package/dist/cjs/index.d.ts.map +1 -1
  14. package/dist/cjs/index.js +6 -3
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/math/position.d.ts +3 -0
  17. package/dist/cjs/math/position.d.ts.map +1 -1
  18. package/dist/cjs/math/position.js +12 -0
  19. package/dist/cjs/math/position.js.map +1 -1
  20. package/dist/cjs/version.d.ts +1 -1
  21. package/dist/cjs/version.js +1 -1
  22. package/dist/cjs/wire/orderAmounts.d.ts +1 -2
  23. package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
  24. package/dist/cjs/wire/orderAmounts.js +19 -52
  25. package/dist/cjs/wire/orderAmounts.js.map +1 -1
  26. package/dist/cjs/wire/refuel.js +1 -1
  27. package/dist/cjs/wire/refuel.js.map +1 -1
  28. package/dist/cjs/wire/transferable.js +1 -1
  29. package/dist/cjs/wire/transferable.js.map +1 -1
  30. package/dist/cjs/wire/withdraw.d.ts.map +1 -1
  31. package/dist/cjs/wire/withdraw.js +1 -1
  32. package/dist/cjs/wire/withdraw.js.map +1 -1
  33. package/dist/esm/decimal/convert.d.ts +4 -4
  34. package/dist/esm/decimal/convert.d.ts.map +1 -1
  35. package/dist/esm/decimal/convert.js +7 -20
  36. package/dist/esm/decimal/convert.js.map +1 -1
  37. package/dist/esm/decimal/parse.d.ts +7 -1
  38. package/dist/esm/decimal/parse.d.ts.map +1 -1
  39. package/dist/esm/decimal/parse.js +9 -0
  40. package/dist/esm/decimal/parse.js.map +1 -1
  41. package/dist/esm/{wire → decimal}/requireDecimal.d.ts +1 -1
  42. package/dist/esm/decimal/requireDecimal.d.ts.map +1 -0
  43. package/dist/esm/{wire → decimal}/requireDecimal.js +3 -2
  44. package/dist/esm/decimal/requireDecimal.js.map +1 -0
  45. package/dist/esm/index.d.ts +2 -2
  46. package/dist/esm/index.d.ts.map +1 -1
  47. package/dist/esm/index.js +2 -2
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/math/position.d.ts +18 -2
  50. package/dist/esm/math/position.d.ts.map +1 -1
  51. package/dist/esm/math/position.js +25 -2
  52. package/dist/esm/math/position.js.map +1 -1
  53. package/dist/esm/version.d.ts +1 -1
  54. package/dist/esm/version.js +1 -1
  55. package/dist/esm/wire/orderAmounts.d.ts +15 -29
  56. package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
  57. package/dist/esm/wire/orderAmounts.js +28 -88
  58. package/dist/esm/wire/orderAmounts.js.map +1 -1
  59. package/dist/esm/wire/refuel.js +1 -1
  60. package/dist/esm/wire/refuel.js.map +1 -1
  61. package/dist/esm/wire/transferable.js +1 -1
  62. package/dist/esm/wire/transferable.js.map +1 -1
  63. package/dist/esm/wire/withdraw.d.ts.map +1 -1
  64. package/dist/esm/wire/withdraw.js +1 -1
  65. package/dist/esm/wire/withdraw.js.map +1 -1
  66. package/dist/types/decimal/convert.d.ts +4 -4
  67. package/dist/types/decimal/convert.d.ts.map +1 -1
  68. package/dist/types/decimal/parse.d.ts +7 -1
  69. package/dist/types/decimal/parse.d.ts.map +1 -1
  70. package/dist/types/{wire → decimal}/requireDecimal.d.ts +1 -1
  71. package/dist/types/decimal/requireDecimal.d.ts.map +1 -0
  72. package/dist/types/index.d.ts +2 -2
  73. package/dist/types/index.d.ts.map +1 -1
  74. package/dist/types/math/position.d.ts +18 -2
  75. package/dist/types/math/position.d.ts.map +1 -1
  76. package/dist/types/version.d.ts +1 -1
  77. package/dist/types/wire/orderAmounts.d.ts +15 -29
  78. package/dist/types/wire/orderAmounts.d.ts.map +1 -1
  79. package/dist/types/wire/withdraw.d.ts.map +1 -1
  80. package/package.json +2 -2
  81. package/src/decimal/convert.ts +10 -24
  82. package/src/decimal/parse.ts +10 -1
  83. package/src/{wire → decimal}/requireDecimal.ts +3 -6
  84. package/src/index.ts +7 -1
  85. package/src/math/position.ts +35 -2
  86. package/src/version.ts +1 -1
  87. package/src/wire/orderAmounts.ts +35 -117
  88. package/src/wire/refuel.ts +1 -1
  89. package/src/wire/transferable.ts +1 -1
  90. package/src/wire/withdraw.ts +1 -1
  91. package/dist/cjs/wire/requireDecimal.d.ts.map +0 -1
  92. package/dist/cjs/wire/requireDecimal.js.map +0 -1
  93. package/dist/esm/wire/requireDecimal.d.ts.map +0 -1
  94. package/dist/esm/wire/requireDecimal.js.map +0 -1
  95. package/dist/types/wire/requireDecimal.d.ts.map +0 -1
  96. /package/dist/cjs/{wire → decimal}/requireDecimal.d.ts +0 -0
package/README.md CHANGED
@@ -199,20 +199,28 @@ the provider from `market.providerId`, so a caller never applies one venue's
199
199
  rules to another venue's market.
200
200
 
201
201
  `calculateOrderAmounts()` gives the three order-entry amounts from whichever
202
- one the user typed. It normalises the held field first, then derives the other
203
- two from that value. The rounding is directional, so the result always funds
204
- itself — `size × price ≤ margin × leverage`:
205
-
206
- - a derived size truncates onto the venue lot grid;
207
- - a derived notional truncates onto the `quoteDecimals` grid;
208
- - a derived margin rounds **up** onto the `quoteDecimals` grid, because it is
209
- the one amount that has to cover the others;
210
- - a held field keeps its own normalised value.
211
-
212
- The call gives `null` when the input is not a positive amount, price and
213
- leverage, and also when the grids snap the result to a non-positive amount:
214
- a size below one lot, or a quote amount below the last `quoteDecimals` place,
215
- describes no order a venue can take.
202
+ one the user typed. Every venue places an order by size alone, so the size is
203
+ the only amount that snaps onto a grid: the venue lot grid. Margin and notional
204
+ are display and comparison values. No quote grid applies to them.
205
+
206
+ | held | `size` | `notional` | `margin` |
207
+ | ---------- | ------------------------------------------ | -------------- | --------------------- |
208
+ | `size` | `snapOrderSize(amount)` | `size × price` | `notional ÷ leverage` |
209
+ | `notional` | `snapOrderSize(amount ÷ price)` | `size × price` | `notional ÷ leverage` |
210
+ | `margin` | `snapOrderSize(amount × leverage ÷ price)` | `size × price` | `amount`, unchanged |
211
+
212
+ - A held margin comes back byte-identical to the input string.
213
+ - `notional` is always the snapped size times the price, so it describes the
214
+ order that the venue opens, not the input before the snap.
215
+ - A derived margin is exact SDK division: 40 decimal places, rounded half-up,
216
+ with no trailing zeros.
217
+ - A derived size truncates onto the lot grid, so a held margin always funds
218
+ its size: `size × price ≤ margin × leverage`.
219
+
220
+ The call gives `null` when `amount` or `price` is not a positive
221
+ `DecimalString`, when `leverage` is not a positive finite number, or when the
222
+ snapped size is zero (below one lot). A sub-cent margin is a valid order when
223
+ the lot grid takes the size.
216
224
 
217
225
  ```ts
218
226
  import { calculateOrderAmounts } from '@lifi/perps-sdk'
@@ -224,15 +232,20 @@ const amounts = calculateOrderAmounts({
224
232
  amount: '100',
225
233
  leverage: 5,
226
234
  price: '1000',
227
- // quoteDecimals defaults to 2, the minor unit of a USD quote asset.
228
235
  })
229
236
  // { margin: '100', size: '0.5', notional: '500' }, or null — see above
230
237
  ```
231
238
 
239
+ Send `amounts.size` as `PlaceOrderParams.size`. It is the same string that the
240
+ size field shows.
241
+
232
242
  `truncateDecimal(value, decimals)` rounds a decimal string down and pads it to
233
243
  exactly `decimals` places, which seeds a fixed-decimal input field.
234
244
  `numberToDecimalString(value)` spells a `number` from a venue or browser API as
235
- a plain decimal string, so `1e-7` becomes `'0.0000001'`.
245
+ a plain decimal string, so `1e-7` becomes `'0.0000001'`. `truncateDecimal` and
246
+ `decimalToBaseUnits` throw `PerpsError(ValidationError)` for a string that is
247
+ not a `DecimalString`, such as `'1e-8'`. `isDecimalString(value)` tests a
248
+ value against the same rule.
236
249
 
237
250
  A provider plugin implements the same two rules for its own venue:
238
251
  `snapOrderPrice(market: Market, price: DecimalString): DecimalString` and
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,mBAAmB,CAAA;AActE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAA;AAKpD,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAA;AAapD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,UAAU,MAAM,EAChB,UAAU,iBAAiB,KAC1B,MA0BF,CAAA;AAKD,eAAO,MAAM,cAAc,UAlClB,aAAa,YACV,MAAM,YACN,iBAAiB,KAC1B,MA+B6C,CAAA;AAchD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,aAAa,CAMf;AAKD,eAAO,MAAM,aAAa,2BAAqB,CAAA;AAM/C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E;AAiBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,aAAa,CAmBf;AAYD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CASlE"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,mBAAmB,CAAA;AAetE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAA;AAKpD,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAA;AAapD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,UAAU,MAAM,EAChB,UAAU,iBAAiB,KAC1B,MAiBF,CAAA;AAKD,eAAO,MAAM,cAAc,UAzBlB,aAAa,YACV,MAAM,YACN,iBAAiB,KAC1B,MAsB6C,CAAA;AAchD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,aAAa,CAMf;AAKD,eAAO,MAAM,aAAa,2BAAqB,CAAA;AAM/C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E;AAiBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,aAAa,CAaf;AAYD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CASlE"}
@@ -13,18 +13,12 @@ const big_js_1 = __importDefault(require("big.js"));
13
13
  const viem_1 = require("viem");
14
14
  const PerpsError_js_1 = require("../errors/PerpsError.js");
15
15
  const parse_js_1 = require("./parse.js");
16
+ const requireDecimal_js_1 = require("./requireDecimal.js");
16
17
  const decimalToBaseUnits = (value, decimals, rounding) => {
17
18
  if (!Number.isInteger(decimals) || decimals < 0) {
18
19
  throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimals for integer scaling: ${decimals}`);
19
20
  }
20
- let parsed;
21
- try {
22
- parsed = new big_js_1.default(value);
23
- }
24
- catch {
25
- throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimal string for integer scaling: '${value}'`);
26
- }
27
- const scaled = parsed
21
+ const scaled = (0, requireDecimal_js_1.requireDecimal)(value, 'decimalToBaseUnits(value)')
28
22
  .times(new big_js_1.default(10).pow(decimals))
29
23
  .round(0, rounding === 'truncate' ? big_js_1.default.roundDown : big_js_1.default.roundHalfUp);
30
24
  if (scaled.abs().gt(Number.MAX_SAFE_INTEGER)) {
@@ -50,14 +44,7 @@ function truncateDecimal(value, decimals) {
50
44
  if (!Number.isInteger(decimals) || decimals < 0) {
51
45
  throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimals for truncation: ${decimals}`);
52
46
  }
53
- let parsed;
54
- try {
55
- parsed = new big_js_1.default(value);
56
- }
57
- catch {
58
- throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimal string for truncation: '${value}'`);
59
- }
60
- const truncated = parsed.round(decimals, big_js_1.default.roundDown);
47
+ const truncated = (0, requireDecimal_js_1.requireDecimal)(value, 'truncateDecimal(value)').round(decimals, big_js_1.default.roundDown);
61
48
  return (truncated.eq(0) ? new big_js_1.default(0) : truncated).toFixed(decimals);
62
49
  }
63
50
  function numberToDecimalString(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { DecimalString } from '@lifi/perps-types';
1
+ import { type DecimalString } from '@lifi/perps-types';
2
2
  declare function toFloat(value: string): number;
3
3
  export declare const stringToFloat: typeof toFloat;
4
4
  export declare function parseDecimal(value: DecimalString | string | null | undefined): number | undefined;
5
+ export declare function isDecimalString(value: unknown): value is DecimalString;
5
6
  export {};
6
7
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAetD,iBAAS,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAStC;AAKD,eAAO,MAAM,aAAa,gBAAU,CAAA;AAYpC,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/C,MAAM,GAAG,SAAS,CAYpB"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAevE,iBAAS,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAStC;AAKD,eAAO,MAAM,aAAa,gBAAU,CAAA;AAYpC,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/C,MAAM,GAAG,SAAS,CAYpB;AAOD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stringToFloat = void 0;
4
4
  exports.parseDecimal = parseDecimal;
5
+ exports.isDecimalString = isDecimalString;
6
+ const perps_types_1 = require("@lifi/perps-types");
5
7
  function toFloat(value) {
6
8
  if (!value) {
7
9
  return 0;
@@ -27,4 +29,7 @@ function parseDecimal(value) {
27
29
  const parsed = toFloat(value);
28
30
  return Number.isFinite(parsed) ? parsed : undefined;
29
31
  }
32
+ function isDecimalString(value) {
33
+ return typeof value === 'string' && perps_types_1.DECIMAL_PATTERN.test(value);
34
+ }
30
35
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":";;;AAyCA,oCAcC;AAxCD,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;AAKY,QAAA,aAAa,GAAG,OAAO,CAAA;AAEpC,MAAM,gBAAgB,GACpB,2GAA2G,CAAA;AAS7G,SAAgB,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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":";;;AAyCA,oCAcC;AAOD,0CAEC;AAhED,mDAAuE;AAevE,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;AAKY,QAAA,aAAa,GAAG,OAAO,CAAA;AAEpC,MAAM,gBAAgB,GACpB,2GAA2G,CAAA;AAS7G,SAAgB,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;AAOD,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,6BAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireDecimal.d.ts","sourceRoot":"","sources":["../../../src/decimal/requireDecimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,mBAAmB,CAAA;AACtE,OAAO,GAAG,MAAM,QAAQ,CAAA;AAWxB,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAQvE"}
@@ -7,8 +7,9 @@ exports.requireDecimal = requireDecimal;
7
7
  const perps_types_1 = require("@lifi/perps-types");
8
8
  const big_js_1 = __importDefault(require("big.js"));
9
9
  const PerpsError_js_1 = require("../errors/PerpsError.js");
10
+ const parse_js_1 = require("./parse.js");
10
11
  function requireDecimal(value, field) {
11
- if (!(0, perps_types_1.isDecimalString)(value)) {
12
+ if (!(0, parse_js_1.isDecimalString)(value)) {
12
13
  throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`${field}\`: '${value}' is not a decimal string.`);
13
14
  }
14
15
  return new big_js_1.default(value);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireDecimal.js","sourceRoot":"","sources":["../../../src/decimal/requireDecimal.ts"],"names":[],"mappings":";;;;;AAYA,wCAQC;AApBD,mDAAsE;AACtE,oDAAwB;AACxB,2DAAoD;AACpD,yCAA4C;AAS5C,SAAgB,cAAc,CAAC,KAAoB,EAAE,KAAa;IAChE,IAAI,CAAC,IAAA,0BAAe,EAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,aAAa,KAAK,QAAQ,KAAK,4BAA4B,CAC5D,CAAA;IACH,CAAC;IACD,OAAO,IAAI,gBAAG,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC"}
@@ -6,13 +6,13 @@ export type { BaseUnitsRounding, ScaleToIntegerPolicy, } from './decimal/convert
6
6
  export { baseUnitsToDecimal, decimalToBaseUnits, fromBaseUnits, fromBaseUnitsNumber, numberToDecimalString, scaleToInteger, truncateDecimal, } from './decimal/convert.js';
7
7
  export type { FormatOptions, RoundingMode } from './decimal/format.js';
8
8
  export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
9
- export { parseDecimal, stringToFloat } from './decimal/parse.js';
9
+ export { isDecimalString, parseDecimal, stringToFloat, } from './decimal/parse.js';
10
10
  export { PerpsErrorMessage } from './errors/constants.js';
11
11
  export { PerpsError } from './errors/PerpsError.js';
12
12
  export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
13
13
  export type { ExpectedPnl } from './math/order.js';
14
14
  export { applySlippage, buildQuote, calculateExpectedPnl, calculatePositionSize, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, expectedRealizedPnlForOpenOrder, expectedRealizedPnlForTriggerOrder, findMatchingPosition, percentFromPrice, priceFromPercent, resolveCloseSize, walkOrderbook, } from './math/order.js';
15
- export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, directionSign, effectiveLeverage, estimateAverageEntryPrice, estimateIsolatedLiquidationPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, liquidationDistancePercent, predictAverageEntryPrice, predictNewLeverage, predictUnrealizedPnl, realizedPnlOnClose, wouldImmediatelyLiquidate, } from './math/position.js';
15
+ export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, directionSign, effectiveLeverage, estimateAverageEntryPrice, estimateIsolatedLiquidationPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, liquidationDistancePercent, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, predictAverageEntryPrice, predictNewLeverage, predictUnrealizedPnl, realizedPnlOnClose, wouldImmediatelyLiquidate, } from './math/position.js';
16
16
  export { AssetRegistry, getAssetRegistry, toAssetDisplay, } from './registry/assetRegistry.js';
17
17
  export type { DefaultMarketProvider } from './registry/marketRegistry.js';
18
18
  export { DEFAULT_MARKET_ID, getDefaultMarketId, getMarketRegistry, isActiveMarket, MarketRegistry, toMarketDisplay, toPerpsMarketDisplay, } from './registry/marketRegistry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAYA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,YAAY,EACV,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,SAAS,GACV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EACL,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,+BAA+B,EAC/B,kCAAkC,EAClC,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,gCAAgC,EAChC,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,GACf,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AAErC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AACpF,OAAO,EACL,oBAAoB,EACpB,YAAY,GACb,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5E,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACV,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,IAAI,2BAA2B,EACpD,8BAA8B,EAC9B,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACd,6BAA6B,EAC7B,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,IAAI,sBAAsB,EAC1C,uBAAuB,IAAI,6BAA6B,EACxD,oBAAoB,IAAI,0BAA0B,EAClD,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,iCAAiC,EACjC,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,EACtB,uBAAuB,EACvB,iCAAiC,EACjC,0BAA0B,EAC1B,sBAAsB,EACtB,qCAAqC,EACrC,6BAA6B,EAC7B,aAAa,EACb,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,WAAW,EACX,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,aAAa,EACb,uBAAuB,GACxB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,YAAY,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,6BAA6B,EAC7B,cAAc,GACf,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,YAAY,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -14,9 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.effectiveLeverage = exports.directionSign = exports.calculateUnrealizedPnl = exports.calculateRoe = exports.calculateRequiredMargin = exports.calculateRealizedPnl = exports.calculateNotionalValue = exports.calculateLiquidationDistance = exports.calculateEffectiveLeverage = exports.walkOrderbook = exports.resolveCloseSize = exports.priceFromPercent = exports.percentFromPrice = exports.findMatchingPosition = exports.expectedRealizedPnlForTriggerOrder = exports.expectedRealizedPnlForOpenOrder = exports.estimateRealizedPnl = exports.estimateFees = exports.calculateTriggerPrice = exports.calculateTriggerPercent = exports.calculateSize = exports.calculateRealizedPnlPercent = exports.calculatePositionSize = exports.calculateExpectedPnl = exports.buildQuote = exports.applySlippage = exports.FillClassification = exports.classifyFillFromPosition = exports.classifyFill = exports.PerpsError = exports.PerpsErrorMessage = exports.stringToFloat = exports.parseDecimal = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatNumber = exports.formatCompactUsd = exports.truncateDecimal = exports.scaleToInteger = exports.numberToDecimalString = exports.fromBaseUnitsNumber = exports.fromBaseUnits = exports.decimalToBaseUnits = exports.baseUnitsToDecimal = exports.requireProvider = exports.PerpsClient = exports.DEFAULT_API_URL = exports.createPerpsClient = void 0;
18
- exports.readValidatedRecord = exports.parseStoredRecord = exports.localStorageAdapter = exports.resolveSubscribeQuote = exports.QUOTE_THROTTLE_MS = exports.resolveQuoteMarket = exports.resolveQuote = exports.getTermsAcceptance = exports.getReferralStatus = exports.getReferralActivity = exports.getQuote = exports.getProviders = exports.getPositions = exports.getOrders = exports.getOrderbook = exports.getOrder = exports.getOhlcv = exports.getMeta = exports.getMarketsContext = exports.getMarkets = exports.getMarket = exports.LIFI_API_URL = exports.getGasRecommendation = exports.getFills = exports.getAssets = exports.getActivity = exports.getAccount = exports.executeAction = exports.createAction = exports.toPerpsMarketDisplay = exports.toMarketDisplay = exports.MarketRegistry = exports.isActiveMarket = exports.getMarketRegistry = exports.getDefaultMarketId = exports.DEFAULT_MARKET_ID = exports.toAssetDisplay = exports.getAssetRegistry = exports.AssetRegistry = exports.wouldImmediatelyLiquidate = exports.realizedPnlOnClose = exports.predictUnrealizedPnl = exports.predictNewLeverage = exports.predictAverageEntryPrice = exports.liquidationDistancePercent = exports.estimateUnrealizedPnl = exports.estimateNewLeverage = exports.estimateLiquidationPrice = exports.estimateIsolatedLiquidationPrice = exports.estimateAverageEntryPrice = void 0;
19
- exports.calculateWithdrawMax = exports.calculateTransferable = exports.snapOrderSize = exports.snapOrderPrice = exports.calculateRefuelAmount = exports.calculateOrderAmounts = exports.wsLog = exports.WsProviderBase = exports.WS_CHANNEL_TEARDOWN_LINGER_MS = exports.ReconnectingWebSocket = exports.PerpsWsClient = exports.DecodeChain = exports.cachePromise = exports.version = exports.name = exports.createWarnOnce = exports.signTypedDataWithSigner = exports.signTypedData = exports.selectUserSetupActions = exports.isSetupOptionFor = exports.triggerConditionFor = exports.isTwapOrder = exports.isTriggerOrder = exports.isTpSlOrder = exports.isTakeProfitOrder = exports.isStopLossOrder = exports.isRegularOrder = exports.isActiveOrderStatus = exports.ACTIVE_ORDER_STATUSES = exports.explorerTxUrlFromBase = exports.explorerTxUrl = exports.ExplorerChainId = exports.ROBINHOOD_USDG = exports.ROBINHOOD_NATIVE_GAS = exports.LIGHTER_USDC = exports.HYPERLIQUID_USDC = exports.ETHEREUM_USDC = exports.ETHEREUM_NATIVE_GAS = exports.paginateActivity = exports.resolveRetryPolicy = exports.LIFI_RETRY_DEFAULTS = exports.LIFI_REQUEST_KEY = exports.DISABLED_RETRY = exports.isAbortError = exports.fetchWithRetry = exports.errorCodeFromStatus = exports.createMemoryStorage = void 0;
17
+ exports.directionSign = exports.calculateUnrealizedPnl = exports.calculateRoe = exports.calculateRequiredMargin = exports.calculateRealizedPnl = exports.calculateNotionalValue = exports.calculateLiquidationDistance = exports.calculateEffectiveLeverage = exports.walkOrderbook = exports.resolveCloseSize = exports.priceFromPercent = exports.percentFromPrice = exports.findMatchingPosition = exports.expectedRealizedPnlForTriggerOrder = exports.expectedRealizedPnlForOpenOrder = exports.estimateRealizedPnl = exports.estimateFees = exports.calculateTriggerPrice = exports.calculateTriggerPercent = exports.calculateSize = exports.calculateRealizedPnlPercent = exports.calculatePositionSize = exports.calculateExpectedPnl = exports.buildQuote = exports.applySlippage = exports.FillClassification = exports.classifyFillFromPosition = exports.classifyFill = exports.PerpsError = exports.PerpsErrorMessage = exports.stringToFloat = exports.parseDecimal = exports.isDecimalString = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatNumber = exports.formatCompactUsd = exports.truncateDecimal = exports.scaleToInteger = exports.numberToDecimalString = exports.fromBaseUnitsNumber = exports.fromBaseUnits = exports.decimalToBaseUnits = exports.baseUnitsToDecimal = exports.requireProvider = exports.PerpsClient = exports.DEFAULT_API_URL = exports.createPerpsClient = void 0;
18
+ exports.resolveSubscribeQuote = exports.QUOTE_THROTTLE_MS = exports.resolveQuoteMarket = exports.resolveQuote = exports.getTermsAcceptance = exports.getReferralStatus = exports.getReferralActivity = exports.getQuote = exports.getProviders = exports.getPositions = exports.getOrders = exports.getOrderbook = exports.getOrder = exports.getOhlcv = exports.getMeta = exports.getMarketsContext = exports.getMarkets = exports.getMarket = exports.LIFI_API_URL = exports.getGasRecommendation = exports.getFills = exports.getAssets = exports.getActivity = exports.getAccount = exports.executeAction = exports.createAction = exports.toPerpsMarketDisplay = exports.toMarketDisplay = exports.MarketRegistry = exports.isActiveMarket = exports.getMarketRegistry = exports.getDefaultMarketId = exports.DEFAULT_MARKET_ID = exports.toAssetDisplay = exports.getAssetRegistry = exports.AssetRegistry = exports.wouldImmediatelyLiquidate = exports.realizedPnlOnClose = exports.predictUnrealizedPnl = exports.predictNewLeverage = exports.predictAverageEntryPrice = exports.positionSupportsMarginRemoval = exports.positionSupportsMarginAdjustment = exports.liquidationDistancePercent = exports.estimateUnrealizedPnl = exports.estimateNewLeverage = exports.estimateLiquidationPrice = exports.estimateIsolatedLiquidationPrice = exports.estimateAverageEntryPrice = exports.effectiveLeverage = void 0;
19
+ exports.calculateWithdrawMax = exports.calculateTransferable = exports.snapOrderSize = exports.snapOrderPrice = exports.calculateRefuelAmount = exports.calculateOrderAmounts = exports.wsLog = exports.WsProviderBase = exports.WS_CHANNEL_TEARDOWN_LINGER_MS = exports.ReconnectingWebSocket = exports.PerpsWsClient = exports.DecodeChain = exports.cachePromise = exports.version = exports.name = exports.createWarnOnce = exports.signTypedDataWithSigner = exports.signTypedData = exports.selectUserSetupActions = exports.isSetupOptionFor = exports.triggerConditionFor = exports.isTwapOrder = exports.isTriggerOrder = exports.isTpSlOrder = exports.isTakeProfitOrder = exports.isStopLossOrder = exports.isRegularOrder = exports.isActiveOrderStatus = exports.ACTIVE_ORDER_STATUSES = exports.explorerTxUrlFromBase = exports.explorerTxUrl = exports.ExplorerChainId = exports.ROBINHOOD_USDG = exports.ROBINHOOD_NATIVE_GAS = exports.LIGHTER_USDC = exports.HYPERLIQUID_USDC = exports.ETHEREUM_USDC = exports.ETHEREUM_NATIVE_GAS = exports.paginateActivity = exports.resolveRetryPolicy = exports.LIFI_RETRY_DEFAULTS = exports.LIFI_REQUEST_KEY = exports.DISABLED_RETRY = exports.isAbortError = exports.fetchWithRetry = exports.errorCodeFromStatus = exports.createMemoryStorage = exports.readValidatedRecord = exports.parseStoredRecord = exports.localStorageAdapter = void 0;
20
20
  __exportStar(require("@lifi/perps-types"), exports);
21
21
  var createPerpsClient_js_1 = require("./client/createPerpsClient.js");
22
22
  Object.defineProperty(exports, "createPerpsClient", { enumerable: true, get: function () { return createPerpsClient_js_1.createPerpsClient; } });
@@ -41,6 +41,7 @@ Object.defineProperty(exports, "formatSignedPercent", { enumerable: true, get: f
41
41
  Object.defineProperty(exports, "formatSignedUsd", { enumerable: true, get: function () { return format_js_1.formatSignedUsd; } });
42
42
  Object.defineProperty(exports, "formatUsd", { enumerable: true, get: function () { return format_js_1.formatUsd; } });
43
43
  var parse_js_1 = require("./decimal/parse.js");
44
+ Object.defineProperty(exports, "isDecimalString", { enumerable: true, get: function () { return parse_js_1.isDecimalString; } });
44
45
  Object.defineProperty(exports, "parseDecimal", { enumerable: true, get: function () { return parse_js_1.parseDecimal; } });
45
46
  Object.defineProperty(exports, "stringToFloat", { enumerable: true, get: function () { return parse_js_1.stringToFloat; } });
46
47
  var constants_js_1 = require("./errors/constants.js");
@@ -85,6 +86,8 @@ Object.defineProperty(exports, "estimateLiquidationPrice", { enumerable: true, g
85
86
  Object.defineProperty(exports, "estimateNewLeverage", { enumerable: true, get: function () { return position_js_1.estimateNewLeverage; } });
86
87
  Object.defineProperty(exports, "estimateUnrealizedPnl", { enumerable: true, get: function () { return position_js_1.estimateUnrealizedPnl; } });
87
88
  Object.defineProperty(exports, "liquidationDistancePercent", { enumerable: true, get: function () { return position_js_1.liquidationDistancePercent; } });
89
+ Object.defineProperty(exports, "positionSupportsMarginAdjustment", { enumerable: true, get: function () { return position_js_1.positionSupportsMarginAdjustment; } });
90
+ Object.defineProperty(exports, "positionSupportsMarginRemoval", { enumerable: true, get: function () { return position_js_1.positionSupportsMarginRemoval; } });
88
91
  Object.defineProperty(exports, "predictAverageEntryPrice", { enumerable: true, get: function () { return position_js_1.predictAverageEntryPrice; } });
89
92
  Object.defineProperty(exports, "predictNewLeverage", { enumerable: true, get: function () { return position_js_1.predictNewLeverage; } });
90
93
  Object.defineProperty(exports, "predictUnrealizedPnl", { enumerable: true, get: function () { return position_js_1.predictUnrealizedPnl; } });
@@ -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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"}
@@ -1,3 +1,4 @@
1
+ import { type Position } from '@lifi/perps-types';
1
2
  export declare function directionSign(isLong: boolean): 1 | -1;
2
3
  export declare function calculateNotionalValue(size: number, price: number): number;
3
4
  export declare function calculateUnrealizedPnl(entryPrice: number, currentPrice: number, size: number): number;
@@ -53,4 +54,6 @@ export declare function calculateRealizedPnl(params: {
53
54
  isLong: boolean;
54
55
  }): number;
55
56
  export declare const realizedPnlOnClose: typeof calculateRealizedPnl;
57
+ export declare function positionSupportsMarginAdjustment(position: Position): boolean;
58
+ export declare function positionSupportsMarginRemoval(position: Position): boolean;
56
59
  //# sourceMappingURL=position.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAErD;AAUD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1E;AAWD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,CAKR;AAUD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQhE;AAUD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,MAAM,CAQR;AAWD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,CAMT;AAKD,eAAO,MAAM,0BAA0B,qCAA+B,CAAA;AAYtE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,CAST;AAKD,eAAO,MAAM,iBAAiB,mCAA6B,CAAA;AAoB3D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,qBAAqB,EAAE,MAAM,CAAA;CAC9B,GAAG,MAAM,GAAG,SAAS,CAqBrB;AAKD,eAAO,MAAM,gCAAgC,iCAA2B,CAAA;AAUxE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,OAAO,CAQV;AAkBD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,GAAG,SAAS,CAiBrB;AAKD,eAAO,MAAM,wBAAwB,kCAA4B,CAAA;AAajE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,GAAG,SAAS,CAarB;AAKD,eAAO,MAAM,kBAAkB,4BAAsB,CAAA;AAUrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,MAAM,CAUT;AAKD,eAAO,MAAM,oBAAoB,8BAAwB,CAAA;AAUzD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,MAAM,CAUT;AAKD,eAAO,MAAM,kBAAkB,6BAAuB,CAAA"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAA;AAQ1B,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAErD;AAUD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1E;AAWD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,CAKR;AAUD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQhE;AAUD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,MAAM,CAQR;AAWD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,CAMT;AAKD,eAAO,MAAM,0BAA0B,qCAA+B,CAAA;AAYtE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,CAST;AAKD,eAAO,MAAM,iBAAiB,mCAA6B,CAAA;AAoB3D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,qBAAqB,EAAE,MAAM,CAAA;CAC9B,GAAG,MAAM,GAAG,SAAS,CAqBrB;AAKD,eAAO,MAAM,gCAAgC,iCAA2B,CAAA;AAUxE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,OAAO,CAQV;AAkBD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,GAAG,SAAS,CAiBrB;AAKD,eAAO,MAAM,wBAAwB,kCAA4B,CAAA;AAajE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,GAAG,SAAS,CAarB;AAKD,eAAO,MAAM,kBAAkB,4BAAsB,CAAA;AAUrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,MAAM,CAUT;AAKD,eAAO,MAAM,oBAAoB,8BAAwB,CAAA;AAUzD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,MAAM,CAUT;AAKD,eAAO,MAAM,kBAAkB,6BAAuB,CAAA;AAQtD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAK5E;AAQD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAMzE"}
@@ -14,6 +14,9 @@ exports.estimateAverageEntryPrice = estimateAverageEntryPrice;
14
14
  exports.estimateNewLeverage = estimateNewLeverage;
15
15
  exports.estimateUnrealizedPnl = estimateUnrealizedPnl;
16
16
  exports.calculateRealizedPnl = calculateRealizedPnl;
17
+ exports.positionSupportsMarginAdjustment = positionSupportsMarginAdjustment;
18
+ exports.positionSupportsMarginRemoval = positionSupportsMarginRemoval;
19
+ const perps_types_1 = require("@lifi/perps-types");
17
20
  const big_js_1 = require("../decimal/big.js");
18
21
  function directionSign(isLong) {
19
22
  return isLong ? 1 : -1;
@@ -157,4 +160,13 @@ function calculateRealizedPnl(params) {
157
160
  .toNumber();
158
161
  }
159
162
  exports.realizedPnlOnClose = calculateRealizedPnl;
163
+ function positionSupportsMarginAdjustment(position) {
164
+ return (position.marginMode === perps_types_1.MarginMode.ISOLATED &&
165
+ position.market.positionMarginAdjustment !== perps_types_1.PositionMarginAdjustment.NONE);
166
+ }
167
+ function positionSupportsMarginRemoval(position) {
168
+ return (positionSupportsMarginAdjustment(position) &&
169
+ position.market.positionMarginAdjustment ===
170
+ perps_types_1.PositionMarginAdjustment.ADD_AND_REMOVE);
171
+ }
160
172
  //# sourceMappingURL=position.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@lifi/perps-sdk";
2
- export declare const version = "0.0.0-preview-143b69e";
2
+ export declare const version = "0.0.0-preview-0b4b647";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = '@lifi/perps-sdk';
5
- exports.version = '0.0.0-preview-143b69e';
5
+ exports.version = '0.0.0-preview-0b4b647';
6
6
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,4 @@
1
- import { type DecimalString, type Market } from '@lifi/perps-types';
1
+ import type { DecimalString, Market } from '@lifi/perps-types';
2
2
  import type { PerpsSDKClient } from '../types/provider.js';
3
3
  export interface OrderAmountsInput {
4
4
  sdk: PerpsSDKClient;
@@ -7,7 +7,6 @@ export interface OrderAmountsInput {
7
7
  amount: DecimalString;
8
8
  leverage: number;
9
9
  price: DecimalString;
10
- quoteDecimals?: number;
11
10
  }
12
11
  export interface OrderAmounts {
13
12
  margin: DecimalString;
@@ -1 +1 @@
1
- {"version":3,"file":"orderAmounts.d.ts","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,MAAM,EAEZ,MAAM,mBAAmB,CAAA;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI1D,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IAEd,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;IACpC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,aAAa,CAAA;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAGD,MAAM,WAAW,YAAY;IAK3B,MAAM,EAAE,aAAa,CAAA;IAErB,IAAI,EAAE,aAAa,CAAA;IAEnB,QAAQ,EAAE,aAAa,CAAA;CACxB;AAgFD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,YAAY,GAAG,IAAI,CAqDrB"}
1
+ {"version":3,"file":"orderAmounts.d.ts","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI1D,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IAEd,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;IACpC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,aAAa,CAAA;CACrB;AAGD,MAAM,WAAW,YAAY;IAM3B,MAAM,EAAE,aAAa,CAAA;IAErB,IAAI,EAAE,aAAa,CAAA;IAEnB,QAAQ,EAAE,aAAa,CAAA;CACxB;AAwBD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,YAAY,GAAG,IAAI,CAiCrB"}
@@ -4,43 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.calculateOrderAmounts = calculateOrderAmounts;
7
- const perps_types_1 = require("@lifi/perps-types");
8
7
  const big_js_1 = __importDefault(require("big.js"));
9
8
  const big_js_2 = require("../decimal/big.js");
10
- const PerpsError_js_1 = require("../errors/PerpsError.js");
9
+ const parse_js_1 = require("../decimal/parse.js");
11
10
  const snap_js_1 = require("./snap.js");
12
- const DEFAULT_QUOTE_DECIMALS = 2;
13
- const TEN = new big_js_1.default(10);
14
- function quoteAmount(value, decimals) {
15
- const truncated = value.round(decimals, big_js_1.default.roundDown);
16
- return truncated.eq(0) ? '0' : truncated.toFixed();
17
- }
18
- function coveringMargin(notional, leverage, decimals) {
19
- const scale = TEN.pow(decimals);
20
- const scaled = notional.times(scale);
21
- const remainder = scaled.mod(leverage);
22
- const whole = scaled.minus(remainder).div(leverage);
23
- const covering = remainder.eq(0) ? whole : whole.plus(1);
24
- return covering.eq(0) ? '0' : covering.div(scale).toFixed();
25
- }
26
- function executable(amounts) {
27
- const positive = new big_js_1.default(amounts.size).gt(0) &&
28
- new big_js_1.default(amounts.margin).gt(0) &&
29
- new big_js_1.default(amounts.notional).gt(0);
30
- return positive ? amounts : null;
31
- }
32
11
  function positiveDecimal(value) {
33
- if (!(0, perps_types_1.isDecimalString)(value)) {
12
+ if (!(0, parse_js_1.isDecimalString)(value)) {
34
13
  return null;
35
14
  }
36
15
  const parsed = new big_js_2.TruncBig(value);
37
16
  return parsed.gt(0) ? parsed : null;
38
17
  }
39
18
  function calculateOrderAmounts(input) {
40
- const { sdk, market, held, leverage, quoteDecimals = DEFAULT_QUOTE_DECIMALS, } = input;
41
- if (!Number.isInteger(quoteDecimals) || quoteDecimals < 0) {
42
- throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid quoteDecimals for order amounts: ${quoteDecimals}`);
43
- }
19
+ const { sdk, market, held, leverage } = input;
44
20
  const amount = positiveDecimal(input.amount);
45
21
  const price = positiveDecimal(input.price);
46
22
  if (amount === null ||
@@ -49,31 +25,22 @@ function calculateOrderAmounts(input) {
49
25
  leverage <= 0) {
50
26
  return null;
51
27
  }
52
- const leverageFactor = new big_js_2.TruncBig(leverage);
53
- if (held === 'size') {
54
- const size = (0, snap_js_1.snapOrderSize)(sdk, market, amount.toFixed());
55
- const notional = new big_js_2.TruncBig(size).times(price);
56
- return executable({
57
- margin: coveringMargin(notional, leverageFactor, quoteDecimals),
58
- size,
59
- notional: quoteAmount(notional, quoteDecimals),
60
- });
61
- }
62
- if (held === 'notional') {
63
- const notional = quoteAmount(amount, quoteDecimals);
64
- const exact = new big_js_2.TruncBig(notional);
65
- return executable({
66
- margin: coveringMargin(exact, leverageFactor, quoteDecimals),
67
- size: (0, snap_js_1.snapOrderSize)(sdk, market, exact.div(price).toFixed()),
68
- notional,
69
- });
28
+ const requested = held === 'size'
29
+ ? input.amount
30
+ : held === 'notional'
31
+ ? amount.div(price).toFixed()
32
+ : amount.times(leverage).div(price).toFixed();
33
+ const size = (0, snap_js_1.snapOrderSize)(sdk, market, requested);
34
+ if (new big_js_1.default(size).eq(0)) {
35
+ return null;
70
36
  }
71
- const margin = quoteAmount(amount, quoteDecimals);
72
- const notional = new big_js_2.TruncBig(margin).times(leverage);
73
- return executable({
74
- margin,
75
- size: (0, snap_js_1.snapOrderSize)(sdk, market, notional.div(price).toFixed()),
76
- notional: quoteAmount(notional, quoteDecimals),
77
- });
37
+ const notional = new big_js_2.TruncBig(size).times(price);
38
+ return {
39
+ margin: held === 'margin'
40
+ ? input.amount
41
+ : new big_js_2.DivBig(notional).div(leverage).toFixed(),
42
+ size,
43
+ notional: notional.toFixed(),
44
+ };
78
45
  }
79
46
  //# sourceMappingURL=orderAmounts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderAmounts.js","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orderAmounts.js","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":";;;;;AAsDA,sDAmCC;AAxFD,oDAAwB;AACxB,8CAAoD;AACpD,kDAAqD;AAErD,uCAAyC;AA2BzC,SAAS,eAAe,CAAC,KAAoB;IAC3C,IAAI,CAAC,IAAA,0BAAe,EAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,iBAAQ,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AACrC,CAAC;AAgBD,SAAgB,qBAAqB,CACnC,KAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1C,IACE,MAAM,KAAK,IAAI;QACf,KAAK,KAAK,IAAI;QACd,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,QAAQ,IAAI,CAAC,EACb,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GACb,IAAI,KAAK,MAAM;QACb,CAAC,CAAC,KAAK,CAAC,MAAM;QACd,CAAC,CAAC,IAAI,KAAK,UAAU;YACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;YAC7B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;IACnD,MAAM,IAAI,GAAG,IAAA,uBAAa,EAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAClD,IAAI,IAAI,gBAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAChD,OAAO;QACL,MAAM,EACJ,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,IAAI,eAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;QAClD,IAAI;QACJ,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE;KAC7B,CAAA;AACH,CAAC"}
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateRefuelAmount = calculateRefuelAmount;
4
4
  const perps_types_1 = require("@lifi/perps-types");
5
5
  const big_js_1 = require("../decimal/big.js");
6
+ const requireDecimal_js_1 = require("../decimal/requireDecimal.js");
6
7
  const PerpsError_js_1 = require("../errors/PerpsError.js");
7
- const requireDecimal_js_1 = require("./requireDecimal.js");
8
8
  function calculateRefuelAmount(input) {
9
9
  const { decimals } = input;
10
10
  if (!Number.isInteger(decimals) || decimals < 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"refuel.js","sourceRoot":"","sources":["../../../src/wire/refuel.ts"],"names":[],"mappings":";;AA+BA,sDAmBC;AAlDD,mDAAsE;AACtE,8CAA0C;AAC1C,2DAAoD;AACpD,2DAAoD;AA4BpD,SAAgB,qBAAqB,CACnC,KAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,6CAA6C,QAAQ,EAAE,CACxD,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,kCAAc,EAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,eAAM,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,QAAQ,CAAC;SACb,KAAK,CAAC,QAAQ,EAAE,eAAM,CAAC,OAAO,CAAC;SAC/B,OAAO,CAAC,QAAQ,CAAC,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"refuel.js","sourceRoot":"","sources":["../../../src/wire/refuel.ts"],"names":[],"mappings":";;AA+BA,sDAmBC;AAlDD,mDAAsE;AACtE,8CAA0C;AAC1C,oEAA6D;AAC7D,2DAAoD;AA4BpD,SAAgB,qBAAqB,CACnC,KAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,6CAA6C,QAAQ,EAAE,CACxD,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,kCAAc,EAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,eAAM,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,QAAQ,CAAC;SACb,KAAK,CAAC,QAAQ,EAAE,eAAM,CAAC,OAAO,CAAC;SAC/B,OAAO,CAAC,QAAQ,CAAC,CAAA;AACtB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateTransferable = calculateTransferable;
4
- const requireDecimal_js_1 = require("./requireDecimal.js");
4
+ const requireDecimal_js_1 = require("../decimal/requireDecimal.js");
5
5
  function calculateTransferable(venueFigure, units) {
6
6
  const figure = (0, requireDecimal_js_1.requireDecimal)(venueFigure, 'venueFigure');
7
7
  const held = (0, requireDecimal_js_1.requireDecimal)(units, 'units');
@@ -1 +1 @@
1
- {"version":3,"file":"transferable.js","sourceRoot":"","sources":["../../../src/wire/transferable.ts"],"names":[],"mappings":";;AAeA,sDAUC;AAxBD,2DAAoD;AAcpD,SAAgB,qBAAqB,CACnC,WAA0B,EAC1B,KAAoB;IAEpB,MAAM,MAAM,GAAG,IAAA,kCAAc,EAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,IAAA,kCAAc,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC"}
1
+ {"version":3,"file":"transferable.js","sourceRoot":"","sources":["../../../src/wire/transferable.ts"],"names":[],"mappings":";;AAeA,sDAUC;AAxBD,oEAA6D;AAc7D,SAAgB,qBAAqB,CACnC,WAA0B,EAC1B,KAAoB;IAEpB,MAAM,MAAM,GAAG,IAAA,kCAAc,EAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,IAAA,kCAAc,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAajE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CACP,mBAAmB,EACnB,WAAW,GAAG,eAAe,GAAG,eAAe,CAChD,GACA,aAAa,CASf"}
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAYjE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CACP,mBAAmB,EACnB,WAAW,GAAG,eAAe,GAAG,eAAe,CAChD,GACA,aAAa,CASf"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateWithdrawMax = calculateWithdrawMax;
4
- const requireDecimal_js_1 = require("./requireDecimal.js");
4
+ const requireDecimal_js_1 = require("../decimal/requireDecimal.js");
5
5
  function calculateWithdrawMax(row) {
6
6
  const available = (0, requireDecimal_js_1.requireDecimal)(row.available, 'available');
7
7
  if (row.isFeeDeducted !== false || row.withdrawalFee === undefined) {