@lifi/perps-sdk 23.0.0 → 24.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -45
- package/dist/cjs/client/PerpsClient.d.ts +3 -2
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +16 -9
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/decimal/arithmetic.d.ts +13 -0
- package/dist/cjs/decimal/arithmetic.d.ts.map +1 -0
- package/dist/cjs/decimal/arithmetic.js +48 -0
- package/dist/cjs/decimal/arithmetic.js.map +1 -0
- package/dist/cjs/decimal/big.d.ts +0 -1
- package/dist/cjs/decimal/big.d.ts.map +1 -1
- package/dist/cjs/decimal/big.js +0 -4
- package/dist/cjs/decimal/big.js.map +1 -1
- package/dist/cjs/decimal/compare.d.ts +7 -0
- package/dist/cjs/decimal/compare.d.ts.map +1 -0
- package/dist/cjs/decimal/compare.js +21 -0
- package/dist/cjs/decimal/compare.js.map +1 -0
- package/dist/cjs/decimal/convert.d.ts +12 -6
- package/dist/cjs/decimal/convert.d.ts.map +1 -1
- package/dist/cjs/decimal/convert.js +36 -14
- package/dist/cjs/decimal/convert.js.map +1 -1
- package/dist/cjs/decimal/decimalStringToBig.d.ts +5 -0
- package/dist/cjs/decimal/decimalStringToBig.d.ts.map +1 -0
- package/dist/cjs/decimal/decimalStringToBig.js +27 -0
- package/dist/cjs/decimal/decimalStringToBig.js.map +1 -0
- package/dist/cjs/decimal/format.d.ts.map +1 -1
- package/dist/cjs/decimal/format.js +70 -49
- package/dist/cjs/decimal/format.js.map +1 -1
- package/dist/cjs/decimal/parse.d.ts +4 -3
- package/dist/cjs/decimal/parse.d.ts.map +1 -1
- package/dist/cjs/decimal/parse.js +44 -19
- package/dist/cjs/decimal/parse.js.map +1 -1
- package/dist/cjs/index.d.ts +13 -10
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +66 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math/fills.d.ts +1 -1
- package/dist/cjs/math/fills.d.ts.map +1 -1
- package/dist/cjs/math/fills.js +28 -13
- package/dist/cjs/math/fills.js.map +1 -1
- package/dist/cjs/math/order.d.ts +27 -16
- package/dist/cjs/math/order.d.ts.map +1 -1
- package/dist/cjs/math/order.js +106 -122
- package/dist/cjs/math/order.js.map +1 -1
- package/dist/cjs/math/position.d.ts +85 -35
- package/dist/cjs/math/position.d.ts.map +1 -1
- package/dist/cjs/math/position.js +88 -91
- package/dist/cjs/math/position.js.map +1 -1
- package/dist/cjs/services/getGasRecommendation.js +1 -1
- package/dist/cjs/services/getGasRecommendation.js.map +1 -1
- package/dist/cjs/services/getQuote.d.ts +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.js +3 -2
- package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/cjs/transport/request.d.ts +1 -0
- package/dist/cjs/transport/request.d.ts.map +1 -1
- package/dist/cjs/transport/request.js +2 -2
- package/dist/cjs/transport/request.js.map +1 -1
- package/dist/cjs/types/api.d.ts +4 -0
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +9 -5
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/types/withdrawal.d.ts +12 -4
- package/dist/cjs/types/withdrawal.d.ts.map +1 -1
- package/dist/cjs/utils/createSafeFunction.d.ts +2 -0
- package/dist/cjs/utils/createSafeFunction.d.ts.map +1 -0
- package/dist/cjs/utils/createSafeFunction.js +15 -0
- package/dist/cjs/utils/createSafeFunction.js.map +1 -0
- package/dist/cjs/utils/timestampToIsoString.d.ts +3 -0
- package/dist/cjs/utils/timestampToIsoString.d.ts.map +1 -0
- package/dist/cjs/utils/timestampToIsoString.js +16 -0
- package/dist/cjs/utils/timestampToIsoString.js.map +1 -0
- package/dist/cjs/utils/warnOnce.d.ts +2 -0
- package/dist/cjs/utils/warnOnce.d.ts.map +1 -1
- package/dist/cjs/utils/warnOnce.js +13 -1
- package/dist/cjs/utils/warnOnce.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts +2 -0
- package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/websocket/PerpsWsClient.js +14 -1
- package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
- package/dist/cjs/websocket/wsLog.d.ts +2 -0
- package/dist/cjs/websocket/wsLog.d.ts.map +1 -1
- package/dist/cjs/websocket/wsLog.js +8 -0
- package/dist/cjs/websocket/wsLog.js.map +1 -1
- package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
- package/dist/cjs/wire/orderAmounts.js +6 -9
- package/dist/cjs/wire/orderAmounts.js.map +1 -1
- package/dist/cjs/wire/refuel.d.ts +4 -1
- package/dist/cjs/wire/refuel.d.ts.map +1 -1
- package/dist/cjs/wire/refuel.js +23 -6
- package/dist/cjs/wire/refuel.js.map +1 -1
- package/dist/cjs/wire/transferable.js +3 -3
- package/dist/cjs/wire/transferable.js.map +1 -1
- package/dist/cjs/wire/withdraw.d.ts.map +1 -1
- package/dist/cjs/wire/withdraw.js +3 -3
- package/dist/cjs/wire/withdraw.js.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +17 -4
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +30 -8
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/decimal/arithmetic.d.ts +84 -0
- package/dist/esm/decimal/arithmetic.d.ts.map +1 -0
- package/dist/esm/decimal/arithmetic.js +110 -0
- package/dist/esm/decimal/arithmetic.js.map +1 -0
- package/dist/esm/decimal/big.d.ts +0 -2
- package/dist/esm/decimal/big.d.ts.map +1 -1
- package/dist/esm/decimal/big.js +0 -4
- package/dist/esm/decimal/big.js.map +1 -1
- package/dist/esm/decimal/compare.d.ts +45 -0
- package/dist/esm/decimal/compare.d.ts.map +1 -0
- package/dist/esm/decimal/compare.js +53 -0
- package/dist/esm/decimal/compare.js.map +1 -0
- package/dist/esm/decimal/convert.d.ts +62 -26
- package/dist/esm/decimal/convert.d.ts.map +1 -1
- package/dist/esm/decimal/convert.js +76 -25
- package/dist/esm/decimal/convert.js.map +1 -1
- package/dist/esm/decimal/decimalStringToBig.d.ts +26 -0
- package/dist/esm/decimal/decimalStringToBig.d.ts.map +1 -0
- package/dist/esm/decimal/decimalStringToBig.js +40 -0
- package/dist/esm/decimal/decimalStringToBig.js.map +1 -0
- package/dist/esm/decimal/format.d.ts +4 -1
- package/dist/esm/decimal/format.d.ts.map +1 -1
- package/dist/esm/decimal/format.js +71 -66
- package/dist/esm/decimal/format.js.map +1 -1
- package/dist/esm/decimal/parse.d.ts +26 -7
- package/dist/esm/decimal/parse.d.ts.map +1 -1
- package/dist/esm/decimal/parse.js +59 -33
- package/dist/esm/decimal/parse.js.map +1 -1
- package/dist/esm/index.d.ts +13 -10
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +9 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/fills.d.ts +6 -3
- package/dist/esm/math/fills.d.ts.map +1 -1
- package/dist/esm/math/fills.js +31 -16
- package/dist/esm/math/fills.js.map +1 -1
- package/dist/esm/math/order.d.ts +85 -65
- package/dist/esm/math/order.d.ts.map +1 -1
- package/dist/esm/math/order.js +158 -166
- package/dist/esm/math/order.js.map +1 -1
- package/dist/esm/math/position.d.ts +155 -98
- package/dist/esm/math/position.d.ts.map +1 -1
- package/dist/esm/math/position.js +157 -155
- package/dist/esm/math/position.js.map +1 -1
- package/dist/esm/services/getGasRecommendation.js +1 -1
- package/dist/esm/services/getGasRecommendation.js.map +1 -1
- package/dist/esm/services/getQuote.d.ts +2 -2
- package/dist/esm/services/getQuote.js +1 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts +1 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/esm/services/resolveSubscribeQuote.js +4 -3
- package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/esm/transport/request.d.ts +5 -0
- package/dist/esm/transport/request.d.ts.map +1 -1
- package/dist/esm/transport/request.js +2 -2
- package/dist/esm/transport/request.js.map +1 -1
- package/dist/esm/types/api.d.ts +9 -0
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +26 -13
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/types/withdrawal.d.ts +32 -7
- package/dist/esm/types/withdrawal.d.ts.map +1 -1
- package/dist/esm/utils/createSafeFunction.d.ts +9 -0
- package/dist/esm/utils/createSafeFunction.d.ts.map +1 -0
- package/dist/esm/utils/createSafeFunction.js +19 -0
- package/dist/esm/utils/createSafeFunction.js.map +1 -0
- package/dist/esm/utils/timestampToIsoString.d.ts +15 -0
- package/dist/esm/utils/timestampToIsoString.d.ts.map +1 -0
- package/dist/esm/utils/timestampToIsoString.js +24 -0
- package/dist/esm/utils/timestampToIsoString.js.map +1 -0
- package/dist/esm/utils/warnOnce.d.ts +16 -0
- package/dist/esm/utils/warnOnce.d.ts.map +1 -1
- package/dist/esm/utils/warnOnce.js +24 -0
- package/dist/esm/utils/warnOnce.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts +7 -0
- package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/websocket/PerpsWsClient.js +20 -2
- package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
- package/dist/esm/websocket/wsLog.d.ts +12 -0
- package/dist/esm/websocket/wsLog.d.ts.map +1 -1
- package/dist/esm/websocket/wsLog.js +18 -0
- package/dist/esm/websocket/wsLog.js.map +1 -1
- package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
- package/dist/esm/wire/orderAmounts.js +2 -2
- package/dist/esm/wire/orderAmounts.js.map +1 -1
- package/dist/esm/wire/refuel.d.ts +24 -14
- package/dist/esm/wire/refuel.d.ts.map +1 -1
- package/dist/esm/wire/refuel.js +38 -17
- package/dist/esm/wire/refuel.js.map +1 -1
- package/dist/esm/wire/transferable.js +3 -3
- package/dist/esm/wire/transferable.js.map +1 -1
- package/dist/esm/wire/withdraw.d.ts.map +1 -1
- package/dist/esm/wire/withdraw.js +3 -3
- package/dist/esm/wire/withdraw.js.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +17 -4
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/decimal/arithmetic.d.ts +84 -0
- package/dist/types/decimal/arithmetic.d.ts.map +1 -0
- package/dist/types/decimal/big.d.ts +0 -2
- package/dist/types/decimal/big.d.ts.map +1 -1
- package/dist/types/decimal/compare.d.ts +45 -0
- package/dist/types/decimal/compare.d.ts.map +1 -0
- package/dist/types/decimal/convert.d.ts +62 -26
- package/dist/types/decimal/convert.d.ts.map +1 -1
- package/dist/types/decimal/decimalStringToBig.d.ts +26 -0
- package/dist/types/decimal/decimalStringToBig.d.ts.map +1 -0
- package/dist/types/decimal/format.d.ts +4 -1
- package/dist/types/decimal/format.d.ts.map +1 -1
- package/dist/types/decimal/parse.d.ts +26 -7
- package/dist/types/decimal/parse.d.ts.map +1 -1
- package/dist/types/index.d.ts +13 -10
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math/fills.d.ts +6 -3
- package/dist/types/math/fills.d.ts.map +1 -1
- package/dist/types/math/order.d.ts +85 -65
- package/dist/types/math/order.d.ts.map +1 -1
- package/dist/types/math/position.d.ts +155 -98
- package/dist/types/math/position.d.ts.map +1 -1
- package/dist/types/services/getQuote.d.ts +2 -2
- package/dist/types/services/resolveSubscribeQuote.d.ts +1 -1
- package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/types/transport/request.d.ts +5 -0
- package/dist/types/transport/request.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +9 -0
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +26 -13
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/types/withdrawal.d.ts +32 -7
- package/dist/types/types/withdrawal.d.ts.map +1 -1
- package/dist/types/utils/createSafeFunction.d.ts +9 -0
- package/dist/types/utils/createSafeFunction.d.ts.map +1 -0
- package/dist/types/utils/timestampToIsoString.d.ts +15 -0
- package/dist/types/utils/timestampToIsoString.d.ts.map +1 -0
- package/dist/types/utils/warnOnce.d.ts +16 -0
- package/dist/types/utils/warnOnce.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/websocket/PerpsWsClient.d.ts +7 -0
- package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/types/websocket/wsLog.d.ts +12 -0
- package/dist/types/websocket/wsLog.d.ts.map +1 -1
- package/dist/types/wire/orderAmounts.d.ts.map +1 -1
- package/dist/types/wire/refuel.d.ts +24 -14
- package/dist/types/wire/refuel.d.ts.map +1 -1
- package/dist/types/wire/withdraw.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +48 -10
- package/src/decimal/arithmetic.ts +144 -0
- package/src/decimal/big.ts +0 -5
- package/src/decimal/compare.ts +67 -0
- package/src/decimal/convert.ts +123 -44
- package/src/decimal/decimalStringToBig.ts +47 -0
- package/src/decimal/format.ts +81 -68
- package/src/decimal/parse.ts +73 -36
- package/src/index.ts +76 -8
- package/src/math/fills.ts +32 -17
- package/src/math/order.ts +261 -216
- package/src/math/position.ts +277 -194
- package/src/services/getGasRecommendation.ts +1 -1
- package/src/services/getQuote.ts +2 -2
- package/src/services/resolveSubscribeQuote.ts +4 -3
- package/src/transport/request.ts +7 -2
- package/src/types/api.ts +10 -0
- package/src/types/provider.ts +35 -13
- package/src/types/withdrawal.ts +35 -8
- package/src/utils/createSafeFunction.ts +20 -0
- package/src/utils/timestampToIsoString.ts +31 -0
- package/src/utils/warnOnce.ts +44 -0
- package/src/version.ts +1 -1
- package/src/websocket/PerpsWsClient.ts +25 -2
- package/src/websocket/wsLog.ts +31 -0
- package/src/wire/orderAmounts.ts +3 -2
- package/src/wire/refuel.ts +56 -20
- package/src/wire/transferable.ts +3 -3
- package/src/wire/withdraw.ts +3 -5
- package/dist/cjs/decimal/requireDecimal.d.ts +0 -4
- package/dist/cjs/decimal/requireDecimal.d.ts.map +0 -1
- package/dist/cjs/decimal/requireDecimal.js +0 -17
- package/dist/cjs/decimal/requireDecimal.js.map +0 -1
- package/dist/esm/decimal/requireDecimal.d.ts +0 -11
- package/dist/esm/decimal/requireDecimal.d.ts.map +0 -1
- package/dist/esm/decimal/requireDecimal.js +0 -18
- package/dist/esm/decimal/requireDecimal.js.map +0 -1
- package/dist/types/decimal/requireDecimal.d.ts +0 -11
- package/dist/types/decimal/requireDecimal.d.ts.map +0 -1
- package/src/decimal/requireDecimal.ts +0 -21
|
@@ -1,54 +1,80 @@
|
|
|
1
|
-
import { DECIMAL_PATTERN } from '@lifi/perps-types';
|
|
1
|
+
import { DECIMAL_PATTERN, PerpsErrorCode } from '@lifi/perps-types';
|
|
2
|
+
import Big from 'big.js';
|
|
3
|
+
import { PerpsError } from '../errors/PerpsError.js';
|
|
4
|
+
import { createSafeFunction } from '../utils/createSafeFunction.js';
|
|
5
|
+
import { decimalStringToBig } from './decimalStringToBig.js';
|
|
2
6
|
/**
|
|
3
|
-
*
|
|
7
|
+
* Read a decimal string as a JS float, for a chart or pixel value only. A
|
|
8
|
+
* float holds about 15 significant digits, so the result can lose precision;
|
|
9
|
+
* never use it for an amount sent to a venue.
|
|
4
10
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - Thousands separators (commas)
|
|
9
|
-
* - Percentage suffixes (%)
|
|
10
|
-
* - Whitespace
|
|
11
|
-
*
|
|
12
|
-
* @returns Parsed number; `0` for empty/blank input, `NaN` when a non-empty
|
|
13
|
-
* string contains no parseable number
|
|
11
|
+
* @throws {PerpsError} `ValidationError` when `value` is not a decimal string
|
|
12
|
+
* or is too large for a finite float.
|
|
13
|
+
* @public
|
|
14
14
|
*/
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const cleaned = value.trim().replace(/[$%]/g, '').replace(/,/g, '').trim();
|
|
20
|
-
if (!cleaned) {
|
|
21
|
-
return 0;
|
|
15
|
+
export function decimalStringToNumber(value) {
|
|
16
|
+
const parsed = decimalStringToBig(value).toNumber();
|
|
17
|
+
if (!Number.isFinite(parsed)) {
|
|
18
|
+
throw new PerpsError(PerpsErrorCode.ValidationError, `'${value}' is too large for a finite number.`);
|
|
22
19
|
}
|
|
23
|
-
return
|
|
20
|
+
return parsed;
|
|
24
21
|
}
|
|
25
|
-
const FORMATTED_NUMBER = /^(?:[+-]\s*)?(?:\$\s*)?(?:(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:\s*(?:%|USD))?$/i;
|
|
26
22
|
/**
|
|
27
|
-
*
|
|
28
|
-
* separators and a percentage suffix around the number.
|
|
29
|
-
* Gives back `undefined` for a missing, malformed or non-finite value, and `0` for an empty string.
|
|
23
|
+
* {@link decimalStringToNumber}, or `undefined` with a warning when it throws.
|
|
30
24
|
*
|
|
31
25
|
* @public
|
|
32
26
|
*/
|
|
33
|
-
export
|
|
34
|
-
|
|
27
|
+
export const safeDecimalStringToNumber = createSafeFunction('decimalStringToNumber', decimalStringToNumber);
|
|
28
|
+
/**
|
|
29
|
+
* Narrows an unknown value to a {@link DecimalString}. No characters are
|
|
30
|
+
* removed first.
|
|
31
|
+
*
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
export function isDecimalString(value) {
|
|
35
|
+
return typeof value === 'string' && DECIMAL_PATTERN.test(value);
|
|
36
|
+
}
|
|
37
|
+
const MAX_SPELLED_EXPONENT = 1000;
|
|
38
|
+
function spellDecimal(value) {
|
|
39
|
+
if (isDecimalString(value)) {
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
if (typeof value !== 'string' && typeof value !== 'number') {
|
|
35
43
|
return undefined;
|
|
36
44
|
}
|
|
37
|
-
if (value
|
|
38
|
-
return
|
|
45
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
46
|
+
return undefined;
|
|
39
47
|
}
|
|
40
|
-
|
|
48
|
+
let parsed;
|
|
49
|
+
try {
|
|
50
|
+
parsed = new Big(value);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
41
53
|
return undefined;
|
|
42
54
|
}
|
|
43
|
-
|
|
44
|
-
|
|
55
|
+
// Spelling out an unbounded exponent builds a string of that many digits.
|
|
56
|
+
if (Math.abs(parsed.e) > MAX_SPELLED_EXPONENT) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return (parsed.eq(0) ? new Big(0) : parsed).toFixed();
|
|
45
60
|
}
|
|
46
61
|
/**
|
|
47
|
-
*
|
|
62
|
+
* Read a venue value (a string or a number) as a decimal string, for a
|
|
63
|
+
* money-path value that must not go on wrong. A number or an exponent string
|
|
64
|
+
* is spelled out in full; no `$`, `%` or `,` is removed.
|
|
48
65
|
*
|
|
66
|
+
* @param tool - Provider key set on the error.
|
|
67
|
+
* @throws {PerpsError} `SDKError` naming `field` when `value` is not a finite
|
|
68
|
+
* decimal.
|
|
49
69
|
* @public
|
|
50
70
|
*/
|
|
51
|
-
export function
|
|
52
|
-
|
|
71
|
+
export function unknownToDecimalString(value, field, tool) {
|
|
72
|
+
const decimal = spellDecimal(value);
|
|
73
|
+
if (decimal !== undefined) {
|
|
74
|
+
return decimal;
|
|
75
|
+
}
|
|
76
|
+
const error = new PerpsError(PerpsErrorCode.SDKError, `${tool} field \`${field}\` is not a valid decimal: '${String(value)}'`);
|
|
77
|
+
error.tool = tool;
|
|
78
|
+
throw error;
|
|
53
79
|
}
|
|
54
80
|
//# sourceMappingURL=parse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,IAAI,KAAK,qCAAqC,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CACzD,uBAAuB,EACvB,qBAAqB,CACtB,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAEjC,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,MAAW,CAAA;IACf,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,0EAA0E;IAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,oBAAoB,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AACvD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc,EACd,KAAa,EACb,IAAY;IAEZ,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAC1B,cAAc,CAAC,QAAQ,EACvB,GAAG,IAAI,YAAY,KAAK,+BAA+B,MAAM,CAAC,KAAK,CAAC,GAAG,CACxE,CAAA;IACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,KAAK,CAAA;AACb,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -10,17 +10,19 @@ export * from '@lifi/perps-types';
|
|
|
10
10
|
export { createPerpsClient, DEFAULT_API_URL, } from './client/createPerpsClient.js';
|
|
11
11
|
export { PerpsClient } from './client/PerpsClient.js';
|
|
12
12
|
export { requireProvider } from './client/requireProvider.js';
|
|
13
|
-
export
|
|
14
|
-
export {
|
|
13
|
+
export { absDecimalString, addDecimalString, divideDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, safeAbsDecimalString, safeAddDecimalString, safeDivideDecimalString, safeDivideDecimalStringRoundDown, safeMultiplyDecimalString, safeSubtractDecimalString, subtractDecimalString, } from './decimal/arithmetic.js';
|
|
14
|
+
export { compareDecimalStrings, isDecimalStringGreaterThan, isDecimalStringZero, safeCompareDecimalStrings, safeIsDecimalStringGreaterThan, safeIsDecimalStringZero, } from './decimal/compare.js';
|
|
15
|
+
export type { DecimalRounding } from './decimal/convert.js';
|
|
16
|
+
export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString, safeTruncateDecimal, scaledIntegerToDecimalString, truncateDecimal, } from './decimal/convert.js';
|
|
15
17
|
export type { FormatOptions, RoundingMode } from './decimal/format.js';
|
|
16
18
|
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
|
|
17
|
-
export { isDecimalString,
|
|
19
|
+
export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, unknownToDecimalString, } from './decimal/parse.js';
|
|
18
20
|
export { PerpsErrorMessage } from './errors/constants.js';
|
|
19
21
|
export { PerpsError } from './errors/PerpsError.js';
|
|
20
22
|
export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
|
|
21
23
|
export type { ExpectedPnl } from './math/order.js';
|
|
22
|
-
export {
|
|
23
|
-
export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, wouldImmediatelyLiquidate, } from './math/position.js';
|
|
24
|
+
export { applySlippageToPrice, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, safeApplySlippageToPrice, safeBuildQuote, safeCalculateExpectedPnl, safeCalculateRealizedPnlPercent, safeCalculateSize, safeCalculateTriggerPercent, safeCalculateTriggerPrice, safeEstimateFees, safeEstimateRealizedPnl, safeResolveCloseSize, safeWalkOrderbook, walkOrderbook, } from './math/order.js';
|
|
25
|
+
export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateLiquidationPriceAtMarketRate, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, safeCalculateEffectiveLeverage, safeCalculateLiquidationDistance, safeCalculateNotionalValue, safeCalculateRealizedPnl, safeCalculateRequiredMargin, safeCalculateRoe, safeCalculateUnrealizedPnl, safeEstimateAverageEntryPrice, safeEstimateLiquidationPrice, safeEstimateLiquidationPriceAtMarketRate, safeEstimateNewLeverage, safeEstimateUnrealizedPnl, safeWouldImmediatelyLiquidate, wouldImmediatelyLiquidate, } from './math/position.js';
|
|
24
26
|
export { AssetRegistry, getAssetRegistry, toAssetDisplay, } from './registry/assetRegistry.js';
|
|
25
27
|
export type { DefaultMarketProvider } from './registry/marketRegistry.js';
|
|
26
28
|
export { DEFAULT_MARKET_ID, getDefaultMarketId, getMarketRegistry, isActiveMarket, MarketRegistry, toMarketDisplay, toPerpsMarketDisplay, } from './registry/marketRegistry.js';
|
|
@@ -74,18 +76,19 @@ export type { FetchWithRetryOptions } from './transport/fetchWithRetry.js';
|
|
|
74
76
|
export { fetchWithRetry, isAbortError } from './transport/fetchWithRetry.js';
|
|
75
77
|
export type { ProviderRetryConfig, ResolvedRetryPolicy, RetryAttemptContext, RetryClassification, RetryClassifyContext, RetryConfig, RetryPolicy, } from './transport/retryPolicy.js';
|
|
76
78
|
export { DISABLED_RETRY, LIFI_REQUEST_KEY, LIFI_RETRY_DEFAULTS, resolveRetryPolicy, } from './transport/retryPolicy.js';
|
|
77
|
-
export type { BuildProviderSetupParams, CancelOrdersParams, CancelTwapOrderParams as ClientCancelTwapOrderParams, CreateReferralCodeActionParams, ExecuteMetaActionParams, GetAccountResult, GetDepositFlowParams, GetPortfolioHistoryParams, GetSetupParams, GetWithdrawableBalancesParams, GetWithdrawFlowParams, ModifyOrdersParams, PerpsClientOptions, PerpsConfig, PlaceOrderParams as ClientPlaceOrderParams, PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams, PlaceTwapOrderParams as ClientPlaceTwapOrderParams, ProviderSetup, SendAssetActionParams, SetupChecklistItem, SubmitOnboardingParams, WithdrawParams, } from './types/api.js';
|
|
79
|
+
export type { BuildProviderSetupParams, CancelOrdersParams, CancelTwapOrderParams as ClientCancelTwapOrderParams, CreateReferralCodeActionParams, ExecuteMetaActionParams, GetAccountResult, GetDepositFlowParams, GetPortfolioHistoryParams, GetSetupParams, GetWithdrawableBalancesParams, GetWithdrawalTypesParams, GetWithdrawFlowParams, ModifyOrdersParams, PerpsClientOptions, PerpsConfig, PlaceOrderParams as ClientPlaceOrderParams, PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams, PlaceTwapOrderParams as ClientPlaceTwapOrderParams, ProviderSetup, SendAssetActionParams, SetupChecklistItem, SubmitOnboardingParams, WithdrawParams, } from './types/api.js';
|
|
78
80
|
export type { PerpsBaseConfig, PerpsClientSigner, RequestInterceptor, SDKRequestOptions, SwitchChainHook, } from './types/config.js';
|
|
79
81
|
export type { DeclaredDepositAsset, DepositFlow, DepositFlowFirstDepositPipeline, DepositFlowLifiSwap, DepositFlowSetupRequired, } from './types/deposit.js';
|
|
80
|
-
export type { ActionSignerContribution, LiquidationEstimateParams, PerpsProvider, PerpsProviderPlugin, PerpsSDKClient, ProviderAccountExistsParams, ProviderGetAccountParams, ProviderGetActivityParams, ProviderGetAvailableToTradeParams, ProviderGetDepositFlowParams, ProviderGetFillsParams, ProviderGetMarketSettingsParams, ProviderGetOrderParams, ProviderGetOrdersParams, ProviderGetPortfolioHistoryParams, ProviderGetPositionsParams, ProviderGetQuoteParams, ProviderGetWithdrawableBalancesParams, ProviderGetWithdrawFlowParams, QuoteListener, SignActionProgress, SignActionsContext, } from './types/provider.js';
|
|
81
|
-
export type { ProviderWithdrawableBalance, WithdrawableBalance,
|
|
82
|
+
export type { ActionSignerContribution, LiquidationEstimateParams, PerpsProvider, PerpsProviderPlugin, PerpsSDKClient, ProviderAccountExistsParams, ProviderGetAccountParams, ProviderGetActivityParams, ProviderGetAvailableToTradeParams, ProviderGetDepositFlowParams, ProviderGetFillsParams, ProviderGetMarketSettingsParams, ProviderGetOrderParams, ProviderGetOrdersParams, ProviderGetPortfolioHistoryParams, ProviderGetPositionsParams, ProviderGetQuoteParams, ProviderGetWithdrawableBalancesParams, ProviderGetWithdrawalTypesParams, ProviderGetWithdrawFlowParams, QuoteListener, SignActionProgress, SignActionsContext, } from './types/provider.js';
|
|
83
|
+
export type { ProviderWithdrawableBalance, WithdrawableBalance, WithdrawalSourceTypes, WithdrawalTypeOption, WithdrawFlow, WithdrawFlowReady, WithdrawFlowSetupRequired, } from './types/withdrawal.js';
|
|
82
84
|
export { paginateActivity } from './utils/activityPaging.js';
|
|
83
85
|
export { ETHEREUM_NATIVE_GAS, ETHEREUM_USDC, HYPERLIQUID_USDC, LIGHTER_USDC, ROBINHOOD_NATIVE_GAS, ROBINHOOD_USDG, } from './utils/depositAssets.js';
|
|
84
86
|
export { ExplorerChainId, explorerTxUrl, explorerTxUrlFromBase, } from './utils/explorer.js';
|
|
85
87
|
export { ACTIVE_ORDER_STATUSES, isActiveOrderStatus, isRegularOrder, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, isTriggerOrder, isTwapOrder, triggerConditionFor, } from './utils/orderClassification.js';
|
|
86
88
|
export { isSetupOptionFor, selectUserSetupActions, } from './utils/setupActions.js';
|
|
87
89
|
export { signTypedData, signTypedDataWithSigner, } from './utils/signTypedData.js';
|
|
88
|
-
export {
|
|
90
|
+
export { safeTimestampToIsoString, timestampToIsoString, } from './utils/timestampToIsoString.js';
|
|
91
|
+
export { createWarnOnce, warnSkippedVenueRow } from './utils/warnOnce.js';
|
|
89
92
|
export { name, version } from './version.js';
|
|
90
93
|
export { cachePromise } from './websocket/cachePromise.js';
|
|
91
94
|
export type { DecodeChainMode } from './websocket/decodeChain.js';
|
|
@@ -100,7 +103,7 @@ export { wsLog } from './websocket/wsLog.js';
|
|
|
100
103
|
export type { OrderAmounts, OrderAmountsInput, } from './wire/orderAmounts.js';
|
|
101
104
|
export { calculateOrderAmounts } from './wire/orderAmounts.js';
|
|
102
105
|
export type { RefuelAmountInput } from './wire/refuel.js';
|
|
103
|
-
export { calculateRefuelAmount } from './wire/refuel.js';
|
|
106
|
+
export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
|
|
104
107
|
export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
|
|
105
108
|
export { calculateTransferable } from './wire/transferable.js';
|
|
106
109
|
export { calculateWithdrawMax } from './wire/withdraw.js';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,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,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -12,14 +12,16 @@ export * from '@lifi/perps-types';
|
|
|
12
12
|
export { createPerpsClient, DEFAULT_API_URL, } from './client/createPerpsClient.js';
|
|
13
13
|
export { PerpsClient } from './client/PerpsClient.js';
|
|
14
14
|
export { requireProvider } from './client/requireProvider.js';
|
|
15
|
-
export {
|
|
15
|
+
export { absDecimalString, addDecimalString, divideDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, safeAbsDecimalString, safeAddDecimalString, safeDivideDecimalString, safeDivideDecimalStringRoundDown, safeMultiplyDecimalString, safeSubtractDecimalString, subtractDecimalString, } from './decimal/arithmetic.js';
|
|
16
|
+
export { compareDecimalStrings, isDecimalStringGreaterThan, isDecimalStringZero, safeCompareDecimalStrings, safeIsDecimalStringGreaterThan, safeIsDecimalStringZero, } from './decimal/compare.js';
|
|
17
|
+
export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString, safeTruncateDecimal, scaledIntegerToDecimalString, truncateDecimal, } from './decimal/convert.js';
|
|
16
18
|
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
|
|
17
|
-
export { isDecimalString,
|
|
19
|
+
export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, unknownToDecimalString, } from './decimal/parse.js';
|
|
18
20
|
export { PerpsErrorMessage } from './errors/constants.js';
|
|
19
21
|
export { PerpsError } from './errors/PerpsError.js';
|
|
20
22
|
export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
|
|
21
|
-
export {
|
|
22
|
-
export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, wouldImmediatelyLiquidate, } from './math/position.js';
|
|
23
|
+
export { applySlippageToPrice, buildQuote, calculateExpectedPnl, calculateRealizedPnlPercent, calculateSize, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, findMatchingPosition, resolveCloseSize, safeApplySlippageToPrice, safeBuildQuote, safeCalculateExpectedPnl, safeCalculateRealizedPnlPercent, safeCalculateSize, safeCalculateTriggerPercent, safeCalculateTriggerPrice, safeEstimateFees, safeEstimateRealizedPnl, safeResolveCloseSize, safeWalkOrderbook, walkOrderbook, } from './math/order.js';
|
|
24
|
+
export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateLiquidationPriceAtMarketRate, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, safeCalculateEffectiveLeverage, safeCalculateLiquidationDistance, safeCalculateNotionalValue, safeCalculateRealizedPnl, safeCalculateRequiredMargin, safeCalculateRoe, safeCalculateUnrealizedPnl, safeEstimateAverageEntryPrice, safeEstimateLiquidationPrice, safeEstimateLiquidationPriceAtMarketRate, safeEstimateNewLeverage, safeEstimateUnrealizedPnl, safeWouldImmediatelyLiquidate, wouldImmediatelyLiquidate, } from './math/position.js';
|
|
23
25
|
// Registries
|
|
24
26
|
export { AssetRegistry, getAssetRegistry, toAssetDisplay, } from './registry/assetRegistry.js';
|
|
25
27
|
export { DEFAULT_MARKET_ID, getDefaultMarketId, getMarketRegistry, isActiveMarket, MarketRegistry, toMarketDisplay, toPerpsMarketDisplay, } from './registry/marketRegistry.js';
|
|
@@ -58,7 +60,8 @@ export { ExplorerChainId, explorerTxUrl, explorerTxUrlFromBase, } from './utils/
|
|
|
58
60
|
export { ACTIVE_ORDER_STATUSES, isActiveOrderStatus, isRegularOrder, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, isTriggerOrder, isTwapOrder, triggerConditionFor, } from './utils/orderClassification.js';
|
|
59
61
|
export { isSetupOptionFor, selectUserSetupActions, } from './utils/setupActions.js';
|
|
60
62
|
export { signTypedData, signTypedDataWithSigner, } from './utils/signTypedData.js';
|
|
61
|
-
export {
|
|
63
|
+
export { safeTimestampToIsoString, timestampToIsoString, } from './utils/timestampToIsoString.js';
|
|
64
|
+
export { createWarnOnce, warnSkippedVenueRow } from './utils/warnOnce.js';
|
|
62
65
|
// Version
|
|
63
66
|
export { name, version } from './version.js';
|
|
64
67
|
export { cachePromise } from './websocket/cachePromise.js';
|
|
@@ -68,7 +71,7 @@ export { ReconnectingWebSocket } from './websocket/ReconnectingWebSocket.js';
|
|
|
68
71
|
export { WS_CHANNEL_TEARDOWN_LINGER_MS, WsProviderBase, } from './websocket/WsProviderBase.js';
|
|
69
72
|
export { wsLog } from './websocket/wsLog.js';
|
|
70
73
|
export { calculateOrderAmounts } from './wire/orderAmounts.js';
|
|
71
|
-
export { calculateRefuelAmount } from './wire/refuel.js';
|
|
74
|
+
export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
|
|
72
75
|
export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
|
|
73
76
|
export { calculateTransferable } from './wire/transferable.js';
|
|
74
77
|
export { calculateWithdrawMax } from './wire/withdraw.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E;;;;;;;GAOG;AAEH,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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/math/fills.d.ts
CHANGED
|
@@ -11,15 +11,18 @@ export { FillClassification };
|
|
|
11
11
|
*
|
|
12
12
|
* @param startPosition Signed position held BEFORE this fill (`> 0` long,
|
|
13
13
|
* `< 0` short, `0` flat).
|
|
14
|
-
* @param
|
|
15
|
-
* @
|
|
14
|
+
* @param sz Unsigned fill size.
|
|
15
|
+
* @returns `BUY` or `SELL` when `startPosition` or `sz` is not a decimal
|
|
16
|
+
* string, so one malformed venue fill still maps.
|
|
16
17
|
* @public
|
|
17
18
|
*/
|
|
18
|
-
export declare function classifyFillFromPosition(startPosition: DecimalString, side:
|
|
19
|
+
export declare function classifyFillFromPosition(startPosition: DecimalString, side: OrderSide, sz: DecimalString): FillClassification;
|
|
19
20
|
/**
|
|
20
21
|
* Classify a fill as open or close based on realizedPnl.
|
|
21
22
|
* @deprecated Use `Fill.classification` instead — it uses startPosition
|
|
22
23
|
* for accurate open/increase/reduce/close/reverse classification.
|
|
24
|
+
* @returns `BUY` or `SELL` when `realizedPnl` is a string that is not a
|
|
25
|
+
* decimal string.
|
|
23
26
|
* @public
|
|
24
27
|
*/
|
|
25
28
|
export declare function classifyFill(side: OrderSide, realizedPnl: DecimalString | null | undefined): FillClassification;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,mBAAmB,CAAA;AAK1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,aAAa,GAChB,kBAAkB,CAuCpB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAC5C,kBAAkB,CAepB"}
|
package/dist/esm/math/fills.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { FillClassification, OrderSide, } from '@lifi/perps-types';
|
|
2
|
-
import
|
|
2
|
+
import Big from 'big.js';
|
|
3
|
+
import { isDecimalStringZero } from '../decimal/compare.js';
|
|
4
|
+
import { isDecimalString } from '../decimal/parse.js';
|
|
3
5
|
/**
|
|
4
6
|
* Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
|
|
5
7
|
*
|
|
@@ -12,38 +14,44 @@ export { FillClassification };
|
|
|
12
14
|
*
|
|
13
15
|
* @param startPosition Signed position held BEFORE this fill (`> 0` long,
|
|
14
16
|
* `< 0` short, `0` flat).
|
|
15
|
-
* @param
|
|
16
|
-
* @
|
|
17
|
+
* @param sz Unsigned fill size.
|
|
18
|
+
* @returns `BUY` or `SELL` when `startPosition` or `sz` is not a decimal
|
|
19
|
+
* string, so one malformed venue fill still maps.
|
|
17
20
|
* @public
|
|
18
21
|
*/
|
|
19
22
|
export function classifyFillFromPosition(startPosition, side, sz) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if (!isDecimalString(startPosition) || !isDecimalString(sz)) {
|
|
24
|
+
return side === OrderSide.BUY
|
|
25
|
+
? FillClassification.BUY
|
|
26
|
+
: FillClassification.SELL;
|
|
27
|
+
}
|
|
28
|
+
const start = new Big(startPosition);
|
|
29
|
+
const size = new Big(sz);
|
|
30
|
+
const end = side === OrderSide.BUY ? start.plus(size) : start.minus(size);
|
|
31
|
+
if (start.eq(0)) {
|
|
32
|
+
return end.gt(0)
|
|
25
33
|
? FillClassification.OPENED_LONG
|
|
26
34
|
: FillClassification.OPENED_SHORT;
|
|
27
35
|
}
|
|
28
|
-
if (start
|
|
29
|
-
if (end
|
|
36
|
+
if (start.gt(0)) {
|
|
37
|
+
if (end.eq(0)) {
|
|
30
38
|
return FillClassification.CLOSED_LONG;
|
|
31
39
|
}
|
|
32
|
-
if (end
|
|
40
|
+
if (end.lt(0)) {
|
|
33
41
|
return FillClassification.SWITCHED_SHORT;
|
|
34
42
|
}
|
|
35
|
-
if (end
|
|
43
|
+
if (end.gt(start)) {
|
|
36
44
|
return FillClassification.INCREASED_LONG;
|
|
37
45
|
}
|
|
38
46
|
return FillClassification.REDUCED_LONG;
|
|
39
47
|
}
|
|
40
|
-
if (end
|
|
48
|
+
if (end.eq(0)) {
|
|
41
49
|
return FillClassification.CLOSED_SHORT;
|
|
42
50
|
}
|
|
43
|
-
if (end
|
|
51
|
+
if (end.gt(0)) {
|
|
44
52
|
return FillClassification.SWITCHED_LONG;
|
|
45
53
|
}
|
|
46
|
-
if (end
|
|
54
|
+
if (end.lt(start)) {
|
|
47
55
|
return FillClassification.INCREASED_SHORT;
|
|
48
56
|
}
|
|
49
57
|
return FillClassification.REDUCED_SHORT;
|
|
@@ -52,10 +60,17 @@ export function classifyFillFromPosition(startPosition, side, sz) {
|
|
|
52
60
|
* Classify a fill as open or close based on realizedPnl.
|
|
53
61
|
* @deprecated Use `Fill.classification` instead — it uses startPosition
|
|
54
62
|
* for accurate open/increase/reduce/close/reverse classification.
|
|
63
|
+
* @returns `BUY` or `SELL` when `realizedPnl` is a string that is not a
|
|
64
|
+
* decimal string.
|
|
55
65
|
* @public
|
|
56
66
|
*/
|
|
57
67
|
export function classifyFill(side, realizedPnl) {
|
|
58
|
-
|
|
68
|
+
if (realizedPnl != null && !isDecimalString(realizedPnl)) {
|
|
69
|
+
return side === OrderSide.BUY
|
|
70
|
+
? FillClassification.BUY
|
|
71
|
+
: FillClassification.SELL;
|
|
72
|
+
}
|
|
73
|
+
const isClose = realizedPnl != null && !isDecimalStringZero(realizedPnl);
|
|
59
74
|
if (side === OrderSide.BUY) {
|
|
60
75
|
return isClose
|
|
61
76
|
? FillClassification.CLOSED_SHORT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"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"}
|