@lifi/perps-sdk 0.0.0-preview-6f84de1 → 0.0.0-preview-3a2890c

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 (112) hide show
  1. package/README.md +12 -15
  2. package/dist/cjs/decimal/compare.d.ts +1 -0
  3. package/dist/cjs/decimal/compare.d.ts.map +1 -1
  4. package/dist/cjs/decimal/compare.js +9 -0
  5. package/dist/cjs/decimal/compare.js.map +1 -1
  6. package/dist/cjs/decimal/convert.d.ts +0 -1
  7. package/dist/cjs/decimal/convert.d.ts.map +1 -1
  8. package/dist/cjs/decimal/convert.js +3 -3
  9. package/dist/cjs/decimal/convert.js.map +1 -1
  10. package/dist/cjs/decimal/parse.d.ts +4 -1
  11. package/dist/cjs/decimal/parse.d.ts.map +1 -1
  12. package/dist/cjs/decimal/parse.js +48 -7
  13. package/dist/cjs/decimal/parse.js.map +1 -1
  14. package/dist/cjs/index.d.ts +5 -5
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js +10 -5
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/math/fills.d.ts +1 -1
  19. package/dist/cjs/math/fills.d.ts.map +1 -1
  20. package/dist/cjs/math/fills.js +27 -13
  21. package/dist/cjs/math/fills.js.map +1 -1
  22. package/dist/cjs/math/order.d.ts +2 -1
  23. package/dist/cjs/math/order.d.ts.map +1 -1
  24. package/dist/cjs/math/order.js +13 -0
  25. package/dist/cjs/math/order.js.map +1 -1
  26. package/dist/cjs/services/getGasRecommendation.js +1 -1
  27. package/dist/cjs/services/getGasRecommendation.js.map +1 -1
  28. package/dist/cjs/transport/request.d.ts +0 -1
  29. package/dist/cjs/transport/request.d.ts.map +1 -1
  30. package/dist/cjs/transport/request.js +2 -2
  31. package/dist/cjs/transport/request.js.map +1 -1
  32. package/dist/cjs/utils/warnOnce.d.ts +1 -0
  33. package/dist/cjs/utils/warnOnce.d.ts.map +1 -1
  34. package/dist/cjs/utils/warnOnce.js +7 -1
  35. package/dist/cjs/utils/warnOnce.js.map +1 -1
  36. package/dist/cjs/version.d.ts +1 -1
  37. package/dist/cjs/version.js +1 -1
  38. package/dist/cjs/wire/refuel.d.ts +1 -4
  39. package/dist/cjs/wire/refuel.d.ts.map +1 -1
  40. package/dist/cjs/wire/refuel.js +4 -21
  41. package/dist/cjs/wire/refuel.js.map +1 -1
  42. package/dist/esm/decimal/compare.d.ts +9 -0
  43. package/dist/esm/decimal/compare.d.ts.map +1 -1
  44. package/dist/esm/decimal/compare.js +13 -0
  45. package/dist/esm/decimal/compare.js.map +1 -1
  46. package/dist/esm/decimal/convert.d.ts +0 -1
  47. package/dist/esm/decimal/convert.d.ts.map +1 -1
  48. package/dist/esm/decimal/convert.js +1 -1
  49. package/dist/esm/decimal/convert.js.map +1 -1
  50. package/dist/esm/decimal/parse.d.ts +31 -3
  51. package/dist/esm/decimal/parse.d.ts.map +1 -1
  52. package/dist/esm/decimal/parse.js +68 -21
  53. package/dist/esm/decimal/parse.js.map +1 -1
  54. package/dist/esm/index.d.ts +5 -5
  55. package/dist/esm/index.d.ts.map +1 -1
  56. package/dist/esm/index.js +5 -5
  57. package/dist/esm/index.js.map +1 -1
  58. package/dist/esm/math/fills.d.ts +6 -3
  59. package/dist/esm/math/fills.d.ts.map +1 -1
  60. package/dist/esm/math/fills.js +30 -16
  61. package/dist/esm/math/fills.js.map +1 -1
  62. package/dist/esm/math/order.d.ts +13 -3
  63. package/dist/esm/math/order.d.ts.map +1 -1
  64. package/dist/esm/math/order.js +23 -2
  65. package/dist/esm/math/order.js.map +1 -1
  66. package/dist/esm/services/getGasRecommendation.js +1 -1
  67. package/dist/esm/services/getGasRecommendation.js.map +1 -1
  68. package/dist/esm/transport/request.d.ts +0 -5
  69. package/dist/esm/transport/request.d.ts.map +1 -1
  70. package/dist/esm/transport/request.js +2 -2
  71. package/dist/esm/transport/request.js.map +1 -1
  72. package/dist/esm/utils/warnOnce.d.ts +7 -0
  73. package/dist/esm/utils/warnOnce.d.ts.map +1 -1
  74. package/dist/esm/utils/warnOnce.js +11 -0
  75. package/dist/esm/utils/warnOnce.js.map +1 -1
  76. package/dist/esm/version.d.ts +1 -1
  77. package/dist/esm/version.js +1 -1
  78. package/dist/esm/wire/refuel.d.ts +14 -24
  79. package/dist/esm/wire/refuel.d.ts.map +1 -1
  80. package/dist/esm/wire/refuel.js +15 -36
  81. package/dist/esm/wire/refuel.js.map +1 -1
  82. package/dist/types/decimal/compare.d.ts +9 -0
  83. package/dist/types/decimal/compare.d.ts.map +1 -1
  84. package/dist/types/decimal/convert.d.ts +0 -1
  85. package/dist/types/decimal/convert.d.ts.map +1 -1
  86. package/dist/types/decimal/parse.d.ts +31 -3
  87. package/dist/types/decimal/parse.d.ts.map +1 -1
  88. package/dist/types/index.d.ts +5 -5
  89. package/dist/types/index.d.ts.map +1 -1
  90. package/dist/types/math/fills.d.ts +6 -3
  91. package/dist/types/math/fills.d.ts.map +1 -1
  92. package/dist/types/math/order.d.ts +13 -3
  93. package/dist/types/math/order.d.ts.map +1 -1
  94. package/dist/types/transport/request.d.ts +0 -5
  95. package/dist/types/transport/request.d.ts.map +1 -1
  96. package/dist/types/utils/warnOnce.d.ts +7 -0
  97. package/dist/types/utils/warnOnce.d.ts.map +1 -1
  98. package/dist/types/version.d.ts +1 -1
  99. package/dist/types/wire/refuel.d.ts +14 -24
  100. package/dist/types/wire/refuel.d.ts.map +1 -1
  101. package/package.json +2 -2
  102. package/src/decimal/compare.ts +14 -0
  103. package/src/decimal/convert.ts +1 -1
  104. package/src/decimal/parse.ts +80 -22
  105. package/src/index.ts +11 -7
  106. package/src/math/fills.ts +31 -17
  107. package/src/math/order.ts +32 -2
  108. package/src/services/getGasRecommendation.ts +1 -1
  109. package/src/transport/request.ts +2 -7
  110. package/src/utils/warnOnce.ts +18 -0
  111. package/src/version.ts +1 -1
  112. package/src/wire/refuel.ts +18 -54
