@lifi/perps-sdk 21.1.0 → 23.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 +89 -16
- package/dist/cjs/client/PerpsClient.d.ts +9 -9
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +12 -17
- 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/config.d.ts +0 -1
- package/dist/cjs/types/config.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 +9 -9
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +12 -17
- 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/config.d.ts +0 -11
- package/dist/esm/types/config.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 +9 -9
- 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/config.d.ts +0 -11
- package/dist/types/types/config.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 +41 -26
- 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/config.ts +0 -11
- 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
package/dist/esm/math/fills.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FillClassification, OrderSide } from '@lifi/perps-types';
|
|
1
|
+
import { type DecimalString, FillClassification, OrderSide } from '@lifi/perps-types';
|
|
2
2
|
/**
|
|
3
3
|
* Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
|
|
4
4
|
*
|
|
@@ -15,12 +15,12 @@ export { FillClassification };
|
|
|
15
15
|
* @param sz Unsigned fill size, parsed with `parseFloat`.
|
|
16
16
|
* @public
|
|
17
17
|
*/
|
|
18
|
-
export declare function classifyFillFromPosition(startPosition:
|
|
18
|
+
export declare function classifyFillFromPosition(startPosition: DecimalString, side: string, sz: DecimalString): FillClassification;
|
|
19
19
|
/**
|
|
20
20
|
* Classify a fill as open or close based on realizedPnl.
|
|
21
21
|
* @deprecated Use `Fill.classification` instead — it uses startPosition
|
|
22
22
|
* for accurate open/increase/reduce/close/reverse classification.
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
|
-
export declare function classifyFill(side: OrderSide, realizedPnl:
|
|
25
|
+
export declare function classifyFill(side: OrderSide, realizedPnl: DecimalString | null | undefined): FillClassification;
|
|
26
26
|
//# sourceMappingURL=fills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,mBAAmB,CAAA;AAG1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,aAAa,GAChB,kBAAkB,CAkCpB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAC5C,kBAAkB,CAUpB"}
|
package/dist/esm/math/fills.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAA4B,EAC5B,IAAY,EACZ,EAAiB;IAEjB,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAA;IAEzB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,GAAG,CAAC;YACZ,CAAC,CAAC,kBAAkB,CAAC,WAAW;YAChC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAA;IACrC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,OAAO,kBAAkB,CAAC,WAAW,CAAA;QACvC,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,kBAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;YAChB,OAAO,kBAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,OAAO,kBAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IAED,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,kBAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,kBAAkB,CAAC,aAAa,CAAA;IACzC,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,eAAe,CAAA;IAC3C,CAAC;IACD,OAAO,kBAAkB,CAAC,aAAa,CAAA;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAe,EACf,WAA6C;IAE7C,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACtE,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO;YACZ,CAAC,CAAC,kBAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAA;IACpC,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,kBAAkB,CAAC,WAAW;QAChC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAA;AACrC,CAAC"}
|
package/dist/esm/math/order.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Display-tier order formulas. Every function takes and gives `number`;
|
|
3
3
|
* exact decimal arithmetic happens internally with `DivBig`.
|
|
4
4
|
*/
|
|
5
|
-
import { type FeeTier, type Market, type MarketContext, type Order, type OrderbookLevel, type Position, type Quote, type QuoteSide, type
|
|
5
|
+
import { type FeeTier, type Market, type MarketContext, type Order, type OrderbookLevel, type Position, type Quote, type QuoteSide, type TradeType } from '@lifi/perps-types';
|
|
6
6
|
/**
|
|
7
7
|
* Calculate position size in asset units from margin.
|
|
8
8
|
*
|
|
@@ -17,10 +17,6 @@ import { type FeeTier, type Market, type MarketContext, type Order, type Orderbo
|
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
19
|
export declare function calculateSize(marginUsd: number, leverage: number, price: number): number;
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated Use `calculateSize`. Removed in the next major.
|
|
22
|
-
*/
|
|
23
|
-
export declare const calculatePositionSize: typeof calculateSize;
|
|
24
20
|
/**
|
|
25
21
|
* Estimate trading fees.
|
|
26
22
|
*
|
|
@@ -73,10 +69,6 @@ export declare function calculateExpectedPnl(triggerPrice: number, entryPrice: n
|
|
|
73
69
|
* @public
|
|
74
70
|
*/
|
|
75
71
|
export declare function calculateTriggerPrice(percent: number, entryPrice: number, leverage: number, isLong: boolean): number;
|
|
76
|
-
/**
|
|
77
|
-
* @deprecated Use `calculateTriggerPrice`. Removed in the next major.
|
|
78
|
-
*/
|
|
79
|
-
export declare const priceFromPercent: typeof calculateTriggerPrice;
|
|
80
72
|
/**
|
|
81
73
|
* Calculate the percentage gain/loss a trigger price realises.
|
|
82
74
|
*
|
|
@@ -87,10 +79,6 @@ export declare const priceFromPercent: typeof calculateTriggerPrice;
|
|
|
87
79
|
* @public
|
|
88
80
|
*/
|
|
89
81
|
export declare function calculateTriggerPercent(price: number, entryPrice: number, leverage: number, isLong: boolean): number;
|
|
90
|
-
/**
|
|
91
|
-
* @deprecated Use `calculateTriggerPercent`. Removed in the next major.
|
|
92
|
-
*/
|
|
93
|
-
export declare const percentFromPrice: typeof calculateTriggerPercent;
|
|
94
82
|
/**
|
|
95
83
|
* Calculate realized PnL as a percentage of position value at close.
|
|
96
84
|
*
|
|
@@ -149,7 +137,8 @@ interface BuildQuoteInput {
|
|
|
149
137
|
* the market's `funding` (`null` for spot, which has none).
|
|
150
138
|
*
|
|
151
139
|
* @throws {PerpsError} `ValidationError` when a book level does not parse to
|
|
152
|
-
* a finite number — see {@link walkOrderbook}
|
|
140
|
+
* a finite number — see {@link walkOrderbook} — or when a quoted figure is
|
|
141
|
+
* not finite (a non-finite `sizeUsd`, mark price or taker fee).
|
|
153
142
|
* @public
|
|
154
143
|
*/
|
|
155
144
|
export declare function buildQuote(input: BuildQuoteInput): Quote;
|
|
@@ -172,18 +161,6 @@ export declare function findMatchingPosition(marketId: string, positions: readon
|
|
|
172
161
|
* @public
|
|
173
162
|
*/
|
|
174
163
|
export declare function resolveCloseSize(orderSize: number, positionSize: number): number;
|
|
175
|
-
/**
|
|
176
|
-
* Expected rPnL for a resting limit order against a matching position.
|
|
177
|
-
*
|
|
178
|
-
* Reducing requires opposite sides (long position + SELL, short position +
|
|
179
|
-
* BUY). Same-side orders add to the position and have no rPnL → `null`.
|
|
180
|
-
* Projects `remainingSize`, because an already-filled quantity has realised
|
|
181
|
-
* its PnL at the fill price rather than at this order's limit price. A
|
|
182
|
-
* `remainingSize` of zero leaves nothing to project.
|
|
183
|
-
*/
|
|
184
|
-
declare function regularOrderRealizedPnl(order: RegularOrder, position: Position | undefined): number | null;
|
|
185
|
-
/** Project the unfilled closing quantity of an active trigger at its trigger price. */
|
|
186
|
-
declare function triggerOrderRealizedPnl(order: TriggerOrder, position: Position | undefined): number | null;
|
|
187
164
|
/**
|
|
188
165
|
* Expected rPnL an unfilled order would realise against a matching position:
|
|
189
166
|
* a resting limit order prices off its limit, an armed trigger off its trigger
|
|
@@ -195,13 +172,5 @@ declare function triggerOrderRealizedPnl(order: TriggerOrder, position: Position
|
|
|
195
172
|
* @public
|
|
196
173
|
*/
|
|
197
174
|
export declare function estimateRealizedPnl(order: Order, position: Position | undefined): number | null;
|
|
198
|
-
/**
|
|
199
|
-
* @deprecated Use `estimateRealizedPnl`. Removed in the next major.
|
|
200
|
-
*/
|
|
201
|
-
export declare const expectedRealizedPnlForOpenOrder: typeof regularOrderRealizedPnl;
|
|
202
|
-
/**
|
|
203
|
-
* @deprecated Use `estimateRealizedPnl`. Removed in the next major.
|
|
204
|
-
*/
|
|
205
|
-
export declare const expectedRealizedPnlForTriggerOrder: typeof triggerOrderRealizedPnl;
|
|
206
175
|
export {};
|
|
207
176
|
//# sourceMappingURL=order.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,cAAc,EAInB,KAAK,QAAQ,EAEb,KAAK,KAAK,EACV,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,cAAc,EAInB,KAAK,QAAQ,EAEb,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,SAAS,EAEf,MAAM,mBAAmB,CAAA;AAY1B;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAQR;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,OAAO,GACb,MAAM,CAYR;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GACb,WAAW,GAAG,IAAI,CAapB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAYR;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,CASR;AAED,mFAAmF;AACnF,UAAU,QAAQ;IAChB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,2FAA2F;IAC3F,cAAc,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAA;IACZ,mGAAmG;IACnG,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,EAAE,MAAM,GACd,QAAQ,CAgCV;AAaD,uGAAuG;AACvG,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,aAAa,CAAA;IACpB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,kFAAkF;IAClF,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CA+BxD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,QAAQ,GAAG,SAAS,CAEtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAKR;AA0GD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAQf"}
|
package/dist/esm/math/order.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { OrderSide, OrderStatus, PerpsErrorCode, PositionSide, } from '@lifi/perps-types';
|
|
6
6
|
import { areFinite, DivBig } from '../decimal/big.js';
|
|
7
|
+
import { numberToDecimalString } from '../decimal/convert.js';
|
|
7
8
|
import { PerpsError } from '../errors/PerpsError.js';
|
|
8
9
|
import { isActiveOrderStatus, isRegularOrder, isTriggerOrder, } from '../utils/orderClassification.js';
|
|
9
10
|
import { calculateRealizedPnl } from './position.js';
|
|
@@ -29,10 +30,6 @@ export function calculateSize(marginUsd, leverage, price) {
|
|
|
29
30
|
}
|
|
30
31
|
return new DivBig(marginUsd).times(leverage).div(price).toNumber();
|
|
31
32
|
}
|
|
32
|
-
/**
|
|
33
|
-
* @deprecated Use `calculateSize`. Removed in the next major.
|
|
34
|
-
*/
|
|
35
|
-
export const calculatePositionSize = calculateSize;
|
|
36
33
|
/**
|
|
37
34
|
* Estimate trading fees.
|
|
38
35
|
*
|
|
@@ -116,10 +113,6 @@ export function calculateTriggerPrice(percent, entryPrice, leverage, isLong) {
|
|
|
116
113
|
const entry = new DivBig(entryPrice);
|
|
117
114
|
return (isLong ? entry.plus(priceDelta) : entry.minus(priceDelta)).toNumber();
|
|
118
115
|
}
|
|
119
|
-
/**
|
|
120
|
-
* @deprecated Use `calculateTriggerPrice`. Removed in the next major.
|
|
121
|
-
*/
|
|
122
|
-
export const priceFromPercent = calculateTriggerPrice;
|
|
123
116
|
/**
|
|
124
117
|
* Calculate the percentage gain/loss a trigger price realises.
|
|
125
118
|
*
|
|
@@ -141,10 +134,6 @@ export function calculateTriggerPercent(price, entryPrice, leverage, isLong) {
|
|
|
141
134
|
: new DivBig(entryPrice).minus(price);
|
|
142
135
|
return priceDiff.div(entryPrice).times(leverage).times(100).toNumber();
|
|
143
136
|
}
|
|
144
|
-
/**
|
|
145
|
-
* @deprecated Use `calculateTriggerPercent`. Removed in the next major.
|
|
146
|
-
*/
|
|
147
|
-
export const percentFromPrice = calculateTriggerPercent;
|
|
148
137
|
/**
|
|
149
138
|
* Calculate realized PnL as a percentage of position value at close.
|
|
150
139
|
*
|
|
@@ -226,7 +215,8 @@ function parseLevel(level) {
|
|
|
226
215
|
* the market's `funding` (`null` for spot, which has none).
|
|
227
216
|
*
|
|
228
217
|
* @throws {PerpsError} `ValidationError` when a book level does not parse to
|
|
229
|
-
* a finite number — see {@link walkOrderbook}
|
|
218
|
+
* a finite number — see {@link walkOrderbook} — or when a quoted figure is
|
|
219
|
+
* not finite (a non-finite `sizeUsd`, mark price or taker fee).
|
|
230
220
|
* @public
|
|
231
221
|
*/
|
|
232
222
|
export function buildQuote(input) {
|
|
@@ -244,14 +234,14 @@ export function buildQuote(input) {
|
|
|
244
234
|
marketId: market.id,
|
|
245
235
|
type: input.type,
|
|
246
236
|
side,
|
|
247
|
-
sizeUsd: sizeUsd
|
|
248
|
-
baseSize: walk.baseSize
|
|
237
|
+
sizeUsd: numberToDecimalString(sizeUsd),
|
|
238
|
+
baseSize: numberToDecimalString(walk.baseSize),
|
|
249
239
|
markPrice: price.markPrice,
|
|
250
|
-
expectedFillPrice: walk.vwap
|
|
251
|
-
priceImpactBps: priceImpactBps
|
|
240
|
+
expectedFillPrice: numberToDecimalString(walk.vwap),
|
|
241
|
+
priceImpactBps: numberToDecimalString(priceImpactBps),
|
|
252
242
|
feeTier,
|
|
253
243
|
isDefaultFeeTier: true,
|
|
254
|
-
feeUsd: feeUsd
|
|
244
|
+
feeUsd: numberToDecimalString(feeUsd),
|
|
255
245
|
funding: price.funding ?? null,
|
|
256
246
|
insufficientLiquidity: walk.insufficientLiquidity,
|
|
257
247
|
timestamp: input.timestamp,
|
|
@@ -381,12 +371,4 @@ export function estimateRealizedPnl(order, position) {
|
|
|
381
371
|
}
|
|
382
372
|
return null;
|
|
383
373
|
}
|
|
384
|
-
/**
|
|
385
|
-
* @deprecated Use `estimateRealizedPnl`. Removed in the next major.
|
|
386
|
-
*/
|
|
387
|
-
export const expectedRealizedPnlForOpenOrder = regularOrderRealizedPnl;
|
|
388
|
-
/**
|
|
389
|
-
* @deprecated Use `estimateRealizedPnl`. Removed in the next major.
|
|
390
|
-
*/
|
|
391
|
-
export const expectedRealizedPnlForTriggerOrder = triggerOrderRealizedPnl;
|
|
392
374
|
//# sourceMappingURL=order.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,20 +1,14 @@
|
|
|
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
|
*/
|
|
10
|
+
import { MarginMode, PositionMarginAdjustment, } from '@lifi/perps-types';
|
|
9
11
|
import { areFinite, DivBig } from '../decimal/big.js';
|
|
10
|
-
/**
|
|
11
|
-
* Direction sign for a position.
|
|
12
|
-
*
|
|
13
|
-
* @deprecated Inline `isLong ? 1 : -1`. Removed in the next major.
|
|
14
|
-
*/
|
|
15
|
-
export function directionSign(isLong) {
|
|
16
|
-
return isLong ? 1 : -1;
|
|
17
|
-
}
|
|
18
12
|
/**
|
|
19
13
|
* Calculate notional value of a position.
|
|
20
14
|
*
|
|
@@ -94,10 +88,6 @@ export function calculateLiquidationDistance(params) {
|
|
|
94
88
|
}
|
|
95
89
|
return Math.abs((liquidationPrice - currentPrice) / currentPrice) * 100;
|
|
96
90
|
}
|
|
97
|
-
/**
|
|
98
|
-
* @deprecated Use `calculateLiquidationDistance`. Removed in the next major.
|
|
99
|
-
*/
|
|
100
|
-
export const liquidationDistancePercent = calculateLiquidationDistance;
|
|
101
91
|
/**
|
|
102
92
|
* Effective leverage of an open position.
|
|
103
93
|
*
|
|
@@ -118,10 +108,6 @@ export function calculateEffectiveLeverage(params) {
|
|
|
118
108
|
}
|
|
119
109
|
return new DivBig(positionValueUsd).div(marginUsd).toNumber();
|
|
120
110
|
}
|
|
121
|
-
/**
|
|
122
|
-
* @deprecated Use `calculateEffectiveLeverage`. Removed in the next major.
|
|
123
|
-
*/
|
|
124
|
-
export const effectiveLeverage = calculateEffectiveLeverage;
|
|
125
111
|
/**
|
|
126
112
|
* Estimated liquidation price for an isolated-margin position, parameterised
|
|
127
113
|
* by the venue's maintenance margin rate.
|
|
@@ -162,10 +148,6 @@ export function estimateLiquidationPrice(params) {
|
|
|
162
148
|
.minus(marginAvailable.times(side).div(mmr.times(-side).plus(1)))
|
|
163
149
|
.toNumber();
|
|
164
150
|
}
|
|
165
|
-
/**
|
|
166
|
-
* @deprecated Use `estimateLiquidationPrice`. Removed in the next major.
|
|
167
|
-
*/
|
|
168
|
-
export const estimateIsolatedLiquidationPrice = estimateLiquidationPrice;
|
|
169
151
|
/**
|
|
170
152
|
* Whether an isolated position with this liquidation price is already past
|
|
171
153
|
* liquidation at `currentPrice`: a long liquidates when the price falls to its
|
|
@@ -217,10 +199,6 @@ export function estimateAverageEntryPrice(params) {
|
|
|
217
199
|
.div(new DivBig(currentSize).plus(addSize))
|
|
218
200
|
.toNumber();
|
|
219
201
|
}
|
|
220
|
-
/**
|
|
221
|
-
* @deprecated Use `estimateAverageEntryPrice`. Removed in the next major.
|
|
222
|
-
*/
|
|
223
|
-
export const predictAverageEntryPrice = estimateAverageEntryPrice;
|
|
224
202
|
/**
|
|
225
203
|
* Estimated effective leverage after adding margin and notional.
|
|
226
204
|
*
|
|
@@ -246,10 +224,6 @@ export function estimateNewLeverage(params) {
|
|
|
246
224
|
.div(new DivBig(currentMargin).plus(addMargin))
|
|
247
225
|
.toNumber();
|
|
248
226
|
}
|
|
249
|
-
/**
|
|
250
|
-
* @deprecated Use `estimateNewLeverage`. Removed in the next major.
|
|
251
|
-
*/
|
|
252
|
-
export const predictNewLeverage = estimateNewLeverage;
|
|
253
227
|
/**
|
|
254
228
|
* Estimated unrealised PnL at the current mark price.
|
|
255
229
|
*
|
|
@@ -269,10 +243,6 @@ export function estimateUnrealizedPnl(params) {
|
|
|
269
243
|
.times(isLong ? 1 : -1)
|
|
270
244
|
.toNumber();
|
|
271
245
|
}
|
|
272
|
-
/**
|
|
273
|
-
* @deprecated Use `estimateUnrealizedPnl`. Removed in the next major.
|
|
274
|
-
*/
|
|
275
|
-
export const predictUnrealizedPnl = estimateUnrealizedPnl;
|
|
276
246
|
/**
|
|
277
247
|
* Realised PnL on the portion of a position being closed.
|
|
278
248
|
*
|
|
@@ -293,7 +263,24 @@ export function calculateRealizedPnl(params) {
|
|
|
293
263
|
.toNumber();
|
|
294
264
|
}
|
|
295
265
|
/**
|
|
296
|
-
*
|
|
266
|
+
* Whether this position can take a margin adjustment at all: it holds margin of
|
|
267
|
+
* its own and its market exposes individual position margin.
|
|
268
|
+
*
|
|
269
|
+
* @public
|
|
270
|
+
*/
|
|
271
|
+
export function positionSupportsMarginAdjustment(position) {
|
|
272
|
+
return (position.marginMode === MarginMode.ISOLATED &&
|
|
273
|
+
position.market.positionMarginAdjustment !== PositionMarginAdjustment.NONE);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Whether a removal is among the adjustments this position permits. An
|
|
277
|
+
* `ADD_ONLY` market takes adds and no withdrawal.
|
|
278
|
+
*
|
|
279
|
+
* @public
|
|
297
280
|
*/
|
|
298
|
-
export
|
|
281
|
+
export function positionSupportsMarginRemoval(position) {
|
|
282
|
+
return (positionSupportsMarginAdjustment(position) &&
|
|
283
|
+
position.market.positionMarginAdjustment ===
|
|
284
|
+
PositionMarginAdjustment.ADD_AND_REMOVE);
|
|
285
|
+
}
|
|
299
286
|
//# sourceMappingURL=position.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,7 @@
|
|
|
1
|
+
import { PerpsErrorCode, } from '@lifi/perps-types';
|
|
2
|
+
import { PerpsError } from '../errors/PerpsError.js';
|
|
1
3
|
import { buildQuote } from '../math/order.js';
|
|
4
|
+
import { wsLog } from '../websocket/wsLog.js';
|
|
2
5
|
import { resolveQuoteMarket, resolveQuotePrice } from './resolveQuote.js';
|
|
3
6
|
/**
|
|
4
7
|
* Minimum gap between successive streamed {@link Quote} emissions — the same
|
|
@@ -24,10 +27,18 @@ export const QUOTE_THROTTLE_MS = 100;
|
|
|
24
27
|
* listeners once and cancels any pending trailing emission, so the wire
|
|
25
28
|
* subscriptions' ref counts cannot be double-decremented.
|
|
26
29
|
*
|
|
30
|
+
* A throw while building or delivering a streamed quote (an unparsable mark
|
|
31
|
+
* price, a throwing `onQuote`) is logged via `wsLog.listenerFailure` and the
|
|
32
|
+
* emission is skipped, on both the immediate and the trailing-timer path.
|
|
33
|
+
*
|
|
34
|
+
* @throws {PerpsError} `ValidationError` when `params.size` is not finite.
|
|
27
35
|
* @throws {PerpsError} `MarketNotFound` when no market matches symbol+type.
|
|
28
36
|
* @internal
|
|
29
37
|
*/
|
|
30
38
|
export async function resolveSubscribeQuote(client, provider, ws, params, feeTier, onQuote) {
|
|
39
|
+
if (!Number.isFinite(params.size)) {
|
|
40
|
+
throw new PerpsError(PerpsErrorCode.ValidationError, `Quote size must be a finite number, got ${params.size}`);
|
|
41
|
+
}
|
|
31
42
|
const market = await resolveQuoteMarket(client, provider, params);
|
|
32
43
|
// REST snapshot seeds the context; the marketContext subscription below
|
|
33
44
|
// keeps it live so streamed impact/funding track the moving market.
|
|
@@ -40,19 +51,24 @@ export async function resolveSubscribeQuote(client, provider, ws, params, feeTie
|
|
|
40
51
|
return;
|
|
41
52
|
}
|
|
42
53
|
lastEmitAt = Date.now();
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
try {
|
|
55
|
+
onQuote(buildQuote({
|
|
56
|
+
provider,
|
|
57
|
+
symbol: params.symbol,
|
|
58
|
+
type: params.type,
|
|
59
|
+
side: params.side,
|
|
60
|
+
sizeUsd: params.size,
|
|
61
|
+
market,
|
|
62
|
+
price: latestContext,
|
|
63
|
+
bids: latestBook.bids,
|
|
64
|
+
asks: latestBook.asks,
|
|
65
|
+
feeTier,
|
|
66
|
+
timestamp: Date.now(),
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
wsLog.listenerFailure(provider, 'quote', error);
|
|
71
|
+
}
|
|
56
72
|
};
|
|
57
73
|
const unsubscribeContext = await ws.subscribe({ channel: 'marketContext', dex: provider, marketId: market.id }, (event) => {
|
|
58
74
|
if (event.channel !== 'marketContext') {
|