@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,7 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export declare const
|
|
4
|
-
export declare function
|
|
5
|
-
export declare
|
|
6
|
-
export declare
|
|
1
|
+
export type DecimalRounding = 'truncate' | 'round' | 'up';
|
|
2
|
+
export declare function roundDecimalString(value: string, decimals: number, rounding: DecimalRounding): string;
|
|
3
|
+
export declare const safeRoundDecimalString: (value: string, decimals: number, rounding: DecimalRounding) => string | undefined;
|
|
4
|
+
export declare function decimalStringToScaledInteger(value: string, decimals: number, rounding: DecimalRounding): number;
|
|
5
|
+
export declare const safeDecimalStringToScaledInteger: (value: string, decimals: number, rounding: DecimalRounding) => number | undefined;
|
|
6
|
+
export declare const BASE_UNITS_PATTERN: RegExp;
|
|
7
|
+
export declare function scaledIntegerToDecimalString(amount: string, decimals: number): string;
|
|
8
|
+
export declare const safeScaledIntegerToDecimalString: (amount: string, decimals: number) => string | undefined;
|
|
9
|
+
export declare function truncateDecimal(value: string, decimals: number): string;
|
|
10
|
+
export declare const safeTruncateDecimal: (value: string, decimals: number) => string | undefined;
|
|
11
|
+
export declare function numberToDecimalString(value: number): string;
|
|
12
|
+
export declare const safeNumberToDecimalString: (value: number) => string | undefined;
|
|
7
13
|
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,CAAA;AAiBzD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,eAAe,GACxB,MAAM,CAUR;AAOD,eAAO,MAAM,sBAAsB,oFAGlC,CAAA;AAYD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,eAAe,GACxB,MAAM,CAuBR;AAQD,eAAO,MAAM,gCAAgC,oFAG5C,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAU3C,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAcR;AAQD,eAAO,MAAM,gCAAgC,0DAG5C,CAAA;AAiBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUvE;AAOD,eAAO,MAAM,mBAAmB,yDAG/B,CAAA;AAYD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS3D;AAOD,eAAO,MAAM,yBAAyB,uCAGrC,CAAA"}
|
|
@@ -3,45 +3,66 @@ 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.
|
|
7
|
-
exports.
|
|
6
|
+
exports.safeNumberToDecimalString = exports.safeTruncateDecimal = exports.safeScaledIntegerToDecimalString = exports.BASE_UNITS_PATTERN = exports.safeDecimalStringToScaledInteger = exports.safeRoundDecimalString = void 0;
|
|
7
|
+
exports.roundDecimalString = roundDecimalString;
|
|
8
|
+
exports.decimalStringToScaledInteger = decimalStringToScaledInteger;
|
|
9
|
+
exports.scaledIntegerToDecimalString = scaledIntegerToDecimalString;
|
|
8
10
|
exports.truncateDecimal = truncateDecimal;
|
|
9
11
|
exports.numberToDecimalString = numberToDecimalString;
|
|
10
12
|
const perps_types_1 = require("@lifi/perps-types");
|
|
11
13
|
const big_js_1 = __importDefault(require("big.js"));
|
|
12
14
|
const viem_1 = require("viem");
|
|
13
15
|
const PerpsError_js_1 = require("../errors/PerpsError.js");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
+
const createSafeFunction_js_1 = require("../utils/createSafeFunction.js");
|
|
17
|
+
const decimalStringToBig_js_1 = require("./decimalStringToBig.js");
|
|
18
|
+
const parse_js_1 = require("./parse.js");
|
|
19
|
+
const BIG_ROUNDING = {
|
|
20
|
+
truncate: big_js_1.default.roundDown,
|
|
21
|
+
round: big_js_1.default.roundHalfUp,
|
|
22
|
+
up: big_js_1.default.roundUp,
|
|
23
|
+
};
|
|
24
|
+
function roundDecimalString(value, decimals, rounding) {
|
|
25
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
26
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimals for rounding: ${decimals}`);
|
|
27
|
+
}
|
|
28
|
+
return (0, decimalStringToBig_js_1.bigToDecimalString)((0, decimalStringToBig_js_1.decimalStringToBig)(value).round(decimals, BIG_ROUNDING[rounding]));
|
|
29
|
+
}
|
|
30
|
+
exports.safeRoundDecimalString = (0, createSafeFunction_js_1.createSafeFunction)('roundDecimalString', roundDecimalString);
|
|
31
|
+
function decimalStringToScaledInteger(value, decimals, rounding) {
|
|
32
|
+
if (!(0, parse_js_1.isDecimalString)(value)) {
|
|
33
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `'${value}' is not a decimal string.`);
|
|
34
|
+
}
|
|
16
35
|
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
17
36
|
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimals for integer scaling: ${decimals}`);
|
|
18
37
|
}
|
|
19
|
-
const scaled =
|
|
38
|
+
const scaled = new big_js_1.default(value)
|
|
20
39
|
.times(new big_js_1.default(10).pow(decimals))
|
|
21
|
-
.round(0, rounding
|
|
40
|
+
.round(0, BIG_ROUNDING[rounding]);
|
|
22
41
|
if (scaled.abs().gt(Number.MAX_SAFE_INTEGER)) {
|
|
23
42
|
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Scaled value ${scaled.toFixed()} exceeds Number.MAX_SAFE_INTEGER and cannot be encoded exactly.`);
|
|
24
43
|
}
|
|
25
44
|
return scaled.toNumber();
|
|
26
|
-
}
|
|
27
|
-
exports.
|
|
28
|
-
|
|
29
|
-
function
|
|
45
|
+
}
|
|
46
|
+
exports.safeDecimalStringToScaledInteger = (0, createSafeFunction_js_1.createSafeFunction)('decimalStringToScaledInteger', decimalStringToScaledInteger);
|
|
47
|
+
exports.BASE_UNITS_PATTERN = /^-?\d+$/;
|
|
48
|
+
function scaledIntegerToDecimalString(amount, decimals) {
|
|
30
49
|
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
31
|
-
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`
|
|
50
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`scaledIntegerToDecimalString(decimals)\`: ${decimals} is not a non-negative integer.`);
|
|
32
51
|
}
|
|
33
|
-
if (!BASE_UNITS_PATTERN.test(amount)) {
|
|
34
|
-
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`
|
|
52
|
+
if (!exports.BASE_UNITS_PATTERN.test(amount)) {
|
|
53
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid \`scaledIntegerToDecimalString(amount)\`: '${amount}' is not an integer base-unit string.`);
|
|
35
54
|
}
|
|
36
55
|
return (0, viem_1.formatUnits)(BigInt(amount), decimals);
|
|
37
56
|
}
|
|
57
|
+
exports.safeScaledIntegerToDecimalString = (0, createSafeFunction_js_1.createSafeFunction)('scaledIntegerToDecimalString', scaledIntegerToDecimalString);
|
|
38
58
|
function truncateDecimal(value, decimals) {
|
|
39
59
|
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
40
60
|
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimals for truncation: ${decimals}`);
|
|
41
61
|
}
|
|
42
|
-
const truncated = (0,
|
|
62
|
+
const truncated = (0, decimalStringToBig_js_1.decimalStringToBig)(value).round(decimals, big_js_1.default.roundDown);
|
|
43
63
|
return (truncated.eq(0) ? new big_js_1.default(0) : truncated).toFixed(decimals);
|
|
44
64
|
}
|
|
65
|
+
exports.safeTruncateDecimal = (0, createSafeFunction_js_1.createSafeFunction)('truncateDecimal', truncateDecimal);
|
|
45
66
|
function numberToDecimalString(value) {
|
|
46
67
|
if (!Number.isFinite(value)) {
|
|
47
68
|
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid number for decimal conversion: ${value}`);
|
|
@@ -49,4 +70,5 @@ function numberToDecimalString(value) {
|
|
|
49
70
|
const parsed = new big_js_1.default(value);
|
|
50
71
|
return (parsed.eq(0) ? new big_js_1.default(0) : parsed).toFixed();
|
|
51
72
|
}
|
|
73
|
+
exports.safeNumberToDecimalString = (0, createSafeFunction_js_1.createSafeFunction)('numberToDecimalString', numberToDecimalString);
|
|
52
74
|
//# sourceMappingURL=convert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/decimal/convert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import Big from 'big.js';
|
|
2
|
+
export declare function decimalStringToBig(value: string): Big;
|
|
3
|
+
export declare function bigToDecimalString(value: Big): string;
|
|
4
|
+
export declare function decimalStringToDivBig(value: string): Big;
|
|
5
|
+
//# sourceMappingURL=decimalStringToBig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimalStringToBig.d.ts","sourceRoot":"","sources":["../../../src/decimal/decimalStringToBig.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,QAAQ,CAAA;AAexB,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAUrD;AAOD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAErD;AASD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAExD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.decimalStringToBig = decimalStringToBig;
|
|
7
|
+
exports.bigToDecimalString = bigToDecimalString;
|
|
8
|
+
exports.decimalStringToDivBig = decimalStringToDivBig;
|
|
9
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
10
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
11
|
+
const PerpsError_js_1 = require("../errors/PerpsError.js");
|
|
12
|
+
const big_js_2 = require("./big.js");
|
|
13
|
+
const DISPLAY_CHARACTERS = /[\s$%,]/g;
|
|
14
|
+
function decimalStringToBig(value) {
|
|
15
|
+
const cleaned = typeof value === 'string' ? value.replace(DISPLAY_CHARACTERS, '') : '';
|
|
16
|
+
if (!perps_types_1.DECIMAL_PATTERN.test(cleaned)) {
|
|
17
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `'${String(value)}' is not a decimal string.`);
|
|
18
|
+
}
|
|
19
|
+
return new big_js_1.default(cleaned);
|
|
20
|
+
}
|
|
21
|
+
function bigToDecimalString(value) {
|
|
22
|
+
return value.eq(0) ? '0' : value.toFixed();
|
|
23
|
+
}
|
|
24
|
+
function decimalStringToDivBig(value) {
|
|
25
|
+
return new big_js_2.DivBig(decimalStringToBig(value));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=decimalStringToBig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimalStringToBig.js","sourceRoot":"","sources":["../../../src/decimal/decimalStringToBig.ts"],"names":[],"mappings":";;;;;AAgBA,gDAUC;AAOD,gDAEC;AASD,sDAEC;AA9CD,mDAAmE;AACnE,oDAAwB;AACxB,2DAAoD;AACpD,qCAAiC;AAEjC,MAAM,kBAAkB,GAAG,UAAU,CAAA;AAWrC,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACxE,IAAI,CAAC,6BAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAC9C,CAAA;IACH,CAAC;IACD,OAAO,IAAI,gBAAG,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAOD,SAAgB,kBAAkB,CAAC,KAAU;IAC3C,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;AAC5C,CAAC;AASD,SAAgB,qBAAqB,CAAC,KAAa;IACjD,OAAO,IAAI,eAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/decimal/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/decimal/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAStD,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAKjB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAA;IAOf,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAOD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAI7C,KAAK,WAAW,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AA2FrE,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAgBR;AAUD,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAgBR;AAWD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAgBR;AAWD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAgBR;AAYD,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAwBR;AAWD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAqBR"}
|
|
@@ -1,4 +1,7 @@
|
|
|
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.formatNumber = formatNumber;
|
|
4
7
|
exports.formatUsd = formatUsd;
|
|
@@ -6,118 +9,136 @@ exports.formatSignedUsd = formatSignedUsd;
|
|
|
6
9
|
exports.formatSignedPercent = formatSignedPercent;
|
|
7
10
|
exports.formatPrice = formatPrice;
|
|
8
11
|
exports.formatCompactUsd = formatCompactUsd;
|
|
12
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
13
|
+
const decimalStringToBig_js_1 = require("./decimalStringToBig.js");
|
|
9
14
|
const DEFAULT_PLACEHOLDER = '—';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (!cleaned) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
n = Number(cleaned);
|
|
19
|
-
}
|
|
20
|
-
else if (typeof value === 'number') {
|
|
21
|
-
n = value;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
15
|
+
function toBig(value) {
|
|
16
|
+
if (typeof value === 'number') {
|
|
17
|
+
return Number.isFinite(value) ? new big_js_1.default(value) : null;
|
|
18
|
+
}
|
|
19
|
+
if (typeof value !== 'string' || value.trim() === '') {
|
|
24
20
|
return null;
|
|
25
21
|
}
|
|
26
|
-
|
|
22
|
+
try {
|
|
23
|
+
return (0, decimalStringToBig_js_1.decimalStringToBig)(value);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
27
28
|
}
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return Number(s.slice(0, cut));
|
|
29
|
+
function decimalSeparator(locale) {
|
|
30
|
+
return (new Intl.NumberFormat(locale)
|
|
31
|
+
.formatToParts(1.5)
|
|
32
|
+
.find((part) => part.type === 'decimal')?.value ?? '.');
|
|
33
33
|
}
|
|
34
|
-
function signAndBody(
|
|
35
|
-
const reduced = rounding === 'floor'
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
function signAndBody(value, decimals, locale, grouping, rounding, signed) {
|
|
35
|
+
const reduced = value.round(decimals, rounding === 'floor' ? big_js_1.default.roundDown : big_js_1.default.roundHalfUp);
|
|
36
|
+
const sign = reduced.lt(0) ? '-' : signed && reduced.gt(0) ? '+' : '';
|
|
37
|
+
const [integerPart = '0', fractionPart] = reduced
|
|
38
|
+
.abs()
|
|
39
|
+
.toFixed(decimals)
|
|
40
|
+
.split('.');
|
|
41
|
+
const integerBody = grouping
|
|
42
|
+
? BigInt(integerPart).toLocaleString(locale)
|
|
43
|
+
: integerPart;
|
|
44
|
+
const body = fractionPart === undefined
|
|
45
|
+
? integerBody
|
|
46
|
+
: `${integerBody}${decimalSeparator(locale)}${fractionPart}`;
|
|
44
47
|
return { sign, body };
|
|
45
48
|
}
|
|
46
49
|
function autoDecimals(abs) {
|
|
47
|
-
if (abs
|
|
50
|
+
if (abs.gte(1)) {
|
|
48
51
|
return 2;
|
|
49
52
|
}
|
|
50
|
-
if (abs
|
|
53
|
+
if (abs.gte('0.1')) {
|
|
51
54
|
return 4;
|
|
52
55
|
}
|
|
53
|
-
if (abs
|
|
56
|
+
if (abs.gte('0.01')) {
|
|
54
57
|
return 5;
|
|
55
58
|
}
|
|
56
59
|
return 6;
|
|
57
60
|
}
|
|
58
61
|
function formatNumber(value, options = {}) {
|
|
59
62
|
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
60
|
-
const n =
|
|
63
|
+
const n = toBig(value);
|
|
61
64
|
if (n === null) {
|
|
62
65
|
return placeholder;
|
|
63
66
|
}
|
|
67
|
+
if (typeof n === 'string') {
|
|
68
|
+
return n;
|
|
69
|
+
}
|
|
64
70
|
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false);
|
|
65
71
|
return `${sign}${body}`;
|
|
66
72
|
}
|
|
67
73
|
function formatUsd(value, options = {}) {
|
|
68
74
|
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
69
|
-
const n =
|
|
75
|
+
const n = toBig(value);
|
|
70
76
|
if (n === null) {
|
|
71
77
|
return placeholder;
|
|
72
78
|
}
|
|
79
|
+
if (typeof n === 'string') {
|
|
80
|
+
return n;
|
|
81
|
+
}
|
|
73
82
|
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false);
|
|
74
83
|
return `${sign}$${body}`;
|
|
75
84
|
}
|
|
76
85
|
function formatSignedUsd(value, options = {}) {
|
|
77
86
|
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
78
|
-
const n =
|
|
87
|
+
const n = toBig(value);
|
|
79
88
|
if (n === null) {
|
|
80
89
|
return placeholder;
|
|
81
90
|
}
|
|
91
|
+
if (typeof n === 'string') {
|
|
92
|
+
return n;
|
|
93
|
+
}
|
|
82
94
|
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, true);
|
|
83
95
|
return `${sign}$${body}`;
|
|
84
96
|
}
|
|
85
97
|
function formatSignedPercent(value, options = {}) {
|
|
86
98
|
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
87
|
-
const n =
|
|
99
|
+
const n = toBig(value);
|
|
88
100
|
if (n === null) {
|
|
89
101
|
return placeholder;
|
|
90
102
|
}
|
|
103
|
+
if (typeof n === 'string') {
|
|
104
|
+
return n;
|
|
105
|
+
}
|
|
91
106
|
const { sign, body } = signAndBody(n, decimals, locale, false, rounding, true);
|
|
92
107
|
return `${sign}${body}%`;
|
|
93
108
|
}
|
|
94
109
|
function formatPrice(value, options = {}) {
|
|
95
110
|
const { placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
96
|
-
const n =
|
|
111
|
+
const n = toBig(value);
|
|
97
112
|
if (n === null) {
|
|
98
113
|
return placeholder;
|
|
99
114
|
}
|
|
100
|
-
|
|
115
|
+
if (typeof n === 'string') {
|
|
116
|
+
return n;
|
|
117
|
+
}
|
|
118
|
+
const abs = n.abs();
|
|
101
119
|
const decimals = options.decimals ?? autoDecimals(abs);
|
|
102
|
-
const { sign, body } = signAndBody(n, decimals, locale, abs
|
|
120
|
+
const { sign, body } = signAndBody(n, decimals, locale, abs.gte(1000), rounding, false);
|
|
103
121
|
return `${sign}$${body}`;
|
|
104
122
|
}
|
|
105
123
|
function formatCompactUsd(value, options = {}) {
|
|
106
124
|
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER } = options;
|
|
107
|
-
const n =
|
|
125
|
+
const n = toBig(value);
|
|
108
126
|
if (n === null) {
|
|
109
127
|
return placeholder;
|
|
110
128
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
129
|
+
if (typeof n === 'string') {
|
|
130
|
+
return n;
|
|
131
|
+
}
|
|
132
|
+
const sign = n.lt(0) ? '-' : '';
|
|
133
|
+
const abs = n.abs();
|
|
134
|
+
if (abs.gte(1_000_000_000)) {
|
|
135
|
+
return `${sign}$${abs.div(1_000_000_000).toFixed(decimals)}B`;
|
|
115
136
|
}
|
|
116
|
-
if (abs
|
|
117
|
-
return `${sign}$${(
|
|
137
|
+
if (abs.gte(1_000_000)) {
|
|
138
|
+
return `${sign}$${abs.div(1_000_000).toFixed(decimals)}M`;
|
|
118
139
|
}
|
|
119
|
-
if (abs
|
|
120
|
-
return `${sign}$${(
|
|
140
|
+
if (abs.gte(1_000)) {
|
|
141
|
+
return `${sign}$${abs.div(1_000).toFixed(decimals)}K`;
|
|
121
142
|
}
|
|
122
143
|
return `${sign}$${abs.toFixed(decimals)}`;
|
|
123
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/decimal/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/decimal/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
export declare
|
|
3
|
-
export declare function isDecimalString(value: unknown): value is
|
|
1
|
+
export declare function decimalStringToNumber(value: string): number;
|
|
2
|
+
export declare const safeDecimalStringToNumber: (value: string) => number | undefined;
|
|
3
|
+
export declare function isDecimalString(value: unknown): value is string;
|
|
4
|
+
export declare function unknownToDecimalString(value: unknown, field: string, tool: string): string;
|
|
4
5
|
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"AAeA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS3D;AAOD,eAAO,MAAM,yBAAyB,uCAGrC,CAAA;AAQD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE/D;AAqCD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,MAAM,CAWR"}
|
|
@@ -1,33 +1,58 @@
|
|
|
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.
|
|
6
|
+
exports.safeDecimalStringToNumber = void 0;
|
|
7
|
+
exports.decimalStringToNumber = decimalStringToNumber;
|
|
4
8
|
exports.isDecimalString = isDecimalString;
|
|
9
|
+
exports.unknownToDecimalString = unknownToDecimalString;
|
|
5
10
|
const perps_types_1 = require("@lifi/perps-types");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
12
|
+
const PerpsError_js_1 = require("../errors/PerpsError.js");
|
|
13
|
+
const createSafeFunction_js_1 = require("../utils/createSafeFunction.js");
|
|
14
|
+
const decimalStringToBig_js_1 = require("./decimalStringToBig.js");
|
|
15
|
+
function decimalStringToNumber(value) {
|
|
16
|
+
const parsed = (0, decimalStringToBig_js_1.decimalStringToBig)(value).toNumber();
|
|
17
|
+
if (!Number.isFinite(parsed)) {
|
|
18
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `'${value}' is too large for a finite number.`);
|
|
9
19
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return
|
|
20
|
+
return parsed;
|
|
21
|
+
}
|
|
22
|
+
exports.safeDecimalStringToNumber = (0, createSafeFunction_js_1.createSafeFunction)('decimalStringToNumber', decimalStringToNumber);
|
|
23
|
+
function isDecimalString(value) {
|
|
24
|
+
return typeof value === 'string' && perps_types_1.DECIMAL_PATTERN.test(value);
|
|
15
25
|
}
|
|
16
|
-
const
|
|
17
|
-
function
|
|
18
|
-
if (value
|
|
26
|
+
const MAX_SPELLED_EXPONENT = 1000;
|
|
27
|
+
function spellDecimal(value) {
|
|
28
|
+
if (isDecimalString(value)) {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
if (typeof value !== 'string' && typeof value !== 'number') {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
19
35
|
return undefined;
|
|
20
36
|
}
|
|
21
|
-
|
|
22
|
-
|
|
37
|
+
let parsed;
|
|
38
|
+
try {
|
|
39
|
+
parsed = new big_js_1.default(value);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return undefined;
|
|
23
43
|
}
|
|
24
|
-
if (
|
|
44
|
+
if (Math.abs(parsed.e) > MAX_SPELLED_EXPONENT) {
|
|
25
45
|
return undefined;
|
|
26
46
|
}
|
|
27
|
-
|
|
28
|
-
return Number.isFinite(parsed) ? parsed : undefined;
|
|
47
|
+
return (parsed.eq(0) ? new big_js_1.default(0) : parsed).toFixed();
|
|
29
48
|
}
|
|
30
|
-
function
|
|
31
|
-
|
|
49
|
+
function unknownToDecimalString(value, field, tool) {
|
|
50
|
+
const decimal = spellDecimal(value);
|
|
51
|
+
if (decimal !== undefined) {
|
|
52
|
+
return decimal;
|
|
53
|
+
}
|
|
54
|
+
const error = new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `${tool} field \`${field}\` is not a valid decimal: '${String(value)}'`);
|
|
55
|
+
error.tool = tool;
|
|
56
|
+
throw error;
|
|
32
57
|
}
|
|
33
58
|
//# sourceMappingURL=parse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/decimal/parse.ts"],"names":[],"mappings":";;;;;;AAeA,sDASC;AAkBD,0CAEC;AAqCD,wDAeC;AAhGD,mDAAmE;AACnE,oDAAwB;AACxB,2DAAoD;AACpD,0EAAmE;AACnE,mEAA4D;AAW5D,SAAgB,qBAAqB,CAAC,KAAa;IACjD,MAAM,MAAM,GAAG,IAAA,0CAAkB,EAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,IAAI,KAAK,qCAAqC,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAOY,QAAA,yBAAyB,GAAG,IAAA,0CAAkB,EACzD,uBAAuB,EACvB,qBAAqB,CACtB,CAAA;AAQD,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,6BAAe,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,gBAAG,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,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,gBAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AACvD,CAAC;AAYD,SAAgB,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,0BAAU,CAC1B,4BAAc,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/cjs/index.d.ts
CHANGED
|
@@ -2,17 +2,19 @@ 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
|
|
6
|
-
export {
|
|
5
|
+
export { absDecimalString, addDecimalString, divideDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, safeAbsDecimalString, safeAddDecimalString, safeDivideDecimalString, safeDivideDecimalStringRoundDown, safeMultiplyDecimalString, safeSubtractDecimalString, subtractDecimalString, } from './decimal/arithmetic.js';
|
|
6
|
+
export { compareDecimalStrings, isDecimalStringGreaterThan, isDecimalStringZero, safeCompareDecimalStrings, safeIsDecimalStringGreaterThan, safeIsDecimalStringZero, } from './decimal/compare.js';
|
|
7
|
+
export type { DecimalRounding } from './decimal/convert.js';
|
|
8
|
+
export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString, safeTruncateDecimal, scaledIntegerToDecimalString, truncateDecimal, } from './decimal/convert.js';
|
|
7
9
|
export type { FormatOptions, RoundingMode } from './decimal/format.js';
|
|
8
10
|
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
|
|
9
|
-
export { isDecimalString,
|
|
11
|
+
export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, unknownToDecimalString, } from './decimal/parse.js';
|
|
10
12
|
export { PerpsErrorMessage } from './errors/constants.js';
|
|
11
13
|
export { PerpsError } from './errors/PerpsError.js';
|
|
12
14
|
export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
|
|
13
15
|
export type { ExpectedPnl } from './math/order.js';
|
|
14
|
-
export {
|
|
15
|
-
export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateNewLeverage, estimateUnrealizedPnl, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, wouldImmediatelyLiquidate, } from './math/position.js';
|
|
16
|
+
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';
|
|
17
|
+
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';
|
|
16
18
|
export { AssetRegistry, getAssetRegistry, toAssetDisplay, } from './registry/assetRegistry.js';
|
|
17
19
|
export type { DefaultMarketProvider } from './registry/marketRegistry.js';
|
|
18
20
|
export { DEFAULT_MARKET_ID, getDefaultMarketId, getMarketRegistry, isActiveMarket, MarketRegistry, toMarketDisplay, toPerpsMarketDisplay, } from './registry/marketRegistry.js';
|
|
@@ -66,18 +68,19 @@ export type { FetchWithRetryOptions } from './transport/fetchWithRetry.js';
|
|
|
66
68
|
export { fetchWithRetry, isAbortError } from './transport/fetchWithRetry.js';
|
|
67
69
|
export type { ProviderRetryConfig, ResolvedRetryPolicy, RetryAttemptContext, RetryClassification, RetryClassifyContext, RetryConfig, RetryPolicy, } from './transport/retryPolicy.js';
|
|
68
70
|
export { DISABLED_RETRY, LIFI_REQUEST_KEY, LIFI_RETRY_DEFAULTS, resolveRetryPolicy, } from './transport/retryPolicy.js';
|
|
69
|
-
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';
|
|
71
|
+
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';
|
|
70
72
|
export type { PerpsBaseConfig, PerpsClientSigner, RequestInterceptor, SDKRequestOptions, SwitchChainHook, } from './types/config.js';
|
|
71
73
|
export type { DeclaredDepositAsset, DepositFlow, DepositFlowFirstDepositPipeline, DepositFlowLifiSwap, DepositFlowSetupRequired, } from './types/deposit.js';
|
|
72
|
-
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';
|
|
73
|
-
export type { ProviderWithdrawableBalance, WithdrawableBalance,
|
|
74
|
+
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';
|
|
75
|
+
export type { ProviderWithdrawableBalance, WithdrawableBalance, WithdrawalSourceTypes, WithdrawalTypeOption, WithdrawFlow, WithdrawFlowReady, WithdrawFlowSetupRequired, } from './types/withdrawal.js';
|
|
74
76
|
export { paginateActivity } from './utils/activityPaging.js';
|
|
75
77
|
export { ETHEREUM_NATIVE_GAS, ETHEREUM_USDC, HYPERLIQUID_USDC, LIGHTER_USDC, ROBINHOOD_NATIVE_GAS, ROBINHOOD_USDG, } from './utils/depositAssets.js';
|
|
76
78
|
export { ExplorerChainId, explorerTxUrl, explorerTxUrlFromBase, } from './utils/explorer.js';
|
|
77
79
|
export { ACTIVE_ORDER_STATUSES, isActiveOrderStatus, isRegularOrder, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, isTriggerOrder, isTwapOrder, triggerConditionFor, } from './utils/orderClassification.js';
|
|
78
80
|
export { isSetupOptionFor, selectUserSetupActions, } from './utils/setupActions.js';
|
|
79
81
|
export { signTypedData, signTypedDataWithSigner, } from './utils/signTypedData.js';
|
|
80
|
-
export {
|
|
82
|
+
export { safeTimestampToIsoString, timestampToIsoString, } from './utils/timestampToIsoString.js';
|
|
83
|
+
export { createWarnOnce, warnSkippedVenueRow } from './utils/warnOnce.js';
|
|
81
84
|
export { name, version } from './version.js';
|
|
82
85
|
export { cachePromise } from './websocket/cachePromise.js';
|
|
83
86
|
export type { DecodeChainMode } from './websocket/decodeChain.js';
|
|
@@ -92,7 +95,7 @@ export { wsLog } from './websocket/wsLog.js';
|
|
|
92
95
|
export type { OrderAmounts, OrderAmountsInput, } from './wire/orderAmounts.js';
|
|
93
96
|
export { calculateOrderAmounts } from './wire/orderAmounts.js';
|
|
94
97
|
export type { RefuelAmountInput } from './wire/refuel.js';
|
|
95
|
-
export { calculateRefuelAmount } from './wire/refuel.js';
|
|
98
|
+
export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
|
|
96
99
|
export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
|
|
97
100
|
export { calculateTransferable } from './wire/transferable.js';
|
|
98
101
|
export { calculateWithdrawMax } from './wire/withdraw.js';
|