package/README.md CHANGED
@@ -268,19 +268,13 @@ passes through a `number`:
268
268
  provider.
269
269
  - `calculateWithdrawMax(row)` gives `WithdrawableBalance.max` from
270
270
  `available`, `withdrawalFee` and `isFeeDeducted`.
271
- - `calculateRefuelAmount({ recommendedAmount, recommendedUsd, nativeBalance, priceUsd, decimals })`
272
- gives the source-token amount that buys the native gas deficit. The
273
- deficit is `recommendedAmount` minus `nativeBalance`, both in base units,
274
- valued pro rata on `recommendedUsd`. The helper adds
275
- `REFUEL_FEE_MARGIN_PERCENT` (20%) for the route fees, divides by
276
- `priceUsd`, rounds **up** onto the token grid and keeps trailing zeros to
277
- `decimals`, so a refuel never lands short. It gives `undefined` when the
278
- wallet already holds the recommendation, or when the recommendation, its
279
- USD value or the price is not greater than zero.
271
+ - `calculateRefuelAmount({ gasUsd, priceUsd, decimals })` divides the
272
+ recommended gas value by the source-token price, rounds **up** onto the
273
+ token grid and keeps trailing zeros to `decimals`, so a refuel never lands
274
+ short. It gives `undefined` when either input is not greater than zero.
280
275
 
281
276
  Each one throws `PerpsError(ValidationError)`, naming the field, when an
282
- input is not a `DecimalString`. `calculateRefuelAmount` also throws when a
283
- base-unit input is not an integer string.
277
+ input is not a `DecimalString`.
284
278
 
285
279
  ## Numbers
286
280
 
@@ -307,12 +301,15 @@ digits. It has no grouping, exponent, currency sign or whitespace. `'0.5'` and
307
301
 
308
302
  | Tier | Holds | In → out | Rule |
309
303
  | ---------- | -------------------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------- |
310
- | `decimal/` | `parseDecimal`, `<a>To<B>` conversions, `format*` | representation → representation | No domain words. Conversions throw on invalid input. |
304
+ | `decimal/` | `asDecimalString`, `<a>To<B>` conversions, `format*` | representation → representation | No domain words. See the vocabulary for each failure mode. |
311
305
  | `math/` | display-tier formulas (`calculate*`, `estimate*`, …) | `number` → `number` | Results are for `format*`. Never send one to a venue. |
312
306
  | `wire/` | `calculateOrderAmounts`, `snapOrder*`, account helpers | `DecimalString` → `DecimalString` | Venue-ready values, snapped by the market's own provider. |
313
307
 
314
308
  A value for a venue comes from `wire/` or from a provider field. A value for a
315
- screen goes through `parseDecimal`, then `math/`, then `format*`.
309
+ screen goes through `decimalStringToNumber`, then `math/`, then `format*`. A
310
+ mapper reads a venue value with `asDecimalString`, which never throws; account
311
+ math that must not go on with a bad total uses `requireVenueDecimal`, which
312
+ throws.
316
313
 
317
314
  ### Vocabulary
318
315
 
@@ -320,8 +317,8 @@ One verb names one kind of transformation.
320
317
 
321
318
  | Verb | Input → output | Fallible | Example |
322
319
  | --------------------------- | -------------------------------------------------- | --------------------------------- | ---------------------------------------------------------- |
323
- | `parse<X>` | `string` → typed value, or `undefined` on garbage | yes | `parseDecimal` |
324
- | `<a>To<B>` | representation A → B, no domain meaning; A and B are each `baseUnits`, `decimal`, `decimalString` or `number` | throws on invalid, never guesses | `decimalToBaseUnits`, `baseUnitsToDecimal`, `numberToDecimalString` |
320
+ | `parse<X>` | `string` → typed value, or `undefined` on garbage | yes | `parseStoredRecord` |
321
+ | `<a>To<B>` | representation A → B, no domain meaning; A and B are each `baseUnits`, `decimal`, `decimalString`, `formattedString` or `number` | throws on invalid, never guesses; a `<a>ToNumber` for display gives `undefined` | `decimalToBaseUnits`, `numberToDecimalString`, `decimalStringToNumber`, `formattedStringToNumber` |
325
322
  | `format<X>` | value → human string (grouped, localised) | no; renders a placeholder | `formatUsd`, `formatNumber` |
