@lifi/perps-sdk 21.1.0 → 22.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 +84 -16
- package/dist/cjs/client/PerpsClient.d.ts +3 -3
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/decimal/convert.d.ts +1 -5
- package/dist/cjs/decimal/convert.d.ts.map +1 -1
- package/dist/cjs/decimal/convert.js +10 -28
- package/dist/cjs/decimal/convert.js.map +1 -1
- package/dist/cjs/decimal/format.d.ts +2 -1
- package/dist/cjs/decimal/format.d.ts.map +1 -1
- package/dist/cjs/decimal/format.js.map +1 -1
- package/dist/cjs/decimal/parse.d.ts +2 -4
- package/dist/cjs/decimal/parse.d.ts.map +1 -1
- package/dist/cjs/decimal/parse.js +5 -2
- package/dist/cjs/decimal/parse.js.map +1 -1
- package/dist/cjs/decimal/requireDecimal.d.ts.map +1 -0
- package/dist/cjs/{wire → decimal}/requireDecimal.js +2 -1
- package/dist/cjs/decimal/requireDecimal.js.map +1 -0
- package/dist/cjs/index.d.ts +5 -5
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +6 -20
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math/fills.d.ts +3 -3
- package/dist/cjs/math/fills.d.ts.map +1 -1
- package/dist/cjs/math/fills.js.map +1 -1
- package/dist/cjs/math/order.d.ts +1 -8
- package/dist/cjs/math/order.d.ts.map +1 -1
- package/dist/cjs/math/order.js +6 -11
- package/dist/cjs/math/order.js.map +1 -1
- package/dist/cjs/math/position.d.ts +3 -8
- package/dist/cjs/math/position.d.ts.map +1 -1
- package/dist/cjs/math/position.js +12 -12
- package/dist/cjs/math/position.js.map +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.d.ts +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.js +24 -13
- package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/cjs/types/api.d.ts +4 -4
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +1 -1
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wire/orderAmounts.d.ts +1 -2
- package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
- package/dist/cjs/wire/orderAmounts.js +19 -52
- package/dist/cjs/wire/orderAmounts.js.map +1 -1
- package/dist/cjs/wire/refuel.js +1 -1
- package/dist/cjs/wire/refuel.js.map +1 -1
- package/dist/cjs/wire/transferable.js +1 -1
- 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 +1 -1
- package/dist/cjs/wire/withdraw.js.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +3 -3
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/decimal/convert.d.ts +8 -24
- package/dist/esm/decimal/convert.d.ts.map +1 -1
- package/dist/esm/decimal/convert.js +16 -42
- package/dist/esm/decimal/convert.js.map +1 -1
- package/dist/esm/decimal/format.d.ts +2 -1
- package/dist/esm/decimal/format.d.ts.map +1 -1
- package/dist/esm/decimal/format.js.map +1 -1
- package/dist/esm/decimal/parse.d.ts +7 -20
- package/dist/esm/decimal/parse.d.ts.map +1 -1
- package/dist/esm/decimal/parse.js +9 -4
- package/dist/esm/decimal/parse.js.map +1 -1
- package/dist/esm/{wire → decimal}/requireDecimal.d.ts +1 -1
- package/dist/esm/decimal/requireDecimal.d.ts.map +1 -0
- package/dist/esm/{wire → decimal}/requireDecimal.js +3 -2
- package/dist/esm/decimal/requireDecimal.js.map +1 -0
- package/dist/esm/index.d.ts +5 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/fills.d.ts +3 -3
- package/dist/esm/math/fills.d.ts.map +1 -1
- package/dist/esm/math/fills.js +1 -1
- package/dist/esm/math/fills.js.map +1 -1
- package/dist/esm/math/order.d.ts +3 -34
- package/dist/esm/math/order.d.ts.map +1 -1
- package/dist/esm/math/order.js +8 -26
- package/dist/esm/math/order.js.map +1 -1
- package/dist/esm/math/position.d.ts +16 -34
- package/dist/esm/math/position.d.ts.map +1 -1
- package/dist/esm/math/position.js +23 -36
- package/dist/esm/math/position.js.map +1 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts +6 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/esm/services/resolveSubscribeQuote.js +29 -13
- package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/esm/types/api.d.ts +4 -4
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +1 -1
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wire/orderAmounts.d.ts +15 -29
- package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
- package/dist/esm/wire/orderAmounts.js +28 -88
- package/dist/esm/wire/orderAmounts.js.map +1 -1
- package/dist/esm/wire/refuel.js +1 -1
- package/dist/esm/wire/refuel.js.map +1 -1
- package/dist/esm/wire/transferable.js +1 -1
- 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 +1 -1
- package/dist/esm/wire/withdraw.js.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +3 -3
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/decimal/convert.d.ts +8 -24
- package/dist/types/decimal/convert.d.ts.map +1 -1
- package/dist/types/decimal/format.d.ts +2 -1
- package/dist/types/decimal/format.d.ts.map +1 -1
- package/dist/types/decimal/parse.d.ts +7 -20
- package/dist/types/decimal/parse.d.ts.map +1 -1
- package/dist/types/{wire → decimal}/requireDecimal.d.ts +1 -1
- package/dist/types/decimal/requireDecimal.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math/fills.d.ts +3 -3
- package/dist/types/math/fills.d.ts.map +1 -1
- package/dist/types/math/order.d.ts +3 -34
- package/dist/types/math/order.d.ts.map +1 -1
- package/dist/types/math/position.d.ts +16 -34
- package/dist/types/math/position.d.ts.map +1 -1
- package/dist/types/services/resolveSubscribeQuote.d.ts +6 -1
- package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +4 -4
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +1 -1
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wire/orderAmounts.d.ts +15 -29
- package/dist/types/wire/orderAmounts.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 +3 -2
- package/src/decimal/convert.ts +27 -54
- package/src/decimal/format.ts +3 -1
- package/src/decimal/parse.ts +10 -6
- package/src/{wire → decimal}/requireDecimal.ts +3 -6
- package/src/index.ts +4 -21
- package/src/math/fills.ts +8 -4
- package/src/math/order.ts +8 -31
- package/src/math/position.ts +32 -43
- package/src/services/resolveSubscribeQuote.ts +37 -19
- package/src/types/api.ts +4 -3
- package/src/types/provider.ts +1 -1
- package/src/version.ts +1 -1
- package/src/wire/orderAmounts.ts +35 -117
- package/src/wire/refuel.ts +1 -1
- package/src/wire/transferable.ts +1 -1
- package/src/wire/withdraw.ts +1 -1
- package/dist/cjs/wire/requireDecimal.d.ts.map +0 -1
- package/dist/cjs/wire/requireDecimal.js.map +0 -1
- package/dist/esm/wire/requireDecimal.d.ts.map +0 -1
- package/dist/esm/wire/requireDecimal.js.map +0 -1
- package/dist/types/wire/requireDecimal.d.ts.map +0 -1
- /package/dist/cjs/{wire → decimal}/requireDecimal.d.ts +0 -0
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Display-tier position formulas
|
|
3
|
-
* exact decimal arithmetic happens
|
|
2
|
+
* Display-tier position formulas and margin-adjustment predicates. Every
|
|
3
|
+
* formula takes and gives `number`; exact decimal arithmetic happens
|
|
4
|
+
* internally with `DivBig`.
|
|
4
5
|
*
|
|
5
6
|
* Sign convention: long = +1, short = -1. Sizes passed to the `estimate*`
|
|
6
7
|
* helpers are always non-negative magnitudes; direction is carried by
|
|
7
8
|
* `isLong`.
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
-
* Direction sign for a position.
|
|
11
|
-
*
|
|
12
|
-
* @deprecated Inline `isLong ? 1 : -1`. Removed in the next major.
|
|
13
|
-
*/
|
|
14
|
-
export declare function directionSign(isLong: boolean): 1 | -1;
|
|
10
|
+
import { type Position } from '@lifi/perps-types';
|
|
15
11
|
/**
|
|
16
12
|
* Calculate notional value of a position.
|
|
17
13
|
*
|
|
@@ -62,10 +58,6 @@ export declare function calculateLiquidationDistance(params: {
|
|
|
62
58
|
liquidationPrice: number;
|
|
63
59
|
currentPrice: number;
|
|
64
60
|
}): number;
|
|
65
|
-
/**
|
|
66
|
-
* @deprecated Use `calculateLiquidationDistance`. Removed in the next major.
|
|
67
|
-
*/
|
|
68
|
-
export declare const liquidationDistancePercent: typeof calculateLiquidationDistance;
|
|
69
61
|
/**
|
|
70
62
|
* Effective leverage of an open position.
|
|
71
63
|
*
|
|
@@ -80,10 +72,6 @@ export declare function calculateEffectiveLeverage(params: {
|
|
|
80
72
|
positionValueUsd: number;
|
|
81
73
|
marginUsd: number;
|
|
82
74
|
}): number;
|
|
83
|
-
/**
|
|
84
|
-
* @deprecated Use `calculateEffectiveLeverage`. Removed in the next major.
|
|
85
|
-
*/
|
|
86
|
-
export declare const effectiveLeverage: typeof calculateEffectiveLeverage;
|
|
87
75
|
/**
|
|
88
76
|
* Estimated liquidation price for an isolated-margin position, parameterised
|
|
89
77
|
* by the venue's maintenance margin rate.
|
|
@@ -108,10 +96,6 @@ export declare function estimateLiquidationPrice(params: {
|
|
|
108
96
|
isLong: boolean;
|
|
109
97
|
maintenanceMarginRate: number;
|
|
110
98
|
}): number | undefined;
|
|
111
|
-
/**
|
|
112
|
-
* @deprecated Use `estimateLiquidationPrice`. Removed in the next major.
|
|
113
|
-
*/
|
|
114
|
-
export declare const estimateIsolatedLiquidationPrice: typeof estimateLiquidationPrice;
|
|
115
99
|
/**
|
|
116
100
|
* Whether an isolated position with this liquidation price is already past
|
|
117
101
|
* liquidation at `currentPrice`: a long liquidates when the price falls to its
|
|
@@ -147,10 +131,6 @@ export declare function estimateAverageEntryPrice(params: {
|
|
|
147
131
|
addSize: number;
|
|
148
132
|
fillPrice: number;
|
|
149
133
|
}): number | undefined;
|
|
150
|
-
/**
|
|
151
|
-
* @deprecated Use `estimateAverageEntryPrice`. Removed in the next major.
|
|
152
|
-
*/
|
|
153
|
-
export declare const predictAverageEntryPrice: typeof estimateAverageEntryPrice;
|
|
154
134
|
/**
|
|
155
135
|
* Estimated effective leverage after adding margin and notional.
|
|
156
136
|
*
|
|
@@ -168,10 +148,6 @@ export declare function estimateNewLeverage(params: {
|
|
|
168
148
|
addNotional: number;
|
|
169
149
|
addMargin: number;
|
|
170
150
|
}): number | undefined;
|
|
171
|
-
/**
|
|
172
|
-
* @deprecated Use `estimateNewLeverage`. Removed in the next major.
|
|
173
|
-
*/
|
|
174
|
-
export declare const predictNewLeverage: typeof estimateNewLeverage;
|
|
175
151
|
/**
|
|
176
152
|
* Estimated unrealised PnL at the current mark price.
|
|
177
153
|
*
|
|
@@ -186,10 +162,6 @@ export declare function estimateUnrealizedPnl(params: {
|
|
|
186
162
|
size: number;
|
|
187
163
|
isLong: boolean;
|
|
188
164
|
}): number;
|
|
189
|
-
/**
|
|
190
|
-
* @deprecated Use `estimateUnrealizedPnl`. Removed in the next major.
|
|
191
|
-
*/
|
|
192
|
-
export declare const predictUnrealizedPnl: typeof estimateUnrealizedPnl;
|
|
193
165
|
/**
|
|
194
166
|
* Realised PnL on the portion of a position being closed.
|
|
195
167
|
*
|
|
@@ -205,7 +177,17 @@ export declare function calculateRealizedPnl(params: {
|
|
|
205
177
|
isLong: boolean;
|
|
206
178
|
}): number;
|
|
207
179
|
/**
|
|
208
|
-
*
|
|
180
|
+
* Whether this position can take a margin adjustment at all: it holds margin of
|
|
181
|
+
* its own and its market exposes individual position margin.
|
|
182
|
+
*
|
|
183
|
+
* @public
|
|
184
|
+
*/
|
|
185
|
+
export declare function positionSupportsMarginAdjustment(position: Position): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Whether a removal is among the adjustments this position permits. An
|
|
188
|
+
* `ADD_ONLY` market takes adds and no withdrawal.
|
|
189
|
+
*
|
|
190
|
+
* @public
|
|
209
191
|
*/
|
|
210
|
-
export declare
|
|
192
|
+
export declare function positionSupportsMarginRemoval(position: Position): boolean;
|
|
211
193
|
//# sourceMappingURL=position.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAA;AAG1B;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,CAMT;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,CAST;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,qBAAqB,EAAE,MAAM,CAAA;CAC9B,GAAG,MAAM,GAAG,SAAS,CAqBrB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,OAAO,CAQV;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,GAAG,SAAS,CAiBrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,GAAG,SAAS,CAarB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,MAAM,CAUT;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,MAAM,CAUT;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAMzE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type FeeTier } from '@lifi/perps-types';
|
|
2
2
|
import type { PerpsSDKClient, ProviderGetQuoteParams, QuoteListener } from '../types/provider.js';
|
|
3
3
|
import type { WsProvider } from '../websocket/types.js';
|
|
4
4
|
/**
|
|
@@ -25,6 +25,11 @@ export declare const QUOTE_THROTTLE_MS = 100;
|
|
|
25
25
|
* listeners once and cancels any pending trailing emission, so the wire
|
|
26
26
|
* subscriptions' ref counts cannot be double-decremented.
|
|
27
27
|
*
|
|
28
|
+
* A throw while building or delivering a streamed quote (an unparsable mark
|
|
29
|
+
* price, a throwing `onQuote`) is logged via `wsLog.listenerFailure` and the
|
|
30
|
+
* emission is skipped, on both the immediate and the trailing-timer path.
|
|
31
|
+
*
|
|
32
|
+
* @throws {PerpsError} `ValidationError` when `params.size` is not finite.
|
|
28
33
|
* @throws {PerpsError} `MarketNotFound` when no market matches symbol+type.
|
|
29
34
|
* @internal
|
|
30
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveSubscribeQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveSubscribeQuote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"resolveSubscribeQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveSubscribeQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAIb,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIvD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EACjC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAiGrB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AccountConfigSetting, AccountResponse, CancelTwapOrderParams as ActionCancelTwapOrderParams, CreateReferralCodeParams as ActionCreateReferralCodeParams, ActionParamsMap, PlaceTwapOrderParams as ActionPlaceTwapOrderParams, ActionStep, ExecuteActionResponse, MarginMode, MarketRef, MetaActionType, ModifyOrderInput, OnboardParams, OrderSide, OrderType, PortfolioHistoryRange, SetupAction, SetupOption, SignedActionStep, TimeInForce, TriggerOrderInput, WithdrawalParams } from '@lifi/perps-types';
|
|
1
|
+
import type { AccountConfigSetting, AccountResponse, CancelTwapOrderParams as ActionCancelTwapOrderParams, CreateReferralCodeParams as ActionCreateReferralCodeParams, ActionParamsMap, PlaceTwapOrderParams as ActionPlaceTwapOrderParams, ActionStep, DecimalString, ExecuteActionResponse, MarginMode, MarketRef, MetaActionType, ModifyOrderInput, OnboardParams, OrderSide, OrderType, PortfolioHistoryRange, SetupAction, SetupOption, SignedActionStep, TimeInForce, TriggerOrderInput, WithdrawalParams } from '@lifi/perps-types';
|
|
2
2
|
import type { Account, Address, WalletClient } from 'viem';
|
|
3
3
|
import type { RetryConfig } from '../transport/retryPolicy.js';
|
|
4
4
|
import type { RequestInterceptor, SwitchChainHook } from './config.js';
|
|
@@ -110,9 +110,9 @@ export interface PlaceOrderParams {
|
|
|
110
110
|
side: OrderSide;
|
|
111
111
|
type: Exclude<OrderType, OrderType.TWAP>;
|
|
112
112
|
/** Base-asset size as a decimal wire string. */
|
|
113
|
-
size:
|
|
113
|
+
size: DecimalString;
|
|
114
114
|
/** Limit price as a decimal wire string; required by limit-style orders. */
|
|
115
|
-
price:
|
|
115
|
+
price: DecimalString;
|
|
116
116
|
/** Optional leverage multiplier; provider defaults apply when omitted. */
|
|
117
117
|
leverage?: number;
|
|
118
118
|
/**
|
|
@@ -191,7 +191,7 @@ export interface SendAssetActionParams {
|
|
|
191
191
|
/** Destination DEX/account identifier understood by the provider. */
|
|
192
192
|
destinationDex: string;
|
|
193
193
|
/** Transfer amount as a provider-compatible decimal wire string. */
|
|
194
|
-
amount:
|
|
194
|
+
amount: DecimalString;
|
|
195
195
|
}
|
|
196
196
|
/**
|
|
197
197
|
* Parameters for canceling orders.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,qBAAqB,IAAI,2BAA2B,EACpD,wBAAwB,IAAI,8BAA8B,EAC1D,eAAe,EACf,oBAAoB,IAAI,0BAA0B,EAClD,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACjC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC5C;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,wCAAwC;IACxC,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IACxC,gDAAgD;IAChD,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -472,7 +472,7 @@ export interface PerpsProviderPlugin {
|
|
|
472
472
|
* @throws {PerpsError} `ValidationError` when a `Position` decimal that the
|
|
473
473
|
* venue formula reads is malformed.
|
|
474
474
|
*/
|
|
475
|
-
positionRemovableMargin(position: Position):
|
|
475
|
+
positionRemovableMargin(position: Position): DecimalString | undefined;
|
|
476
476
|
/**
|
|
477
477
|
* Project a typed {@link AccountConfig} against the provider's `setup`
|
|
478
478
|
* descriptors into `AccountConfigSetting[]`. Used by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { DecimalString, Market } from '@lifi/perps-types';
|
|
2
2
|
import type { PerpsSDKClient } from '../types/provider.js';
|
|
3
3
|
/** @public */
|
|
4
4
|
export interface OrderAmountsInput {
|
|
@@ -9,46 +9,32 @@ export interface OrderAmountsInput {
|
|
|
9
9
|
amount: DecimalString;
|
|
10
10
|
leverage: number;
|
|
11
11
|
price: DecimalString;
|
|
12
|
-
/** Decimals for the quote-asset amounts (margin, notional). Default 2. */
|
|
13
|
-
quoteDecimals?: number;
|
|
14
12
|
}
|
|
15
13
|
/** @public */
|
|
16
14
|
export interface OrderAmounts {
|
|
17
15
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* The held `amount`, byte-identical, when the user holds the margin;
|
|
17
|
+
* otherwise `notional ÷ leverage`, a display and comparison value that
|
|
18
|
+
* never reaches a venue.
|
|
20
19
|
*/
|
|
21
20
|
margin: DecimalString;
|
|
22
|
-
/** Snapped onto the venue lot grid. */
|
|
21
|
+
/** Snapped onto the venue lot grid; the one amount an order sends. */
|
|
23
22
|
size: DecimalString;
|
|
24
|
-
/**
|
|
23
|
+
/** Exactly `size × price`, from the snapped size. */
|
|
25
24
|
notional: DecimalString;
|
|
26
25
|
}
|
|
27
26
|
/**
|
|
28
27
|
* The three order-entry amounts, derived from whichever one the user typed.
|
|
28
|
+
* Only `size` snaps, onto the market's venue lot grid, because an order sends
|
|
29
|
+
* size alone; no quote amount has a grid. A held margin returns byte-identical,
|
|
30
|
+
* `notional` is the snapped size × price, and a derived margin is
|
|
31
|
+
* `notional ÷ leverage` in `DivBig` (40 places, half-up).
|
|
29
32
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* Rounding is directional, so the result always funds itself:
|
|
36
|
-
* `size × price ≤ margin × leverage`. A derived size truncates onto the lot
|
|
37
|
-
* grid and a derived notional truncates onto the quote grid, but a derived
|
|
38
|
-
* margin rounds **up** onto the quote grid, because it is the one amount that
|
|
39
|
-
* has to cover the others rather than cap them.
|
|
40
|
-
*
|
|
41
|
-
* Formulas: `size = margin × leverage ÷ price`,
|
|
42
|
-
* `margin = size × price ÷ leverage`, `notional = size × price`
|
|
43
|
-
* (or `margin × leverage` when the margin is held).
|
|
44
|
-
*
|
|
45
|
-
* @returns `null` when `amount` or `price` is not a positive decimal string,
|
|
46
|
-
* when `leverage` is not a positive finite number, or when the venue and
|
|
47
|
-
* quote grids snap the result to a non-positive amount — a sub-lot size or
|
|
48
|
-
* a sub-cent quote amount describes no order a venue can take.
|
|
49
|
-
* @throws {PerpsError} `ValidationError` when `quoteDecimals` is not a
|
|
50
|
-
* non-negative integer, or `SDKError` when `market.providerId` names no
|
|
51
|
-
* registered provider plugin.
|
|
33
|
+
* @returns `null` when `amount` or `price` is not a positive
|
|
34
|
+
* {@link DecimalString}, when `leverage` is not a positive finite number, or
|
|
35
|
+
* when the snapped size is zero (below one lot).
|
|
36
|
+
* @throws {PerpsError} `SDKError` when `market.providerId` names no registered
|
|
37
|
+
* provider plugin.
|
|
52
38
|
* @public
|
|
53
39
|
*/
|
|
54
40
|
export declare function calculateOrderAmounts(input: OrderAmountsInput): OrderAmounts | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderAmounts.d.ts","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"orderAmounts.d.ts","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,cAAc;AACd,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;IACpC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,aAAa,CAAA;CACrB;AAED,cAAc;AACd,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,EAAE,aAAa,CAAA;IACrB,sEAAsE;IACtE,IAAI,EAAE,aAAa,CAAA;IACnB,qDAAqD;IACrD,QAAQ,EAAE,aAAa,CAAA;CACxB;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,YAAY,GAAG,IAAI,CAiCrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CACP,mBAAmB,EACnB,WAAW,GAAG,eAAe,GAAG,eAAe,CAChD,GACA,aAAa,CASf"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "22.0.0",
|
|
4
4
|
"description": "LI.FI Perps SDK for perpetuals trading",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"big.js": "^7.0.1",
|
|
47
47
|
"partysocket": "^1.1.19",
|
|
48
48
|
"viem": "^2.55.18",
|
|
49
|
-
"@lifi/perps-types": "^
|
|
49
|
+
"@lifi/perps-types": "^20.0.0"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
ActionStep,
|
|
8
8
|
AvailableToTrade,
|
|
9
9
|
CreateActionResponse,
|
|
10
|
+
DecimalString,
|
|
10
11
|
ExecuteActionResponse,
|
|
11
12
|
MarketRef,
|
|
12
13
|
MarketSettings,
|
|
@@ -753,7 +754,7 @@ export class PerpsClient {
|
|
|
753
754
|
* venue formula reads is malformed.
|
|
754
755
|
* @public
|
|
755
756
|
*/
|
|
756
|
-
getPositionRemovableMargin(position: Position):
|
|
757
|
+
getPositionRemovableMargin(position: Position): DecimalString | undefined {
|
|
757
758
|
return this.requireProvider(
|
|
758
759
|
position.market.providerId
|
|
759
760
|
).positionRemovableMargin(position)
|
|
@@ -1448,7 +1449,7 @@ export class PerpsClient {
|
|
|
1448
1449
|
address: Address
|
|
1449
1450
|
market: MarketRef
|
|
1450
1451
|
action: 'add' | 'remove'
|
|
1451
|
-
amount:
|
|
1452
|
+
amount: DecimalString
|
|
1452
1453
|
}): Promise<ExecuteActionResponse> {
|
|
1453
1454
|
return this.execute({
|
|
1454
1455
|
...params,
|
package/src/decimal/convert.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type DecimalString, PerpsErrorCode } from '@lifi/perps-types'
|
|
|
2
2
|
import Big from 'big.js'
|
|
3
3
|
import { formatUnits } from 'viem'
|
|
4
4
|
import { PerpsError } from '../errors/PerpsError.js'
|
|
5
|
-
import {
|
|
5
|
+
import { requireDecimal } from './requireDecimal.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Off-grid resolution for {@link decimalToBaseUnits}:
|
|
@@ -14,19 +14,14 @@ import { parseDecimal } from './parse.js'
|
|
|
14
14
|
*/
|
|
15
15
|
export type BaseUnitsRounding = 'truncate' | 'round'
|
|
16
16
|
|
|
17
|
-
/**
|
|
18
|
-
* @deprecated Use `BaseUnitsRounding`. Removed in the next major.
|
|
19
|
-
*/
|
|
20
|
-
export type ScaleToIntegerPolicy = BaseUnitsRounding
|
|
21
|
-
|
|
22
17
|
/**
|
|
23
18
|
* Scale a decimal string to a scaled integer in exact decimal arithmetic — an
|
|
24
19
|
* on-grid input maps to its exact scaled integer with no binary float
|
|
25
20
|
* artifacts (`'0.29'` at 2 decimals is 29, never 28). Off-grid input resolves
|
|
26
21
|
* per `rounding`; there is no silent default.
|
|
27
22
|
*
|
|
28
|
-
* @throws {PerpsError} `ValidationError` when `value` is not a
|
|
29
|
-
*
|
|
23
|
+
* @throws {PerpsError} `ValidationError` when `value` is not a
|
|
24
|
+
* {@link DecimalString}, `decimals` is not a non-negative integer, or the scaled
|
|
30
25
|
* result's magnitude exceeds `Number.MAX_SAFE_INTEGER`.
|
|
31
26
|
* @public
|
|
32
27
|
*/
|
|
@@ -41,16 +36,7 @@ export const decimalToBaseUnits = (
|
|
|
41
36
|
`Invalid decimals for integer scaling: ${decimals}`
|
|
42
37
|
)
|
|
43
38
|
}
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
parsed = new Big(value)
|
|
47
|
-
} catch {
|
|
48
|
-
throw new PerpsError(
|
|
49
|
-
PerpsErrorCode.ValidationError,
|
|
50
|
-
`Invalid decimal string for integer scaling: '${value}'`
|
|
51
|
-
)
|
|
52
|
-
}
|
|
53
|
-
const scaled = parsed
|
|
39
|
+
const scaled = requireDecimal(value, 'decimalToBaseUnits(value)')
|
|
54
40
|
.times(new Big(10).pow(decimals))
|
|
55
41
|
.round(0, rounding === 'truncate' ? Big.roundDown : Big.roundHalfUp)
|
|
56
42
|
if (scaled.abs().gt(Number.MAX_SAFE_INTEGER)) {
|
|
@@ -62,17 +48,15 @@ export const decimalToBaseUnits = (
|
|
|
62
48
|
return scaled.toNumber()
|
|
63
49
|
}
|
|
64
50
|
|
|
65
|
-
|
|
66
|
-
* @deprecated Use `decimalToBaseUnits`. Removed in the next major.
|
|
67
|
-
*/
|
|
68
|
-
export const scaleToInteger = decimalToBaseUnits
|
|
51
|
+
const BASE_UNITS_PATTERN = /^-?\d+$/
|
|
69
52
|
|
|
70
53
|
/**
|
|
71
|
-
* Convert a base-unit amount (
|
|
54
|
+
* Convert a base-unit amount (integer string) to a decimal string.
|
|
72
55
|
*
|
|
73
56
|
* @param amount - Amount in base units (e.g. "1000000" for 1 USDC)
|
|
74
57
|
* @param decimals - Token decimals (e.g. 6 for USDC)
|
|
75
|
-
* @
|
|
58
|
+
* @throws {PerpsError} `ValidationError` when `amount` is not an integer
|
|
59
|
+
* string, or `decimals` is not a non-negative integer.
|
|
76
60
|
* @example
|
|
77
61
|
* ```ts
|
|
78
62
|
* baseUnitsToDecimal('1000000', 6) // '1'
|
|
@@ -80,27 +64,22 @@ export const scaleToInteger = decimalToBaseUnits
|
|
|
80
64
|
* @public
|
|
81
65
|
*/
|
|
82
66
|
export function baseUnitsToDecimal(
|
|
83
|
-
amount:
|
|
67
|
+
amount: DecimalString,
|
|
84
68
|
decimals: number
|
|
85
69
|
): DecimalString {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
70
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
71
|
+
throw new PerpsError(
|
|
72
|
+
PerpsErrorCode.ValidationError,
|
|
73
|
+
`Invalid \`baseUnitsToDecimal(decimals)\`: ${decimals} is not a non-negative integer.`
|
|
74
|
+
)
|
|
90
75
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* @deprecated Compose `parseDecimal(baseUnitsToDecimal(...))`. Removed in the
|
|
100
|
-
* next major.
|
|
101
|
-
*/
|
|
102
|
-
export function fromBaseUnitsNumber(amount: string, decimals: number): number {
|
|
103
|
-
return parseDecimal(baseUnitsToDecimal(amount, decimals)) ?? 0
|
|
76
|
+
if (!BASE_UNITS_PATTERN.test(amount)) {
|
|
77
|
+
throw new PerpsError(
|
|
78
|
+
PerpsErrorCode.ValidationError,
|
|
79
|
+
`Invalid \`baseUnitsToDecimal(amount)\`: '${amount}' is not an integer base-unit string.`
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
return formatUnits(BigInt(amount), decimals)
|
|
104
83
|
}
|
|
105
84
|
|
|
106
85
|
/**
|
|
@@ -114,8 +93,8 @@ export function fromBaseUnitsNumber(amount: string, decimals: number): number {
|
|
|
114
93
|
* float artifact: `'0.01'` at 18 decimals gives
|
|
115
94
|
* `'0.010000000000000000'`, which `Number#toFixed` cannot.
|
|
116
95
|
*
|
|
117
|
-
* @throws {PerpsError} `ValidationError` when `value` is not a
|
|
118
|
-
*
|
|
96
|
+
* @throws {PerpsError} `ValidationError` when `value` is not a
|
|
97
|
+
* {@link DecimalString}, or `decimals` is not a non-negative integer.
|
|
119
98
|
* @public
|
|
120
99
|
*/
|
|
121
100
|
export function truncateDecimal(
|
|
@@ -128,16 +107,10 @@ export function truncateDecimal(
|
|
|
128
107
|
`Invalid decimals for truncation: ${decimals}`
|
|
129
108
|
)
|
|
130
109
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
throw new PerpsError(
|
|
136
|
-
PerpsErrorCode.ValidationError,
|
|
137
|
-
`Invalid decimal string for truncation: '${value}'`
|
|
138
|
-
)
|
|
139
|
-
}
|
|
140
|
-
const truncated = parsed.round(decimals, Big.roundDown)
|
|
110
|
+
const truncated = requireDecimal(value, 'truncateDecimal(value)').round(
|
|
111
|
+
decimals,
|
|
112
|
+
Big.roundDown
|
|
113
|
+
)
|
|
141
114
|
// big.js carries the sign through a round to zero; '-0.00' is not a spelling.
|
|
142
115
|
return (truncated.eq(0) ? new Big(0) : truncated).toFixed(decimals)
|
|
143
116
|
}
|
package/src/decimal/format.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { DecimalString } from '@lifi/perps-types'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Options shared by the human-facing display formatters.
|
|
3
5
|
*
|
|
@@ -28,7 +30,7 @@ export type RoundingMode = 'halfUp' | 'floor'
|
|
|
28
30
|
|
|
29
31
|
const DEFAULT_PLACEHOLDER = '—'
|
|
30
32
|
|
|
31
|
-
type FormatInput = number | string | null | undefined
|
|
33
|
+
type FormatInput = number | DecimalString | string | null | undefined
|
|
32
34
|
|
|
33
35
|
/**
|
|
34
36
|
* Extra decimal places used to normalise IEEE-754 representation noise before
|
package/src/decimal/parse.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { DECIMAL_PATTERN, type DecimalString } from '@lifi/perps-types'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Parse a string to a float, stripping common formatting artefacts.
|
|
@@ -24,11 +24,6 @@ function toFloat(value: string): number {
|
|
|
24
24
|
return parseFloat(cleaned)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* @deprecated Use `parseDecimal`. Removed in the next major.
|
|
29
|
-
*/
|
|
30
|
-
export const stringToFloat = toFloat
|
|
31
|
-
|
|
32
27
|
const FORMATTED_NUMBER =
|
|
33
28
|
/^(?:[+-]\s*)?(?:\$\s*)?(?:(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:\s*(?:%|USD))?$/i
|
|
34
29
|
|
|
@@ -54,3 +49,12 @@ export function parseDecimal(
|
|
|
54
49
|
const parsed = toFloat(value)
|
|
55
50
|
return Number.isFinite(parsed) ? parsed : undefined
|
|
56
51
|
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Narrows an unknown value to a {@link DecimalString}.
|
|
55
|
+
*
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
export function isDecimalString(value: unknown): value is DecimalString {
|
|
59
|
+
return typeof value === 'string' && DECIMAL_PATTERN.test(value)
|
|
60
|
+
}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type DecimalString,
|
|
3
|
-
isDecimalString,
|
|
4
|
-
PerpsErrorCode,
|
|
5
|
-
} from '@lifi/perps-types'
|
|
1
|
+
import { type DecimalString, PerpsErrorCode } from '@lifi/perps-types'
|
|
6
2
|
import Big from 'big.js'
|
|
7
3
|
import { PerpsError } from '../errors/PerpsError.js'
|
|
4
|
+
import { isDecimalString } from './parse.js'
|
|
8
5
|
|
|
9
6
|
/**
|
|
10
|
-
* Parse a
|
|
7
|
+
* Parse a decimal input, naming the field it came from when the
|
|
11
8
|
* value breaks the {@link DecimalString} contract, so a malformed amount
|
|
12
9
|
* fails at the SDK boundary instead of inside big.js.
|
|
13
10
|
*
|
package/src/index.ts
CHANGED
|
@@ -17,17 +17,11 @@ export {
|
|
|
17
17
|
} from './client/createPerpsClient.js'
|
|
18
18
|
export { PerpsClient } from './client/PerpsClient.js'
|
|
19
19
|
export { requireProvider } from './client/requireProvider.js'
|
|
20
|
-
export type {
|
|
21
|
-
BaseUnitsRounding,
|
|
22
|
-
ScaleToIntegerPolicy,
|
|
23
|
-
} from './decimal/convert.js'
|
|
20
|
+
export type { BaseUnitsRounding } from './decimal/convert.js'
|
|
24
21
|
export {
|
|
25
22
|
baseUnitsToDecimal,
|
|
26
23
|
decimalToBaseUnits,
|
|
27
|
-
fromBaseUnits,
|
|
28
|
-
fromBaseUnitsNumber,
|
|
29
24
|
numberToDecimalString,
|
|
30
|
-
scaleToInteger,
|
|
31
25
|
truncateDecimal,
|
|
32
26
|
} from './decimal/convert.js'
|
|
33
27
|
export type { FormatOptions, RoundingMode } from './decimal/format.js'
|
|
@@ -39,7 +33,7 @@ export {
|
|
|
39
33
|
formatSignedUsd,
|
|
40
34
|
formatUsd,
|
|
41
35
|
} from './decimal/format.js'
|
|
42
|
-
export {
|
|
36
|
+
export { isDecimalString, parseDecimal } from './decimal/parse.js'
|
|
43
37
|
export { PerpsErrorMessage } from './errors/constants.js'
|
|
44
38
|
export { PerpsError } from './errors/PerpsError.js'
|
|
45
39
|
export {
|
|
@@ -52,18 +46,13 @@ export {
|
|
|
52
46
|
applySlippage,
|
|
53
47
|
buildQuote,
|
|
54
48
|
calculateExpectedPnl,
|
|
55
|
-
calculatePositionSize,
|
|
56
49
|
calculateRealizedPnlPercent,
|
|
57
50
|
calculateSize,
|
|
58
51
|
calculateTriggerPercent,
|
|
59
52
|
calculateTriggerPrice,
|
|
60
53
|
estimateFees,
|
|
61
54
|
estimateRealizedPnl,
|
|
62
|
-
expectedRealizedPnlForOpenOrder,
|
|
63
|
-
expectedRealizedPnlForTriggerOrder,
|
|
64
55
|
findMatchingPosition,
|
|
65
|
-
percentFromPrice,
|
|
66
|
-
priceFromPercent,
|
|
67
56
|
resolveCloseSize,
|
|
68
57
|
walkOrderbook,
|
|
69
58
|
} from './math/order.js'
|
|
@@ -75,18 +64,12 @@ export {
|
|
|
75
64
|
calculateRequiredMargin,
|
|
76
65
|
calculateRoe,
|
|
77
66
|
calculateUnrealizedPnl,
|
|
78
|
-
directionSign,
|
|
79
|
-
effectiveLeverage,
|
|
80
67
|
estimateAverageEntryPrice,
|
|
81
|
-
estimateIsolatedLiquidationPrice,
|
|
82
68
|
estimateLiquidationPrice,
|
|
83
69
|
estimateNewLeverage,
|
|
84
70
|
estimateUnrealizedPnl,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
predictNewLeverage,
|
|
88
|
-
predictUnrealizedPnl,
|
|
89
|
-
realizedPnlOnClose,
|
|
71
|
+
positionSupportsMarginAdjustment,
|
|
72
|
+
positionSupportsMarginRemoval,
|
|
90
73
|
wouldImmediatelyLiquidate,
|
|
91
74
|
} from './math/position.js'
|
|
92
75
|
// Registries
|