@lifi/perps-sdk-provider-hyperliquid 23.0.0 → 25.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/dist/cjs/utils/orderFormatting.d.ts.map +1 -1
- package/dist/cjs/utils/orderFormatting.js +4 -5
- package/dist/cjs/utils/orderFormatting.js.map +1 -1
- package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
- package/dist/cjs/utils/transferMargin.js +1 -6
- package/dist/cjs/utils/transferMargin.js.map +1 -1
- package/dist/esm/utils/orderFormatting.d.ts.map +1 -1
- package/dist/esm/utils/orderFormatting.js +6 -6
- package/dist/esm/utils/orderFormatting.js.map +1 -1
- package/dist/esm/utils/transferMargin.d.ts.map +1 -1
- package/dist/esm/utils/transferMargin.js +2 -7
- package/dist/esm/utils/transferMargin.js.map +1 -1
- package/dist/types/utils/orderFormatting.d.ts.map +1 -1
- package/dist/types/utils/transferMargin.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/utils/orderFormatting.ts +9 -8
- package/src/utils/transferMargin.ts +4 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAsBtD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAcD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CAMf;AAqBD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,
|
|
1
|
+
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAsBtD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAcD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CAMf;AAqBD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAaf"}
|
|
@@ -20,11 +20,10 @@ function snapOrderSize(size, szDecimals) {
|
|
|
20
20
|
return truncated.eq(0) ? '0' : truncated.toFixed();
|
|
21
21
|
}
|
|
22
22
|
function snapOrderPrice(price, szDecimals, market) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
23
|
+
const value = new big_js_1.default(price);
|
|
24
|
+
const sigFigDecimals = Math.max(0, 4 - value.e);
|
|
25
|
+
const decimals = Math.min(sigFigDecimals, getMaxPriceDecimals(szDecimals, market));
|
|
26
|
+
const rounded = value.round(decimals, big_js_1.default.roundHalfUp);
|
|
28
27
|
return rounded.eq(0) ? '0' : rounded.toFixed();
|
|
29
28
|
}
|
|
30
29
|
//# sourceMappingURL=orderFormatting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderFormatting.js","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":";;;;;AA+BA,kDAKC;AAcD,sCASC;AAqBD,
|
|
1
|
+
{"version":3,"file":"orderFormatting.js","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":";;;;;AA+BA,kDAKC;AAcD,sCASC;AAqBD,wCAiBC;AAvFD,oDAAwB;AAMxB,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,SAAS,cAAc,CAAC,MAAe;IACrC,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAA;AACnE,CAAC;AAUD,SAAgB,mBAAmB,CACjC,UAAkB,EAClB,MAAe;IAEf,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAA;AACzD,CAAC;AAcD,SAAgB,aAAa,CAC3B,IAAmB,EACnB,UAAkB;IAIlB,MAAM,SAAS,GAAG,IAAI,gBAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAG,CAAC,SAAS,CAAC,CAAA;IAEhE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC;AAqBD,SAAgB,cAAc,CAC5B,KAAoB,EACpB,UAAkB,EAClB,MAAe;IAEf,MAAM,KAAK,GAAG,IAAI,gBAAG,CAAC,KAAK,CAAC,CAAA;IAG5B,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,cAAc,EACd,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CACxC,CAAA;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAG,CAAC,WAAW,CAAC,CAAA;IAGtD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAChD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAA;AAoC1B,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GACjB,aAAa,GAAG,SAAS,CAwB3B"}
|
|
@@ -10,12 +10,7 @@ const big_js_1 = __importDefault(require("big.js"));
|
|
|
10
10
|
const NOTIONAL_FLOOR_RATIO = '0.1';
|
|
11
11
|
const AMOUNT_DECIMALS = 6;
|
|
12
12
|
function positionAmount(value, field) {
|
|
13
|
-
|
|
14
|
-
return new big_js_1.default(value);
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimal string on Position.${field}: '${value}'`);
|
|
18
|
-
}
|
|
13
|
+
return new big_js_1.default((0, perps_sdk_1.validateDecimalString)(value, `Position.${field}`));
|
|
19
14
|
}
|
|
20
15
|
function positivePositionAmount(value, field) {
|
|
21
16
|
const amount = positionAmount(value, field);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":";;;;;AA8CA,0DA0BC;AAxED,+CAKwB;AACxB,mDAI0B;AAC1B,oDAAwB;AAExB,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAClC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,SAAS,cAAc,CAAC,KAAoB,EAAE,KAAa;IACzD,OAAO,IAAI,gBAAG,CAAC,IAAA,iCAAqB,EAAC,KAAK,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAoB,EAAE,KAAa;IACjE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,YAAY,KAAK,6BAA6B,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAiBD,SAAgB,uBAAuB,CACrC,QAAkB;IAElB,IAAI,CAAC,IAAA,4CAAgC,EAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,IAAA,yCAA6B,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACpE,MAAM,aAAa,GAAG,sBAAsB,CAC1C,QAAQ,CAAC,wBAAwB,EACjC,0BAA0B,CAC3B,CAAA;IACD,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SAChE,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SAC9D,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC9B,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC;QACnD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAA;IAEjB,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACjD,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;AAClE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AActD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CAMf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,
|
|
1
|
+
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AActD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CAMf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAaf"}
|
|
@@ -66,12 +66,12 @@ export function snapOrderSize(size, szDecimals) {
|
|
|
66
66
|
* @public
|
|
67
67
|
*/
|
|
68
68
|
export function snapOrderPrice(price, szDecimals, market) {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
const value = new Big(price);
|
|
70
|
+
// Big's `e` is the base-10 exponent of the leading digit. Integer prices
|
|
71
|
+
// bypass the 5 sig-fig rule, so the sig-fig grid never goes coarser than 1.
|
|
72
|
+
const sigFigDecimals = Math.max(0, 4 - value.e);
|
|
73
|
+
const decimals = Math.min(sigFigDecimals, getMaxPriceDecimals(szDecimals, market));
|
|
74
|
+
const rounded = value.round(decimals, Big.roundHalfUp);
|
|
75
75
|
// toFixed() with no dp always emits plain notation; eq(0) guards '-0'
|
|
76
76
|
return rounded.eq(0) ? '0' : rounded.toFixed();
|
|
77
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderFormatting.js","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,GAAG,MAAM,QAAQ,CAAA;AAExB;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,SAAS,cAAc,CAAC,MAAe;IACrC,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAA;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,MAAe;IAEf,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAmB,EACnB,UAAkB;IAElB,wEAAwE;IACxE,4BAA4B;IAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IAChE,sEAAsE;IACtE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAoB,EACpB,UAAkB,EAClB,MAAe;IAEf,MAAM,
|
|
1
|
+
{"version":3,"file":"orderFormatting.js","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,GAAG,MAAM,QAAQ,CAAA;AAExB;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,SAAS,cAAc,CAAC,MAAe;IACrC,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAA;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,MAAe;IAEf,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAmB,EACnB,UAAkB;IAElB,wEAAwE;IACxE,4BAA4B;IAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IAChE,sEAAsE;IACtE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAoB,EACpB,UAAkB,EAClB,MAAe;IAEf,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,cAAc,EACd,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CACxC,CAAA;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IAEtD,sEAAsE;IACtE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAChD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAA;AAqB1B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GACjB,aAAa,GAAG,SAAS,CAwB3B"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import { PerpsError, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, } from '@lifi/perps-sdk';
|
|
1
|
+
import { PerpsError, positionSupportsMarginAdjustment, positionSupportsMarginRemoval, validateDecimalString, } from '@lifi/perps-sdk';
|
|
2
2
|
import { PerpsErrorCode, } from '@lifi/perps-types';
|
|
3
3
|
import Big from 'big.js';
|
|
4
4
|
const NOTIONAL_FLOOR_RATIO = '0.1';
|
|
5
5
|
const AMOUNT_DECIMALS = 6;
|
|
6
6
|
function positionAmount(value, field) {
|
|
7
|
-
|
|
8
|
-
return new Big(value);
|
|
9
|
-
}
|
|
10
|
-
catch {
|
|
11
|
-
throw new PerpsError(PerpsErrorCode.ValidationError, `Invalid decimal string on Position.${field}: '${value}'`);
|
|
12
|
-
}
|
|
7
|
+
return new Big(validateDecimalString(value, `Position.${field}`));
|
|
13
8
|
}
|
|
14
9
|
function positivePositionAmount(value, field) {
|
|
15
10
|
const amount = positionAmount(value, field);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gCAAgC,EAChC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAEL,cAAc,GAEf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,GAAG,MAAM,QAAQ,CAAA;AAExB,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAClC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,SAAS,cAAc,CAAC,KAAoB,EAAE,KAAa;IACzD,OAAO,IAAI,GAAG,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAoB,EAAE,KAAa;IACjE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,YAAY,KAAK,6BAA6B,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAkB;IAElB,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACpE,MAAM,aAAa,GAAG,sBAAsB,CAC1C,QAAQ,CAAC,wBAAwB,EACjC,0BAA0B,CAC3B,CAAA;IACD,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SAChE,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SAC9D,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC9B,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC;QACnD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAA;IAEjB,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACjD,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;AAClE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AActD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CAMf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,
|
|
1
|
+
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AActD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CAMf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAaf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAA;AAqB1B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GACjB,aAAa,GAAG,SAAS,CAwB3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-hyperliquid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "25.0.0",
|
|
4
4
|
"description": "Hyperliquid provider plugin for @lifi/perps-sdk",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"big.js": "^7.0.1",
|
|
51
51
|
"viem": "^2.55.18",
|
|
52
|
-
"@lifi/perps-types": "^20.
|
|
52
|
+
"@lifi/perps-types": "^20.2.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@lifi/perps-sdk": "^
|
|
55
|
+
"@lifi/perps-sdk": "^23.1.0"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
@@ -83,14 +83,15 @@ export function snapOrderPrice(
|
|
|
83
83
|
szDecimals: number,
|
|
84
84
|
market?: string
|
|
85
85
|
): DecimalString {
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
const value = new Big(price)
|
|
87
|
+
// Big's `e` is the base-10 exponent of the leading digit. Integer prices
|
|
88
|
+
// bypass the 5 sig-fig rule, so the sig-fig grid never goes coarser than 1.
|
|
89
|
+
const sigFigDecimals = Math.max(0, 4 - value.e)
|
|
90
|
+
const decimals = Math.min(
|
|
91
|
+
sigFigDecimals,
|
|
92
|
+
getMaxPriceDecimals(szDecimals, market)
|
|
93
|
+
)
|
|
94
|
+
const rounded = value.round(decimals, Big.roundHalfUp)
|
|
94
95
|
|
|
95
96
|
// toFixed() with no dp always emits plain notation; eq(0) guards '-0'
|
|
96
97
|
return rounded.eq(0) ? '0' : rounded.toFixed()
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
PerpsError,
|
|
3
3
|
positionSupportsMarginAdjustment,
|
|
4
4
|
positionSupportsMarginRemoval,
|
|
5
|
+
validateDecimalString,
|
|
5
6
|
} from '@lifi/perps-sdk'
|
|
6
7
|
import {
|
|
7
8
|
type DecimalString,
|
|
@@ -13,18 +14,11 @@ import Big from 'big.js'
|
|
|
13
14
|
const NOTIONAL_FLOOR_RATIO = '0.1'
|
|
14
15
|
const AMOUNT_DECIMALS = 6
|
|
15
16
|
|
|
16
|
-
function positionAmount(value:
|
|
17
|
-
|
|
18
|
-
return new Big(value)
|
|
19
|
-
} catch {
|
|
20
|
-
throw new PerpsError(
|
|
21
|
-
PerpsErrorCode.ValidationError,
|
|
22
|
-
`Invalid decimal string on Position.${field}: '${value}'`
|
|
23
|
-
)
|
|
24
|
-
}
|
|
17
|
+
function positionAmount(value: DecimalString, field: string): Big {
|
|
18
|
+
return new Big(validateDecimalString(value, `Position.${field}`))
|
|
25
19
|
}
|
|
26
20
|
|
|
27
|
-
function positivePositionAmount(value:
|
|
21
|
+
function positivePositionAmount(value: DecimalString, field: string): Big {
|
|
28
22
|
const amount = positionAmount(value, field)
|
|
29
23
|
if (amount.lte(0)) {
|
|
30
24
|
throw new PerpsError(
|