326
323
  | `snap<X>` | `DecimalString` → venue-grid `DecimalString` | throws on a missing grid | `snapOrderSize`, `snapOrderPrice`, `truncateDecimal` |
327
324
  | `calculate<X>` | values → exact result by formula | no | `calculateNotionalValue`, `calculateOrderAmounts` |
@@ -1,3 +1,4 @@
1
1
  import type { DecimalString } from '@lifi/perps-types';
2
2
  export declare function isDecimalStringGreaterThan(a: DecimalString, b: DecimalString): boolean;
3
+ export declare function isDecimalStringZero(value: DecimalString): boolean;
3
4
  //# sourceMappingURL=compare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/decimal/compare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAWtD,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,GACf,OAAO,CAET"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/decimal/compare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAatD,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,GACf,OAAO,CAET;AAUD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAEjE"}
@@ -1,8 +1,17 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.isDecimalStringGreaterThan = isDecimalStringGreaterThan;
7
+ exports.isDecimalStringZero = isDecimalStringZero;
8
+ const big_js_1 = __importDefault(require("big.js"));
9
+ const parse_js_1 = require("./parse.js");
4
10
  const requireDecimal_js_1 = require("./requireDecimal.js");
5
11
  function isDecimalStringGreaterThan(a, b) {
6
12
  return (0, requireDecimal_js_1.requireDecimal)(a, 'a').gt((0, requireDecimal_js_1.requireDecimal)(b, 'b'));
7
13
  }
14
+ function isDecimalStringZero(value) {
15
+ return (0, parse_js_1.isDecimalString)(value) && new big_js_1.default(value).eq(0);
16
+ }
8
17
  //# sourceMappingURL=compare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/decimal/compare.ts"],"names":[],"mappings":";;AAWA,gEAKC;AAfD,2DAAoD;AAUpD,SAAgB,0BAA0B,CACxC,CAAgB,EAChB,CAAgB;IAEhB,OAAO,IAAA,kCAAc,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,IAAA,kCAAc,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/decimal/compare.ts"],"names":[],"mappings":";;;;;AAaA,gEAKC;AAUD,kDAEC;AA7BD,oDAAwB;AACxB,yCAA4C;AAC5C,2DAAoD;AAUpD,SAAgB,0BAA0B,CACxC,CAAgB,EAChB,CAAgB;IAEhB,OAAO,IAAA,kCAAc,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,IAAA,kCAAc,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAC1D,CAAC;AAUD,SAAgB,mBAAmB,CAAC,KAAoB;IACtD,OAAO,IAAA,0BAAe,EAAC,KAAK,CAAC,IAAI,IAAI,gBAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { type DecimalString } from '@lifi/perps-types';
2
2
  export type BaseUnitsRounding = 'truncate' | 'round';
3
3
  export declare const decimalToBaseUnits: (value: DecimalString, decimals: number, rounding: BaseUnitsRounding) => number;
4
- export declare const BASE_UNITS_PATTERN: RegExp;
5
4
  export declare function baseUnitsToDecimal(amount: DecimalString, decimals: number): DecimalString;
6
5
  export declare function truncateDecimal(value: DecimalString, decimals: number): DecimalString;
7
6
  export declare function numberToDecimalString(value: number): DecimalString;
@@ -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;AAapD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,UAAU,MAAM,EAChB,UAAU,iBAAiB,KAC1B,MAiBF,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAe3C,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,aAAa,CAcf;AAiBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,aAAa,CAaf;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;AActE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAA;AAapD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,UAAU,MAAM,EAChB,UAAU,iBAAiB,KAC1B,MAiBF,CAAA;AAiBD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,aAAa,CAcf;AAiBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,aAAa,CAaf;AAYD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CASlE"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BASE_UNITS_PATTERN = exports.decimalToBaseUnits = void 0;
6
+ exports.decimalToBaseUnits = void 0;
7
7
  exports.baseUnitsToDecimal = baseUnitsToDecimal;
8
8
  exports.truncateDecimal = truncateDecimal;
9
9
  exports.numberToDecimalString = numberToDecimalString;
@@ -25,12 +25,12 @@ const decimalToBaseUnits = (value, decimals, rounding) => {
25
25
  return scaled.toNumber();
26
26
  };
27
27
  exports.decimalToBaseUnits = decimalToBaseUnits;
28
- exports.BASE_UNITS_PATTERN = /^-?\d+$/;
28
+ const BASE_UNITS_PATTERN = /^-?\d+$/;
29
29
  function baseUnitsToDecimal(amount, decimals) {
30
30
  if (!Number.isInteger(decimals) || decimals < 0) {
31
31
  throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`baseUnitsToDecimal(decimals)\`: ${decimals} is not a non-negative integer.`);
32
32
  }
33
- if (!exports.BASE_UNITS_PATTERN.test(amount)) {
33
+ if (!BASE_UNITS_PATTERN.test(amount)) {
34
34
  throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`baseUnitsToDecimal(amount)\`: '${amount}' is not an integer base-unit string.`);
35
35
  }
36
36
  return (0, viem_1.formatUnits)(BigInt(amount), decimals);
@@ -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,5 +1,8 @@
1
1
  import { type DecimalString } from '@lifi/perps-types';
2
- export declare function parseDecimal(value: DecimalString | string | null | undefined): number | undefined;
2
+ export declare function formattedStringToNumber(text: string | null | undefined): number | undefined;
3
+ export declare function decimalStringToNumber(value: DecimalString | null | undefined): number | undefined;
3
4
  export declare function isDecimalString(value: unknown): value is DecimalString;
4
5
  export declare function validateDecimalString(value: DecimalString, field: string): DecimalString;
6
+ export declare function asDecimalString(value: unknown): DecimalString | undefined;
7
+ export declare function requireVenueDecimal(value: unknown, field: string, tool: string): DecimalString;
5
8
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAA;AAqC1B,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;AAWD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,GACZ,aAAa,CAQf"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAA;AA0B1B,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,MAAM,GAAG,SAAS,CAYpB;AAUD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GACtC,MAAM,GAAG,SAAS,CAMpB;AAOD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAWD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,GACZ,aAAa,CAQf;AAUD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAgBzE;AAUD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,aAAa,CAWf"}
@@ -1,9 +1,16 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseDecimal = parseDecimal;
6
+ exports.formattedStringToNumber = formattedStringToNumber;
7
+ exports.decimalStringToNumber = decimalStringToNumber;
4
8
  exports.isDecimalString = isDecimalString;
5
9
  exports.validateDecimalString = validateDecimalString;
10
+ exports.asDecimalString = asDecimalString;
11
+ exports.requireVenueDecimal = requireVenueDecimal;
6
12
  const perps_types_1 = require("@lifi/perps-types");
13
+ const big_js_1 = __importDefault(require("big.js"));
7
14
  const PerpsError_js_1 = require("../errors/PerpsError.js");
8
15
  function toFloat(value) {
9
16
  if (!value) {
@@ -16,17 +23,24 @@ function toFloat(value) {
16
23
  return parseFloat(cleaned);
17
24
  }
18
25
  const FORMATTED_NUMBER = /^(?:[+-]\s*)?(?:\$\s*)?(?:(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:\s*(?:%|USD))?$/i;
19
- function parseDecimal(value) {
20
- if (value == null) {
26
+ function formattedStringToNumber(text) {
27
+ if (text == null) {
21
28
  return undefined;
22
29
  }
23
- if (value.trim() === '') {
24
- return toFloat(value);
30
+ if (text.trim() === '') {
31
+ return 0;
25
32
  }
26
- if (!FORMATTED_NUMBER.test(value.trim())) {
33
+ if (!FORMATTED_NUMBER.test(text.trim())) {
27
34
  return undefined;
28
35
  }
29
- const parsed = toFloat(value);
36
+ const parsed = toFloat(text);
37
+ return Number.isFinite(parsed) ? parsed : undefined;
38
+ }
39
+ function decimalStringToNumber(value) {
40
+ if (!isDecimalString(value)) {
41
+ return undefined;
42
+ }
43
+ const parsed = Number(value);
30
44
  return Number.isFinite(parsed) ? parsed : undefined;
31
45
  }
32
46
  function isDecimalString(value) {
@@ -38,4 +52,31 @@ function validateDecimalString(value, field) {
38
52
  }
39
53
  return value;
40
54
  }
55
+ function asDecimalString(value) {
56
+ if (isDecimalString(value)) {
57
+ return value;
58
+ }
59
+ if (typeof value !== 'string' && typeof value !== 'number') {
60
+ return undefined;
61
+ }
62
+ if (typeof value === 'number' && !Number.isFinite(value)) {
63
+ return undefined;
64
+ }
65
+ try {
66
+ const parsed = new big_js_1.default(value);
67
+ return (parsed.eq(0) ? new big_js_1.default(0) : parsed).toFixed();
68
+ }
69
+ catch {
70
+ return undefined;
71
+ }
72
+ }
73
+ function requireVenueDecimal(value, field, tool) {
74
+ const decimal = asDecimalString(value);
75
+ if (decimal !== undefined) {
76
+ return decimal;
77
+ }
78
+ const error = new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `${tool} field \`${field}\` is not a valid decimal: '${String(value)}'`);
79
+ error.tool = tool;
80
+ throw error;
81
+ }
41
82
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":";;AAyCA,oCAcC;AAOD,0CAEC;AAWD,sDAWC;AAtFD,mDAI0B;AAC1B,2DAAoD;AAepD,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;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;AAWD,SAAgB,qBAAqB,CACnC,KAAoB,EACpB,KAAa;IAEb,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,aAAa,KAAK,QAAQ,KAAK,4BAA4B,CAC5D,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,17 @@ export * from '@lifi/perps-types';
2
2
  export { createPerpsClient, DEFAULT_API_URL, } from './client/createPerpsClient.js';
3
3
  export { PerpsClient } from './client/PerpsClient.js';
4
4
  export { requireProvider } from './client/requireProvider.js';
5
- export { isDecimalStringGreaterThan } from './decimal/compare.js';
5
+ export { isDecimalStringGreaterThan, isDecimalStringZero, } from './decimal/compare.js';
6
6
  export type { BaseUnitsRounding } from './decimal/convert.js';
7
7
  export { baseUnitsToDecimal, decimalToBaseUnits, numberToDecimalString, truncateDecimal, } from './decimal/convert.js';
8
8
  export type { FormatOptions, RoundingMode } from './decimal/format.js';
9
9
  export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
10
- export { isDecimalString, parseDecimal, validateDecimalString, } from './decimal/parse.js';
10
+ export { asDecimalString, decimalStringToNumber, formattedStringToNumber, isDecimalString, requireVenueDecimal, validateDecimalString, } from './decimal/parse.js';
11
11
  export { PerpsErrorMessage } from './errors/constants.js';
12
12
  export { PerpsError } from './errors/PerpsError.js';
13
13
  export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
14
14
  export type { ExpectedPnl } from './math/order.js';
15
- export { applySlippage, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, walkOrderbook, } from './math/order.js';
15
+ export { applySlippage, applySlippageToPrice, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, walkOrderbook, } from './math/order.js';
16
16
  export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, wouldImmediatelyLiquidate, } from './math/position.js';
17
17
  export { AssetRegistry, getAssetRegistry, toAssetDisplay, } from './registry/assetRegistry.js';
18
18
  export type { DefaultMarketProvider } from './registry/marketRegistry.js';
@@ -78,7 +78,7 @@ export { ExplorerChainId, explorerTxUrl, explorerTxUrlFromBase, } from './utils/
78
78
  export { ACTIVE_ORDER_STATUSES, isActiveOrderStatus, isRegularOrder, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, isTriggerOrder, isTwapOrder, triggerConditionFor, } from './utils/orderClassification.js';
79
79
  export { isSetupOptionFor, selectUserSetupActions, } from './utils/setupActions.js';
80
80
  export { signTypedData, signTypedDataWithSigner, } from './utils/signTypedData.js';
81
- export { createWarnOnce } from './utils/warnOnce.js';
81
+ export { createWarnOnce, warnSkippedVenueRow } from './utils/warnOnce.js';
82
82
  export { name, version } from './version.js';
83
83
  export { cachePromise } from './websocket/cachePromise.js';
84
84
  export type { DecodeChainMode } from './websocket/decodeChain.js';
@@ -93,7 +93,7 @@ export { wsLog } from './websocket/wsLog.js';
93
93
  export type { OrderAmounts, OrderAmountsInput, } from './wire/orderAmounts.js';
94
94
  export { calculateOrderAmounts } from './wire/orderAmounts.js';
95
95
  export type { RefuelAmountInput } from './wire/refuel.js';
96
- export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
96
+ export { calculateRefuelAmount } from './wire/refuel.js';
97
97
  export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
98
98
  export { calculateTransferable } from './wire/transferable.js';
99
99
  export { calculateWithdrawMax } from './wire/withdraw.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,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,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,EACL,eAAe,EACf,YAAY,EACZ,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,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,2BAA2B,EAC3B,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,gCAAgC,EAChC,6BAA6B,EAC7B,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,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,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.AssetRegistry = exports.wouldImmediatelyLiquidate = exports.positionSupportsMarginRemoval = exports.positionSupportsMarginAdjustment = exports.estimateUnrealizedPnl = exports.estimateNewLeverage = exports.estimateLiquidationPrice = exports.estimateAverageEntryPrice = exports.calculateUnrealizedPnl = exports.calculateRoe = exports.calculateRequiredMargin = exports.calculateRealizedPnl = exports.calculateNotionalValue = exports.calculateLiquidationDistance = exports.calculateEffectiveLeverage = exports.walkOrderbook = exports.resolveCloseSize = exports.findMatchingPosition = exports.estimateRealizedPnl = exports.estimateFees = exports.calculateTriggerPrice = exports.calculateTriggerPercent = exports.calculateSize = exports.calculateRealizedPnlPercent = exports.calculateExpectedPnl = exports.buildQuote = exports.applySlippage = exports.FillClassification = exports.classifyFillFromPosition = exports.classifyFill = exports.PerpsError = exports.PerpsErrorMessage = exports.validateDecimalString = exports.parseDecimal = exports.isDecimalString = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatNumber = exports.formatCompactUsd = exports.truncateDecimal = exports.numberToDecimalString = exports.decimalToBaseUnits = exports.baseUnitsToDecimal = exports.isDecimalStringGreaterThan = exports.requireProvider = exports.PerpsClient = exports.DEFAULT_API_URL = exports.createPerpsClient = void 0;
18
- 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 = 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 = void 0;
19
- exports.calculateWithdrawMax = exports.calculateTransferable = exports.snapOrderSize = exports.snapOrderPrice = exports.REFUEL_FEE_MARGIN_PERCENT = 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 = void 0;
17
+ exports.estimateNewLeverage = exports.estimateLiquidationPrice = exports.estimateAverageEntryPrice = exports.calculateUnrealizedPnl = exports.calculateRoe = exports.calculateRequiredMargin = exports.calculateRealizedPnl = exports.calculateNotionalValue = exports.calculateLiquidationDistance = exports.calculateEffectiveLeverage = exports.walkOrderbook = exports.resolveCloseSize = exports.findMatchingPosition = exports.estimateRealizedPnl = exports.estimateFees = exports.calculateTriggerPrice = exports.calculateTriggerPercent = exports.calculateSize = exports.calculateRealizedPnlPercent = exports.calculateExpectedPnl = exports.buildQuote = exports.applySlippageToPrice = exports.applySlippage = exports.FillClassification = exports.classifyFillFromPosition = exports.classifyFill = exports.PerpsError = exports.PerpsErrorMessage = exports.validateDecimalString = exports.requireVenueDecimal = exports.isDecimalString = exports.formattedStringToNumber = exports.decimalStringToNumber = exports.asDecimalString = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatNumber = exports.formatCompactUsd = exports.truncateDecimal = exports.numberToDecimalString = exports.decimalToBaseUnits = exports.baseUnitsToDecimal = exports.isDecimalStringZero = exports.isDecimalStringGreaterThan = exports.requireProvider = exports.PerpsClient = exports.DEFAULT_API_URL = exports.createPerpsClient = void 0;
18
+ 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 = 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.positionSupportsMarginRemoval = exports.positionSupportsMarginAdjustment = exports.estimateUnrealizedPnl = 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.warnSkippedVenueRow = 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 = 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; } });
@@ -27,6 +27,7 @@ var requireProvider_js_1 = require("./client/requireProvider.js");
27
27
  Object.defineProperty(exports, "requireProvider", { enumerable: true, get: function () { return requireProvider_js_1.requireProvider; } });
28
28
  var compare_js_1 = require("./decimal/compare.js");
29
29
  Object.defineProperty(exports, "isDecimalStringGreaterThan", { enumerable: true, get: function () { return compare_js_1.isDecimalStringGreaterThan; } });
30
+ Object.defineProperty(exports, "isDecimalStringZero", { enumerable: true, get: function () { return compare_js_1.isDecimalStringZero; } });
30
31
  var convert_js_1 = require("./decimal/convert.js");
31
32
  Object.defineProperty(exports, "baseUnitsToDecimal", { enumerable: true, get: function () { return convert_js_1.baseUnitsToDecimal; } });
32
33
  Object.defineProperty(exports, "decimalToBaseUnits", { enumerable: true, get: function () { return convert_js_1.decimalToBaseUnits; } });
@@ -40,8 +41,11 @@ Object.defineProperty(exports, "formatSignedPercent", { enumerable: true, get: f
40
41
  Object.defineProperty(exports, "formatSignedUsd", { enumerable: true, get: function () { return format_js_1.formatSignedUsd; } });
41
42
  Object.defineProperty(exports, "formatUsd", { enumerable: true, get: function () { return format_js_1.formatUsd; } });
42
43
  var parse_js_1 = require("./decimal/parse.js");
44
+ Object.defineProperty(exports, "asDecimalString", { enumerable: true, get: function () { return parse_js_1.asDecimalString; } });
45
+ Object.defineProperty(exports, "decimalStringToNumber", { enumerable: true, get: function () { return parse_js_1.decimalStringToNumber; } });
46
+ Object.defineProperty(exports, "formattedStringToNumber", { enumerable: true, get: function () { return parse_js_1.formattedStringToNumber; } });
43
47
  Object.defineProperty(exports, "isDecimalString", { enumerable: true, get: function () { return parse_js_1.isDecimalString; } });
44
- Object.defineProperty(exports, "parseDecimal", { enumerable: true, get: function () { return parse_js_1.parseDecimal; } });
48
+ Object.defineProperty(exports, "requireVenueDecimal", { enumerable: true, get: function () { return parse_js_1.requireVenueDecimal; } });
45
49
  Object.defineProperty(exports, "validateDecimalString", { enumerable: true, get: function () { return parse_js_1.validateDecimalString; } });
46
50
  var constants_js_1 = require("./errors/constants.js");
47
51
  Object.defineProperty(exports, "PerpsErrorMessage", { enumerable: true, get: function () { return constants_js_1.PerpsErrorMessage; } });
@@ -53,6 +57,7 @@ Object.defineProperty(exports, "classifyFillFromPosition", { enumerable: true, g
53
57
  Object.defineProperty(exports, "FillClassification", { enumerable: true, get: function () { return fills_js_1.FillClassification; } });
54
58
  var order_js_1 = require("./math/order.js");
55
59
  Object.defineProperty(exports, "applySlippage", { enumerable: true, get: function () { return order_js_1.applySlippage; } });
60
+ Object.defineProperty(exports, "applySlippageToPrice", { enumerable: true, get: function () { return order_js_1.applySlippageToPrice; } });
56
61
  Object.defineProperty(exports, "buildQuote", { enumerable: true, get: function () { return order_js_1.buildQuote; } });
57
62
  Object.defineProperty(exports, "calculateExpectedPnl", { enumerable: true, get: function () { return order_js_1.calculateExpectedPnl; } });
58
63
  Object.defineProperty(exports, "calculateRealizedPnlPercent", { enumerable: true, get: function () { return order_js_1.calculateRealizedPnlPercent; } });
@@ -188,6 +193,7 @@ Object.defineProperty(exports, "signTypedData", { enumerable: true, get: functio
188
193
  Object.defineProperty(exports, "signTypedDataWithSigner", { enumerable: true, get: function () { return signTypedData_js_1.signTypedDataWithSigner; } });
189
194
  var warnOnce_js_1 = require("./utils/warnOnce.js");
190
195
  Object.defineProperty(exports, "createWarnOnce", { enumerable: true, get: function () { return warnOnce_js_1.createWarnOnce; } });
196
+ Object.defineProperty(exports, "warnSkippedVenueRow", { enumerable: true, get: function () { return warnOnce_js_1.warnSkippedVenueRow; } });
191
197
  var version_js_1 = require("./version.js");
192
198
  Object.defineProperty(exports, "name", { enumerable: true, get: function () { return version_js_1.name; } });
193
199
  Object.defineProperty(exports, "version", { enumerable: true, get: function () { return version_js_1.version; } });
@@ -208,7 +214,6 @@ var orderAmounts_js_1 = require("./wire/orderAmounts.js");
208
214
  Object.defineProperty(exports, "calculateOrderAmounts", { enumerable: true, get: function () { return orderAmounts_js_1.calculateOrderAmounts; } });
209
215
  var refuel_js_1 = require("./wire/refuel.js");
210
216
  Object.defineProperty(exports, "calculateRefuelAmount", { enumerable: true, get: function () { return refuel_js_1.calculateRefuelAmount; } });
211
- Object.defineProperty(exports, "REFUEL_FEE_MARGIN_PERCENT", { enumerable: true, get: function () { return refuel_js_1.REFUEL_FEE_MARGIN_PERCENT; } });
212
217
  var snap_js_1 = require("./wire/snap.js");
213
218
  Object.defineProperty(exports, "snapOrderPrice", { enumerable: true, get: function () { return snap_js_1.snapOrderPrice; } });
214
219
  Object.defineProperty(exports, "snapOrderSize", { enumerable: true, get: function () { return snap_js_1.snapOrderSize; } });
@@ -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,5 +1,5 @@
1
1
  import { type DecimalString, FillClassification, OrderSide } from '@lifi/perps-types';
2
2
  export { FillClassification };
3
- export declare function classifyFillFromPosition(startPosition: DecimalString, side: string, sz: DecimalString): FillClassification;
3
+ export declare function classifyFillFromPosition(startPosition: DecimalString, side: OrderSide, sz: DecimalString): FillClassification;
4
4
  export declare function classifyFill(side: OrderSide, realizedPnl: DecimalString | null | undefined): FillClassification;
5
5
  //# sourceMappingURL=fills.d.ts.map
@@ -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;AAQ1B,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAY7B,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,aAAa,GAChB,kBAAkB,CAkCpB;AAQD,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;AAS1B,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAa7B,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,aAAa,GAChB,kBAAkB,CAuCpB;AAUD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAC5C,kBAAkB,CAepB"}
@@ -1,45 +1,59 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.FillClassification = void 0;
4
7
  exports.classifyFillFromPosition = classifyFillFromPosition;
5
8
  exports.classifyFill = classifyFill;
6
9
  const perps_types_1 = require("@lifi/perps-types");
7
10
  Object.defineProperty(exports, "FillClassification", { enumerable: true, get: function () { return perps_types_1.FillClassification; } });
11
+ const big_js_1 = __importDefault(require("big.js"));
8
12
  const parse_js_1 = require("../decimal/parse.js");
9
13
  function classifyFillFromPosition(startPosition, side, sz) {
10
- const start = parseFloat(startPosition);
11
- const delta = side === 'B' ? parseFloat(sz) : -parseFloat(sz);
12
- const end = start + delta;
13
- if (start === 0) {
14
- return end > 0
14
+ if (!(0, parse_js_1.isDecimalString)(startPosition) || !(0, parse_js_1.isDecimalString)(sz)) {
15
+ return side === perps_types_1.OrderSide.BUY
16
+ ? perps_types_1.FillClassification.BUY
17
+ : perps_types_1.FillClassification.SELL;
18
+ }
19
+ const start = new big_js_1.default(startPosition);
20
+ const size = new big_js_1.default(sz);
21
+ const end = side === perps_types_1.OrderSide.BUY ? start.plus(size) : start.minus(size);
22
+ if (start.eq(0)) {
23
+ return end.gt(0)
15
24
  ? perps_types_1.FillClassification.OPENED_LONG
16
25
  : perps_types_1.FillClassification.OPENED_SHORT;
17
26
  }
18
- if (start > 0) {
19
- if (end === 0) {
27
+ if (start.gt(0)) {
28
+ if (end.eq(0)) {
20
29
  return perps_types_1.FillClassification.CLOSED_LONG;
21
30
  }
22
- if (end < 0) {
31
+ if (end.lt(0)) {
23
32
  return perps_types_1.FillClassification.SWITCHED_SHORT;
24
33
  }
25
- if (end > start) {
34
+ if (end.gt(start)) {
26
35
  return perps_types_1.FillClassification.INCREASED_LONG;
27
36
  }
28
37
  return perps_types_1.FillClassification.REDUCED_LONG;
29
38
  }
30
- if (end === 0) {
39
+ if (end.eq(0)) {
31
40
  return perps_types_1.FillClassification.CLOSED_SHORT;
32
41
  }
33
- if (end > 0) {
42
+ if (end.gt(0)) {
34
43
  return perps_types_1.FillClassification.SWITCHED_LONG;
35
44
  }
36
- if (end < start) {
45
+ if (end.lt(start)) {
37
46
  return perps_types_1.FillClassification.INCREASED_SHORT;
38
47
  }
39
48
  return perps_types_1.FillClassification.REDUCED_SHORT;
40
49
  }
41
50
  function classifyFill(side, realizedPnl) {
42
- const isClose = realizedPnl != null && (0, parse_js_1.parseDecimal)(realizedPnl) !== 0;
51
+ if (realizedPnl != null && !(0, parse_js_1.isDecimalString)(realizedPnl)) {
52
+ return side === perps_types_1.OrderSide.BUY
53
+ ? perps_types_1.FillClassification.BUY
54
+ : perps_types_1.FillClassification.SELL;
55
+ }
56
+ const isClose = realizedPnl != null && !new big_js_1.default(realizedPnl).eq(0);
43
57
  if (side === perps_types_1.OrderSide.BUY) {
44
58
  return isClose
45
59
  ? perps_types_1.FillClassification.CLOSED_SHORT
@@ -1 +1 @@
1
- {"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":";;;AAwBA,4DAsCC;AAQD,oCAaC;AAnFD,mDAI0B;AAQjB,mGAVP,gCAAkB,OAUO;AAP3B,kDAAkD;AAmBlD,SAAgB,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,gCAAkB,CAAC,WAAW;YAChC,CAAC,CAAC,gCAAkB,CAAC,YAAY,CAAA;IACrC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,OAAO,gCAAkB,CAAC,WAAW,CAAA;QACvC,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,gCAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;YAChB,OAAO,gCAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,OAAO,gCAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IAED,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,gCAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,gCAAkB,CAAC,aAAa,CAAA;IACzC,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAChB,OAAO,gCAAkB,CAAC,eAAe,CAAA;IAC3C,CAAC;IACD,OAAO,gCAAkB,CAAC,aAAa,CAAA;AACzC,CAAC;AAQD,SAAgB,YAAY,CAC1B,IAAe,EACf,WAA6C;IAE7C,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,IAAA,uBAAY,EAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACtE,IAAI,IAAI,KAAK,uBAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO;YACZ,CAAC,CAAC,gCAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,gCAAkB,CAAC,WAAW,CAAA;IACpC,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,gCAAkB,CAAC,WAAW;QAChC,CAAC,CAAC,gCAAkB,CAAC,YAAY,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { type FeeTier, type Market, type MarketContext, type Order, type OrderbookLevel, type Position, type Quote, type QuoteSide, type TradeType } from '@lifi/perps-types';
1
+ import { type DecimalString, type FeeTier, type Market, type MarketContext, type Order, type OrderbookLevel, type Position, type Quote, type QuoteSide, type TradeType } from '@lifi/perps-types';
2
2
  export declare function calculateSize(marginUsd: number, leverage: number, price: number): number;
3
3
  export declare function estimateFees(sizeUsd: number, feeRate: number): number;
4
4
  export declare function applySlippage(price: number, slippagePercent: number, isBuy: boolean): number;
5
+ export declare function applySlippageToPrice(price: DecimalString, slippagePercent: number, isBuy: boolean): DecimalString;
5
6
  export interface ExpectedPnl {
6
7
  amount: number;
7
8
  percent: number;
@@ -1 +1 @@
1
- {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,cAAc,EAInB,KAAK,QAAQ,EAEb,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,SAAS,EAEf,MAAM,mBAAmB,CAAA;AAyB1B,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAQR;AAUD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrE;AAWD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,OAAO,GACb,MAAM,CAYR;AAOD,MAAM,WAAW,WAAW;IAE1B,MAAM,EAAE,MAAM,CAAA;IAEd,OAAO,EAAE,MAAM,CAAA;CAChB;AAaD,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GACb,WAAW,GAAG,IAAI,CAapB;AAWD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAYR;AAWD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAWR;AAWD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,CASR;AAGD,UAAU,QAAQ;IAEhB,QAAQ,EAAE,MAAM,CAAA;IAEhB,cAAc,EAAE,MAAM,CAAA;IAEtB,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAeD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,EAAE,MAAM,GACd,QAAQ,CAgCV;AAcD,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,aAAa,CAAA;IACpB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,IAAI,EAAE,cAAc,EAAE,CAAA;IAEtB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAcD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CA+BxD;AASD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,QAAQ,GAAG,SAAS,CAEtB;AAYD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAKR;AAoHD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAQf"}
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,cAAc,EAInB,KAAK,QAAQ,EAEb,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,SAAS,EAEf,MAAM,mBAAmB,CAAA;AA0B1B,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAQR;AAUD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrE;AAWD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,OAAO,GACb,MAAM,CAYR;AAWD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,OAAO,GACb,aAAa,CAaf;AAOD,MAAM,WAAW,WAAW;IAE1B,MAAM,EAAE,MAAM,CAAA;IAEd,OAAO,EAAE,MAAM,CAAA;CAChB;AAaD,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GACb,WAAW,GAAG,IAAI,CAapB;AAWD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAYR;AAWD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAWR;AAWD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,CASR;AAGD,UAAU,QAAQ;IAEhB,QAAQ,EAAE,MAAM,CAAA;IAEhB,cAAc,EAAE,MAAM,CAAA;IAEtB,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAeD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,EAAE,MAAM,GACd,QAAQ,CAgCV;AAcD,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,aAAa,CAAA;IACpB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,IAAI,EAAE,cAAc,EAAE,CAAA;IAEtB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAcD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CA+BxD;AASD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,QAAQ,GAAG,SAAS,CAEtB;AAYD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAKR;AAoHD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAQf"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateSize = calculateSize;
4
4
  exports.estimateFees = estimateFees;
5
5
  exports.applySlippage = applySlippage;
6
+ exports.applySlippageToPrice = applySlippageToPrice;
6
7
  exports.calculateExpectedPnl = calculateExpectedPnl;
7
8
  exports.calculateTriggerPrice = calculateTriggerPrice;
8
9
  exports.calculateTriggerPercent = calculateTriggerPercent;
@@ -15,6 +16,7 @@ exports.estimateRealizedPnl = estimateRealizedPnl;
15
16
  const perps_types_1 = require("@lifi/perps-types");
16
17
  const big_js_1 = require("../decimal/big.js");
17
18
  const convert_js_1 = require("../decimal/convert.js");
19
+ const requireDecimal_js_1 = require("../decimal/requireDecimal.js");
18
20
  const PerpsError_js_1 = require("../errors/PerpsError.js");
19
21
  const orderClassification_js_1 = require("../utils/orderClassification.js");
20
22
  const position_js_1 = require("./position.js");
@@ -46,6 +48,17 @@ function applySlippage(price, slippagePercent, isBuy) {
46
48
  }
47
49
  return new big_js_1.DivBig(price).div(multiplier).toNumber();
48
50
  }
51
+ function applySlippageToPrice(price, slippagePercent, isBuy) {
52
+ const base = (0, requireDecimal_js_1.requireDecimal)(price, 'price');
53
+ if (!Number.isFinite(slippagePercent) || slippagePercent <= -100) {
54
+ throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`slippagePercent\`: ${slippagePercent}.`);
55
+ }
56
+ const multiplier = new big_js_1.DivBig(slippagePercent).div(100).plus(1);
57
+ const adjusted = isBuy
58
+ ? base.times(multiplier)
59
+ : new big_js_1.DivBig(base).div(multiplier);
60
+ return adjusted.eq(0) ? '0' : adjusted.toFixed();
61
+ }
49
62
  function calculateExpectedPnl(triggerPrice, entryPrice, leverage, isLong, margin) {
50
63
  if (!triggerPrice || entryPrice === 0 || margin === 0) {
51
64
  return null;