@lifi/perps-sdk 24.0.0 → 25.0.1
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 +34 -28
- package/dist/cjs/decimal/arithmetic.d.ts +2 -0
- package/dist/cjs/decimal/arithmetic.d.ts.map +1 -1
- package/dist/cjs/decimal/arithmetic.js +6 -1
- package/dist/cjs/decimal/arithmetic.js.map +1 -1
- package/dist/cjs/decimal/convert.d.ts +0 -2
- package/dist/cjs/decimal/convert.d.ts.map +1 -1
- package/dist/cjs/decimal/convert.js +2 -11
- package/dist/cjs/decimal/convert.js.map +1 -1
- package/dist/cjs/decimal/decimalStringToBig.d.ts.map +1 -1
- package/dist/cjs/decimal/decimalStringToBig.js +3 -5
- package/dist/cjs/decimal/decimalStringToBig.js.map +1 -1
- package/dist/cjs/decimal/parse.d.ts +1 -0
- package/dist/cjs/decimal/parse.d.ts.map +1 -1
- package/dist/cjs/decimal/parse.js +2 -1
- package/dist/cjs/decimal/parse.js.map +1 -1
- package/dist/cjs/errors/invalidInput.d.ts +3 -0
- package/dist/cjs/errors/invalidInput.d.ts.map +1 -0
- package/dist/cjs/errors/invalidInput.js +9 -0
- package/dist/cjs/errors/invalidInput.js.map +1 -0
- package/dist/cjs/index.d.ts +5 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +10 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math/order.d.ts +4 -4
- package/dist/cjs/math/order.d.ts.map +1 -1
- package/dist/cjs/math/order.js +31 -18
- package/dist/cjs/math/order.js.map +1 -1
- package/dist/cjs/math/position.d.ts +2 -2
- package/dist/cjs/math/position.d.ts.map +1 -1
- package/dist/cjs/math/position.js +17 -14
- package/dist/cjs/math/position.js.map +1 -1
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/utils/warnOnce.d.ts +6 -2
- package/dist/cjs/utils/warnOnce.d.ts.map +1 -1
- package/dist/cjs/utils/warnOnce.js +12 -6
- package/dist/cjs/utils/warnOnce.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/websocket/wsLog.d.ts +1 -1
- package/dist/cjs/websocket/wsLog.d.ts.map +1 -1
- package/dist/cjs/websocket/wsLog.js +4 -3
- package/dist/cjs/websocket/wsLog.js.map +1 -1
- package/dist/cjs/wire/orderAmounts.d.ts +3 -2
- package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
- package/dist/cjs/wire/orderAmounts.js +17 -13
- package/dist/cjs/wire/orderAmounts.js.map +1 -1
- package/dist/cjs/wire/refuel.js +2 -2
- package/dist/cjs/wire/refuel.js.map +1 -1
- package/dist/esm/decimal/arithmetic.d.ts +24 -10
- package/dist/esm/decimal/arithmetic.d.ts.map +1 -1
- package/dist/esm/decimal/arithmetic.js +26 -10
- package/dist/esm/decimal/arithmetic.js.map +1 -1
- package/dist/esm/decimal/compare.d.ts +3 -3
- package/dist/esm/decimal/compare.js +3 -3
- package/dist/esm/decimal/convert.d.ts +2 -24
- package/dist/esm/decimal/convert.d.ts.map +1 -1
- package/dist/esm/decimal/convert.js +3 -32
- package/dist/esm/decimal/convert.js.map +1 -1
- package/dist/esm/decimal/decimalStringToBig.d.ts +4 -5
- package/dist/esm/decimal/decimalStringToBig.d.ts.map +1 -1
- package/dist/esm/decimal/decimalStringToBig.js +7 -10
- package/dist/esm/decimal/decimalStringToBig.js.map +1 -1
- package/dist/esm/decimal/format.js +3 -3
- package/dist/esm/decimal/parse.d.ts +8 -1
- package/dist/esm/decimal/parse.d.ts.map +1 -1
- package/dist/esm/decimal/parse.js +8 -1
- package/dist/esm/decimal/parse.js.map +1 -1
- package/dist/esm/errors/invalidInput.d.ts +4 -0
- package/dist/esm/errors/invalidInput.d.ts.map +1 -0
- package/dist/esm/errors/invalidInput.js +7 -0
- package/dist/esm/errors/invalidInput.js.map +1 -0
- package/dist/esm/index.d.ts +5 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/fills.d.ts +4 -4
- package/dist/esm/math/fills.js +4 -4
- package/dist/esm/math/order.d.ts +24 -26
- package/dist/esm/math/order.d.ts.map +1 -1
- package/dist/esm/math/order.js +52 -41
- package/dist/esm/math/order.js.map +1 -1
- package/dist/esm/math/position.d.ts +30 -26
- package/dist/esm/math/position.d.ts.map +1 -1
- package/dist/esm/math/position.js +46 -39
- package/dist/esm/math/position.js.map +1 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts +1 -1
- package/dist/esm/services/resolveSubscribeQuote.js +1 -1
- package/dist/esm/types/provider.d.ts +5 -3
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/utils/createSafeFunction.d.ts +1 -1
- package/dist/esm/utils/createSafeFunction.js +1 -1
- package/dist/esm/utils/warnOnce.d.ts +17 -6
- package/dist/esm/utils/warnOnce.d.ts.map +1 -1
- package/dist/esm/utils/warnOnce.js +22 -10
- package/dist/esm/utils/warnOnce.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/websocket/wsLog.d.ts +4 -4
- package/dist/esm/websocket/wsLog.d.ts.map +1 -1
- package/dist/esm/websocket/wsLog.js +8 -7
- package/dist/esm/websocket/wsLog.js.map +1 -1
- package/dist/esm/wire/orderAmounts.d.ts +9 -7
- package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
- package/dist/esm/wire/orderAmounts.js +22 -18
- package/dist/esm/wire/orderAmounts.js.map +1 -1
- package/dist/esm/wire/refuel.d.ts +1 -1
- package/dist/esm/wire/refuel.js +4 -4
- package/dist/esm/wire/refuel.js.map +1 -1
- package/dist/esm/wire/transferable.d.ts +2 -2
- package/dist/esm/wire/transferable.js +2 -2
- package/dist/types/decimal/arithmetic.d.ts +24 -10
- package/dist/types/decimal/arithmetic.d.ts.map +1 -1
- package/dist/types/decimal/compare.d.ts +3 -3
- package/dist/types/decimal/convert.d.ts +2 -24
- package/dist/types/decimal/convert.d.ts.map +1 -1
- package/dist/types/decimal/decimalStringToBig.d.ts +4 -5
- package/dist/types/decimal/decimalStringToBig.d.ts.map +1 -1
- package/dist/types/decimal/parse.d.ts +8 -1
- package/dist/types/decimal/parse.d.ts.map +1 -1
- package/dist/types/errors/invalidInput.d.ts +4 -0
- package/dist/types/errors/invalidInput.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math/fills.d.ts +4 -4
- package/dist/types/math/order.d.ts +24 -26
- package/dist/types/math/order.d.ts.map +1 -1
- package/dist/types/math/position.d.ts +30 -26
- package/dist/types/math/position.d.ts.map +1 -1
- package/dist/types/services/resolveSubscribeQuote.d.ts +1 -1
- package/dist/types/types/provider.d.ts +5 -3
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/utils/createSafeFunction.d.ts +1 -1
- package/dist/types/utils/warnOnce.d.ts +17 -6
- package/dist/types/utils/warnOnce.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/websocket/wsLog.d.ts +4 -4
- package/dist/types/websocket/wsLog.d.ts.map +1 -1
- package/dist/types/wire/orderAmounts.d.ts +9 -7
- package/dist/types/wire/orderAmounts.d.ts.map +1 -1
- package/dist/types/wire/refuel.d.ts +1 -1
- package/dist/types/wire/transferable.d.ts +2 -2
- package/package.json +2 -2
- package/src/decimal/arithmetic.ts +36 -10
- package/src/decimal/compare.ts +3 -3
- package/src/decimal/convert.ts +3 -40
- package/src/decimal/decimalStringToBig.ts +7 -12
- package/src/decimal/format.ts +3 -3
- package/src/decimal/parse.ts +12 -1
- package/src/errors/invalidInput.ts +10 -0
- package/src/index.ts +8 -3
- package/src/math/fills.ts +4 -4
- package/src/math/order.ts +56 -48
- package/src/math/position.ts +50 -44
- package/src/services/resolveSubscribeQuote.ts +1 -1
- package/src/types/provider.ts +5 -3
- package/src/utils/createSafeFunction.ts +1 -1
- package/src/utils/warnOnce.ts +28 -12
- package/src/version.ts +1 -1
- package/src/websocket/wsLog.ts +22 -9
- package/src/wire/orderAmounts.ts +42 -24
- package/src/wire/refuel.ts +4 -4
- package/src/wire/transferable.ts +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Display-tier position formulas and margin-adjustment predicates. Every
|
|
3
3
|
* formula takes and gives decimal strings; arithmetic is exact Big.js, with
|
|
4
4
|
* division to 40 decimal places. Each formula throws `ValidationError` on an
|
|
5
|
-
* input that
|
|
5
|
+
* input that does not match the decimal pattern and has a `safe*` pair that gives
|
|
6
6
|
* `undefined` in place of the throw.
|
|
7
7
|
*
|
|
8
8
|
* Sign convention: long = +1, short = -1. Sizes passed to the `estimate*`
|
|
@@ -14,7 +14,7 @@ import type { LiquidationEstimateParams } from '../types/provider.js';
|
|
|
14
14
|
/**
|
|
15
15
|
* Notional value of a position: `|size| × price`.
|
|
16
16
|
*
|
|
17
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
17
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
18
18
|
* @public
|
|
19
19
|
*/
|
|
20
20
|
export declare function calculateNotionalValue(size: string, price: string): string;
|
|
@@ -24,7 +24,7 @@ export declare const safeCalculateNotionalValue: (size: string, price: string) =
|
|
|
24
24
|
* Unrealized PnL: `(currentPrice - entryPrice) × size`, where `size` is
|
|
25
25
|
* positive for a long and negative for a short.
|
|
26
26
|
*
|
|
27
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
27
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
28
28
|
* @public
|
|
29
29
|
*/
|
|
30
30
|
export declare function calculateUnrealizedPnl(entryPrice: string, currentPrice: string, size: string): string;
|
|
@@ -32,9 +32,9 @@ export declare function calculateUnrealizedPnl(entryPrice: string, currentPrice:
|
|
|
32
32
|
export declare const safeCalculateUnrealizedPnl: (entryPrice: string, currentPrice: string, size: string) => string | undefined;
|
|
33
33
|
/**
|
|
34
34
|
* Return on equity as a percentage (`'10'` for 10%): `pnl ÷ margin × 100`.
|
|
35
|
-
* A zero margin gives `'0'`.
|
|
36
35
|
*
|
|
37
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
36
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
37
|
+
* decimal pattern or `margin` is zero.
|
|
38
38
|
* @public
|
|
39
39
|
*/
|
|
40
40
|
export declare function calculateRoe(pnl: string, margin: string): string;
|
|
@@ -43,7 +43,7 @@ export declare const safeCalculateRoe: (pnl: string, margin: string) => string |
|
|
|
43
43
|
/**
|
|
44
44
|
* Required margin: `notionalValue ÷ leverage`.
|
|
45
45
|
*
|
|
46
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
46
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern
|
|
47
47
|
* or `leverage` is zero.
|
|
48
48
|
* @public
|
|
49
49
|
*/
|
|
@@ -52,9 +52,10 @@ export declare function calculateRequiredMargin(notionalValue: string, leverage:
|
|
|
52
52
|
export declare const safeCalculateRequiredMargin: (notionalValue: string, leverage: string) => string | undefined;
|
|
53
53
|
/**
|
|
54
54
|
* Distance from the current price to the liquidation price, as an absolute
|
|
55
|
-
* percentage of the current price.
|
|
55
|
+
* percentage of the current price.
|
|
56
56
|
*
|
|
57
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
57
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
58
|
+
* decimal pattern or `currentPrice` is zero.
|
|
58
59
|
* @public
|
|
59
60
|
*/
|
|
60
61
|
export declare function calculateLiquidationDistance(params: {
|
|
@@ -68,9 +69,9 @@ export declare const safeCalculateLiquidationDistance: (params: {
|
|
|
68
69
|
}) => string | undefined;
|
|
69
70
|
/**
|
|
70
71
|
* Effective leverage of an open position: `positionValueUsd ÷ marginUsd`.
|
|
71
|
-
* A zero margin gives `'0'`.
|
|
72
72
|
*
|
|
73
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
73
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
74
|
+
* decimal pattern or `marginUsd` is zero.
|
|
74
75
|
* @public
|
|
75
76
|
*/
|
|
76
77
|
export declare function calculateEffectiveLeverage(params: {
|
|
@@ -94,9 +95,12 @@ export declare const safeCalculateEffectiveLeverage: (params: {
|
|
|
94
95
|
*
|
|
95
96
|
* @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
|
|
96
97
|
* (`'0.01'` = 1%).
|
|
97
|
-
* @returns The estimate, or `undefined`
|
|
98
|
-
*
|
|
99
|
-
*
|
|
98
|
+
* @returns The estimate, or `undefined` when `1 / leverage` is at or below
|
|
99
|
+
* `maintenanceMarginRate`: the position opens at or past liquidation, so
|
|
100
|
+
* the model has no price on the correct side of entry.
|
|
101
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
102
|
+
* decimal pattern, `leverage` is zero, or `maintenanceMarginRate` gives a
|
|
103
|
+
* zero denominator (`1` for a long, `-1` for a short).
|
|
100
104
|
* @public
|
|
101
105
|
*/
|
|
102
106
|
export declare function estimateLiquidationPrice(params: {
|
|
@@ -117,8 +121,10 @@ export declare const safeEstimateLiquidationPrice: (params: {
|
|
|
117
121
|
* `market.maintenanceMarginRate`.
|
|
118
122
|
*
|
|
119
123
|
* @returns The estimate, or `undefined` when the market carries no
|
|
120
|
-
* `maintenanceMarginRate` or
|
|
121
|
-
*
|
|
124
|
+
* `maintenanceMarginRate` or {@link estimateLiquidationPrice} gives
|
|
125
|
+
* `undefined`.
|
|
126
|
+
* @throws {PerpsError} `ValidationError` on an input that
|
|
127
|
+
* {@link estimateLiquidationPrice} rejects.
|
|
122
128
|
* @public
|
|
123
129
|
*/
|
|
124
130
|
export declare function estimateLiquidationPriceAtMarketRate(market: PerpsMarket, params: LiquidationEstimateParams): string | undefined;
|
|
@@ -130,7 +136,7 @@ export declare const safeEstimateLiquidationPriceAtMarketRate: (market: PerpsMar
|
|
|
130
136
|
* liquidation level, a short when it rises to it. A non-positive price on
|
|
131
137
|
* either side counts as unknown, so the result is `false`.
|
|
132
138
|
*
|
|
133
|
-
* @throws {PerpsError} `ValidationError` when a price
|
|
139
|
+
* @throws {PerpsError} `ValidationError` when a price does not match the decimal pattern.
|
|
134
140
|
* @public
|
|
135
141
|
*/
|
|
136
142
|
export declare function wouldImmediatelyLiquidate(params: {
|
|
@@ -151,9 +157,8 @@ export declare const safeWouldImmediatelyLiquidate: (params: {
|
|
|
151
157
|
*
|
|
152
158
|
* @param fillPrice - Expected fill price (mid for market, limit price for
|
|
153
159
|
* limit orders).
|
|
154
|
-
* @
|
|
155
|
-
* is not positive.
|
|
156
|
-
* @throws {PerpsError} `ValidationError` when an input is not a decimal string.
|
|
160
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
161
|
+
* decimal pattern or `currentSize + addSize` is not positive.
|
|
157
162
|
* @public
|
|
158
163
|
*/
|
|
159
164
|
export declare function estimateAverageEntryPrice(params: {
|
|
@@ -161,7 +166,7 @@ export declare function estimateAverageEntryPrice(params: {
|
|
|
161
166
|
currentEntry: string;
|
|
162
167
|
addSize: string;
|
|
163
168
|
fillPrice: string;
|
|
164
|
-
}): string
|
|
169
|
+
}): string;
|
|
165
170
|
/** @public */
|
|
166
171
|
export declare const safeEstimateAverageEntryPrice: (params: {
|
|
167
172
|
currentSize: string;
|
|
@@ -173,9 +178,8 @@ export declare const safeEstimateAverageEntryPrice: (params: {
|
|
|
173
178
|
* Estimated effective leverage after adding margin and notional:
|
|
174
179
|
* `(currentNotional + addNotional) ÷ (currentMargin + addMargin)`.
|
|
175
180
|
*
|
|
176
|
-
* @
|
|
177
|
-
* positive.
|
|
178
|
-
* @throws {PerpsError} `ValidationError` when an input is not a decimal string.
|
|
181
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
182
|
+
* decimal pattern or `currentMargin + addMargin` is not positive.
|
|
179
183
|
* @public
|
|
180
184
|
*/
|
|
181
185
|
export declare function estimateNewLeverage(params: {
|
|
@@ -183,7 +187,7 @@ export declare function estimateNewLeverage(params: {
|
|
|
183
187
|
currentMargin: string;
|
|
184
188
|
addNotional: string;
|
|
185
189
|
addMargin: string;
|
|
186
|
-
}): string
|
|
190
|
+
}): string;
|
|
187
191
|
/** @public */
|
|
188
192
|
export declare const safeEstimateNewLeverage: (params: {
|
|
189
193
|
currentNotional: string;
|
|
@@ -196,7 +200,7 @@ export declare const safeEstimateNewLeverage: (params: {
|
|
|
196
200
|
* `(markPrice - entryPrice) × size × (isLong ? 1 : -1)`.
|
|
197
201
|
*
|
|
198
202
|
* @param size - Position size as a non-negative magnitude.
|
|
199
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
203
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
200
204
|
* @public
|
|
201
205
|
*/
|
|
202
206
|
export declare function estimateUnrealizedPnl(params: {
|
|
@@ -217,7 +221,7 @@ export declare const safeEstimateUnrealizedPnl: (params: {
|
|
|
217
221
|
* `(closePrice - entryPrice) × closeSize × (isLong ? 1 : -1)`.
|
|
218
222
|
*
|
|
219
223
|
* @param closeSize - Size being closed as a non-negative magnitude.
|
|
220
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
224
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
221
225
|
* @public
|
|
222
226
|
*/
|
|
223
227
|
export declare function calculateRealizedPnl(params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,23 +2,22 @@
|
|
|
2
2
|
* Display-tier position formulas and margin-adjustment predicates. Every
|
|
3
3
|
* formula takes and gives decimal strings; arithmetic is exact Big.js, with
|
|
4
4
|
* division to 40 decimal places. Each formula throws `ValidationError` on an
|
|
5
|
-
* input that
|
|
5
|
+
* input that does not match the decimal pattern and has a `safe*` pair that gives
|
|
6
6
|
* `undefined` in place of the throw.
|
|
7
7
|
*
|
|
8
8
|
* Sign convention: long = +1, short = -1. Sizes passed to the `estimate*`
|
|
9
9
|
* helpers are always non-negative magnitudes; direction is carried by
|
|
10
10
|
* `isLong`.
|
|
11
11
|
*/
|
|
12
|
-
import { MarginMode,
|
|
12
|
+
import { MarginMode, PositionMarginAdjustment, } from '@lifi/perps-types';
|
|
13
13
|
import { DivBig } from '../decimal/big.js';
|
|
14
|
-
import { numberToDecimalString } from '../decimal/convert.js';
|
|
15
14
|
import { bigToDecimalString, decimalStringToBig, decimalStringToDivBig, } from '../decimal/decimalStringToBig.js';
|
|
16
|
-
import {
|
|
15
|
+
import { invalidInput } from '../errors/invalidInput.js';
|
|
17
16
|
import { createSafeFunction } from '../utils/createSafeFunction.js';
|
|
18
17
|
/**
|
|
19
18
|
* Notional value of a position: `|size| × price`.
|
|
20
19
|
*
|
|
21
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
20
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
22
21
|
* @public
|
|
23
22
|
*/
|
|
24
23
|
export function calculateNotionalValue(size, price) {
|
|
@@ -30,7 +29,7 @@ export const safeCalculateNotionalValue = createSafeFunction('calculateNotionalV
|
|
|
30
29
|
* Unrealized PnL: `(currentPrice - entryPrice) × size`, where `size` is
|
|
31
30
|
* positive for a long and negative for a short.
|
|
32
31
|
*
|
|
33
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
32
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
34
33
|
* @public
|
|
35
34
|
*/
|
|
36
35
|
export function calculateUnrealizedPnl(entryPrice, currentPrice, size) {
|
|
@@ -42,16 +41,16 @@ export function calculateUnrealizedPnl(entryPrice, currentPrice, size) {
|
|
|
42
41
|
export const safeCalculateUnrealizedPnl = createSafeFunction('calculateUnrealizedPnl', calculateUnrealizedPnl);
|
|
43
42
|
/**
|
|
44
43
|
* Return on equity as a percentage (`'10'` for 10%): `pnl ÷ margin × 100`.
|
|
45
|
-
* A zero margin gives `'0'`.
|
|
46
44
|
*
|
|
47
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
45
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
46
|
+
* decimal pattern or `margin` is zero.
|
|
48
47
|
* @public
|
|
49
48
|
*/
|
|
50
49
|
export function calculateRoe(pnl, margin) {
|
|
51
50
|
const marginBig = decimalStringToBig(margin);
|
|
52
51
|
const pnlBig = decimalStringToDivBig(pnl);
|
|
53
52
|
if (marginBig.eq(0)) {
|
|
54
|
-
|
|
53
|
+
throw invalidInput('margin', 'must not be zero');
|
|
55
54
|
}
|
|
56
55
|
return bigToDecimalString(pnlBig.div(marginBig).times(100));
|
|
57
56
|
}
|
|
@@ -60,7 +59,7 @@ export const safeCalculateRoe = createSafeFunction('calculateRoe', calculateRoe)
|
|
|
60
59
|
/**
|
|
61
60
|
* Required margin: `notionalValue ÷ leverage`.
|
|
62
61
|
*
|
|
63
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
62
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern
|
|
64
63
|
* or `leverage` is zero.
|
|
65
64
|
* @public
|
|
66
65
|
*/
|
|
@@ -68,7 +67,7 @@ export function calculateRequiredMargin(notionalValue, leverage) {
|
|
|
68
67
|
const notionalBig = decimalStringToDivBig(notionalValue);
|
|
69
68
|
const leverageBig = decimalStringToBig(leverage);
|
|
70
69
|
if (leverageBig.eq(0)) {
|
|
71
|
-
throw
|
|
70
|
+
throw invalidInput('leverage', 'must not be zero');
|
|
72
71
|
}
|
|
73
72
|
return bigToDecimalString(notionalBig.div(leverageBig));
|
|
74
73
|
}
|
|
@@ -76,16 +75,17 @@ export function calculateRequiredMargin(notionalValue, leverage) {
|
|
|
76
75
|
export const safeCalculateRequiredMargin = createSafeFunction('calculateRequiredMargin', calculateRequiredMargin);
|
|
77
76
|
/**
|
|
78
77
|
* Distance from the current price to the liquidation price, as an absolute
|
|
79
|
-
* percentage of the current price.
|
|
78
|
+
* percentage of the current price.
|
|
80
79
|
*
|
|
81
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
80
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
81
|
+
* decimal pattern or `currentPrice` is zero.
|
|
82
82
|
* @public
|
|
83
83
|
*/
|
|
84
84
|
export function calculateLiquidationDistance(params) {
|
|
85
85
|
const liquidationPrice = decimalStringToDivBig(params.liquidationPrice);
|
|
86
86
|
const currentPrice = decimalStringToBig(params.currentPrice);
|
|
87
87
|
if (currentPrice.eq(0)) {
|
|
88
|
-
|
|
88
|
+
throw invalidInput('currentPrice', 'must not be zero');
|
|
89
89
|
}
|
|
90
90
|
return bigToDecimalString(liquidationPrice.minus(currentPrice).div(currentPrice).abs().times(100));
|
|
91
91
|
}
|
|
@@ -93,16 +93,16 @@ export function calculateLiquidationDistance(params) {
|
|
|
93
93
|
export const safeCalculateLiquidationDistance = createSafeFunction('calculateLiquidationDistance', calculateLiquidationDistance);
|
|
94
94
|
/**
|
|
95
95
|
* Effective leverage of an open position: `positionValueUsd ÷ marginUsd`.
|
|
96
|
-
* A zero margin gives `'0'`.
|
|
97
96
|
*
|
|
98
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
97
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
98
|
+
* decimal pattern or `marginUsd` is zero.
|
|
99
99
|
* @public
|
|
100
100
|
*/
|
|
101
101
|
export function calculateEffectiveLeverage(params) {
|
|
102
102
|
const positionValue = decimalStringToDivBig(params.positionValueUsd);
|
|
103
103
|
const margin = decimalStringToBig(params.marginUsd);
|
|
104
104
|
if (margin.eq(0)) {
|
|
105
|
-
|
|
105
|
+
throw invalidInput('marginUsd', 'must not be zero');
|
|
106
106
|
}
|
|
107
107
|
return bigToDecimalString(positionValue.div(margin));
|
|
108
108
|
}
|
|
@@ -120,9 +120,12 @@ export const safeCalculateEffectiveLeverage = createSafeFunction('calculateEffec
|
|
|
120
120
|
*
|
|
121
121
|
* @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
|
|
122
122
|
* (`'0.01'` = 1%).
|
|
123
|
-
* @returns The estimate, or `undefined`
|
|
124
|
-
*
|
|
125
|
-
*
|
|
123
|
+
* @returns The estimate, or `undefined` when `1 / leverage` is at or below
|
|
124
|
+
* `maintenanceMarginRate`: the position opens at or past liquidation, so
|
|
125
|
+
* the model has no price on the correct side of entry.
|
|
126
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
127
|
+
* decimal pattern, `leverage` is zero, or `maintenanceMarginRate` gives a
|
|
128
|
+
* zero denominator (`1` for a long, `-1` for a short).
|
|
126
129
|
* @public
|
|
127
130
|
*/
|
|
128
131
|
export function estimateLiquidationPrice(params) {
|
|
@@ -131,13 +134,17 @@ export function estimateLiquidationPrice(params) {
|
|
|
131
134
|
const mmr = decimalStringToBig(params.maintenanceMarginRate);
|
|
132
135
|
const side = params.isLong ? 1 : -1;
|
|
133
136
|
const denominator = mmr.times(-side).plus(1);
|
|
134
|
-
if (leverage.eq(0)
|
|
137
|
+
if (leverage.eq(0)) {
|
|
138
|
+
throw invalidInput('leverage', 'must not be zero');
|
|
139
|
+
}
|
|
140
|
+
if (denominator.eq(0)) {
|
|
141
|
+
throw invalidInput('maintenanceMarginRate', `must not be ${params.isLong ? '1' : '-1'} for this side`);
|
|
142
|
+
}
|
|
143
|
+
const marginFractionAvailable = new DivBig(1).div(leverage).minus(mmr);
|
|
144
|
+
if (marginFractionAvailable.lte(0)) {
|
|
135
145
|
return undefined;
|
|
136
146
|
}
|
|
137
|
-
const marginAvailable =
|
|
138
|
-
.div(leverage)
|
|
139
|
-
.minus(mmr)
|
|
140
|
-
.times(entryPrice);
|
|
147
|
+
const marginAvailable = marginFractionAvailable.times(entryPrice);
|
|
141
148
|
return bigToDecimalString(entryPrice.minus(marginAvailable.times(side).div(denominator)));
|
|
142
149
|
}
|
|
143
150
|
/** @public */
|
|
@@ -147,8 +154,10 @@ export const safeEstimateLiquidationPrice = createSafeFunction('estimateLiquidat
|
|
|
147
154
|
* `market.maintenanceMarginRate`.
|
|
148
155
|
*
|
|
149
156
|
* @returns The estimate, or `undefined` when the market carries no
|
|
150
|
-
* `maintenanceMarginRate` or
|
|
151
|
-
*
|
|
157
|
+
* `maintenanceMarginRate` or {@link estimateLiquidationPrice} gives
|
|
158
|
+
* `undefined`.
|
|
159
|
+
* @throws {PerpsError} `ValidationError` on an input that
|
|
160
|
+
* {@link estimateLiquidationPrice} rejects.
|
|
152
161
|
* @public
|
|
153
162
|
*/
|
|
154
163
|
export function estimateLiquidationPriceAtMarketRate(market, params) {
|
|
@@ -159,7 +168,7 @@ export function estimateLiquidationPriceAtMarketRate(market, params) {
|
|
|
159
168
|
entryPrice: params.entryPrice,
|
|
160
169
|
leverage: params.leverage,
|
|
161
170
|
isLong: params.isLong,
|
|
162
|
-
maintenanceMarginRate:
|
|
171
|
+
maintenanceMarginRate: market.maintenanceMarginRate,
|
|
163
172
|
});
|
|
164
173
|
}
|
|
165
174
|
/** @public */
|
|
@@ -170,7 +179,7 @@ export const safeEstimateLiquidationPriceAtMarketRate = createSafeFunction('esti
|
|
|
170
179
|
* liquidation level, a short when it rises to it. A non-positive price on
|
|
171
180
|
* either side counts as unknown, so the result is `false`.
|
|
172
181
|
*
|
|
173
|
-
* @throws {PerpsError} `ValidationError` when a price
|
|
182
|
+
* @throws {PerpsError} `ValidationError` when a price does not match the decimal pattern.
|
|
174
183
|
* @public
|
|
175
184
|
*/
|
|
176
185
|
export function wouldImmediatelyLiquidate(params) {
|
|
@@ -192,9 +201,8 @@ export const safeWouldImmediatelyLiquidate = createSafeFunction('wouldImmediatel
|
|
|
192
201
|
*
|
|
193
202
|
* @param fillPrice - Expected fill price (mid for market, limit price for
|
|
194
203
|
* limit orders).
|
|
195
|
-
* @
|
|
196
|
-
* is not positive.
|
|
197
|
-
* @throws {PerpsError} `ValidationError` when an input is not a decimal string.
|
|
204
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
205
|
+
* decimal pattern or `currentSize + addSize` is not positive.
|
|
198
206
|
* @public
|
|
199
207
|
*/
|
|
200
208
|
export function estimateAverageEntryPrice(params) {
|
|
@@ -204,7 +212,7 @@ export function estimateAverageEntryPrice(params) {
|
|
|
204
212
|
const fillPrice = decimalStringToBig(params.fillPrice);
|
|
205
213
|
const totalSize = currentSize.plus(addSize);
|
|
206
214
|
if (totalSize.lte(0)) {
|
|
207
|
-
|
|
215
|
+
throw invalidInput('currentSize + addSize', 'must be positive');
|
|
208
216
|
}
|
|
209
217
|
return bigToDecimalString(currentSize
|
|
210
218
|
.times(currentEntry)
|
|
@@ -217,16 +225,15 @@ export const safeEstimateAverageEntryPrice = createSafeFunction('estimateAverage
|
|
|
217
225
|
* Estimated effective leverage after adding margin and notional:
|
|
218
226
|
* `(currentNotional + addNotional) ÷ (currentMargin + addMargin)`.
|
|
219
227
|
*
|
|
220
|
-
* @
|
|
221
|
-
* positive.
|
|
222
|
-
* @throws {PerpsError} `ValidationError` when an input is not a decimal string.
|
|
228
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
229
|
+
* decimal pattern or `currentMargin + addMargin` is not positive.
|
|
223
230
|
* @public
|
|
224
231
|
*/
|
|
225
232
|
export function estimateNewLeverage(params) {
|
|
226
233
|
const totalNotional = decimalStringToDivBig(params.currentNotional).plus(decimalStringToBig(params.addNotional));
|
|
227
234
|
const totalMargin = decimalStringToBig(params.currentMargin).plus(decimalStringToBig(params.addMargin));
|
|
228
235
|
if (totalMargin.lte(0)) {
|
|
229
|
-
|
|
236
|
+
throw invalidInput('currentMargin + addMargin', 'must be positive');
|
|
230
237
|
}
|
|
231
238
|
return bigToDecimalString(totalNotional.div(totalMargin));
|
|
232
239
|
}
|
|
@@ -237,7 +244,7 @@ export const safeEstimateNewLeverage = createSafeFunction('estimateNewLeverage',
|
|
|
237
244
|
* `(markPrice - entryPrice) × size × (isLong ? 1 : -1)`.
|
|
238
245
|
*
|
|
239
246
|
* @param size - Position size as a non-negative magnitude.
|
|
240
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
247
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
241
248
|
* @public
|
|
242
249
|
*/
|
|
243
250
|
export function estimateUnrealizedPnl(params) {
|
|
@@ -253,7 +260,7 @@ export const safeEstimateUnrealizedPnl = createSafeFunction('estimateUnrealizedP
|
|
|
253
260
|
* `(closePrice - entryPrice) × closeSize × (isLong ? 1 : -1)`.
|
|
254
261
|
*
|
|
255
262
|
* @param closeSize - Size being closed as a non-negative magnitude.
|
|
256
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
263
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
257
264
|
* @public
|
|
258
265
|
*/
|
|
259
266
|
export function calculateRealizedPnl(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export declare const QUOTE_THROTTLE_MS = 100;
|
|
|
29
29
|
* price, a throwing `onQuote`) is logged via `wsLog.listenerFailure` and the
|
|
30
30
|
* emission is skipped, on both the immediate and the trailing-timer path.
|
|
31
31
|
*
|
|
32
|
-
* @throws {PerpsError} `ValidationError` when `params.size`
|
|
32
|
+
* @throws {PerpsError} `ValidationError` when `params.size` does not match the decimal pattern.
|
|
33
33
|
* @throws {PerpsError} `MarketNotFound` when no market matches symbol+type.
|
|
34
34
|
* @internal
|
|
35
35
|
*/
|
|
@@ -32,7 +32,7 @@ export const QUOTE_THROTTLE_MS = 100;
|
|
|
32
32
|
* price, a throwing `onQuote`) is logged via `wsLog.listenerFailure` and the
|
|
33
33
|
* emission is skipped, on both the immediate and the trailing-timer path.
|
|
34
34
|
*
|
|
35
|
-
* @throws {PerpsError} `ValidationError` when `params.size`
|
|
35
|
+
* @throws {PerpsError} `ValidationError` when `params.size` does not match the decimal pattern.
|
|
36
36
|
* @throws {PerpsError} `MarketNotFound` when no market matches symbol+type.
|
|
37
37
|
* @internal
|
|
38
38
|
*/
|
|
@@ -469,9 +469,11 @@ export interface PerpsProviderPlugin {
|
|
|
469
469
|
* positions, prefer `Position.liquidationPrice` from the venue. Pure —
|
|
470
470
|
* does no I/O.
|
|
471
471
|
*
|
|
472
|
-
* @returns The estimated liquidation price, or `undefined` when
|
|
473
|
-
*
|
|
474
|
-
*
|
|
472
|
+
* @returns The estimated liquidation price, or `undefined` when `market`
|
|
473
|
+
* lacks the margin metadata the model needs or `leverage` leaves no
|
|
474
|
+
* margin above the maintenance requirement.
|
|
475
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
476
|
+
* decimal pattern or is degenerate, such as a zero leverage.
|
|
475
477
|
*/
|
|
476
478
|
estimateLiquidationPrice(market: PerpsMarket, params: LiquidationEstimateParams): string | undefined;
|
|
477
479
|
/**
|
|
@@ -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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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* The wrapper logs a warning with `name` and the error, which carries the
|
|
4
4
|
* stack trace.
|
|
5
5
|
*
|
|
6
|
-
* @
|
|
6
|
+
* @public
|
|
7
7
|
*/
|
|
8
8
|
export declare function createSafeFunction<Args extends unknown[], Result>(name: string, throwingFunction: (...args: Args) => Result): (...args: Args) => Result | undefined;
|
|
9
9
|
//# sourceMappingURL=createSafeFunction.d.ts.map
|
|
@@ -6,20 +6,31 @@
|
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
8
|
export declare const createWarnOnce: () => ((key: string, message: string) => void);
|
|
9
|
+
/**
|
|
10
|
+
* Cut venue text to a fixed length, so a warner key or message built from it
|
|
11
|
+
* stays small.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare const cutVenueText: (value: unknown) => string;
|
|
9
16
|
/**
|
|
10
17
|
* Describe a skipped venue row. The venue value is cut to a fixed length, so
|
|
11
18
|
* a warner key built from the text stays small.
|
|
12
19
|
*
|
|
13
20
|
* @internal
|
|
14
21
|
*/
|
|
15
|
-
export declare const skippedRowMessage: (source: string, row: string, field: string, value: unknown, expected: string) => string;
|
|
22
|
+
export declare const skippedRowMessage: (source: string, row: string, field: string, value: unknown, expected: string, marketId?: string) => string;
|
|
16
23
|
/**
|
|
17
|
-
* Warn once for each provider, row, field
|
|
18
|
-
* mapper skipped a venue row because a required field is not valid.
|
|
19
|
-
* holds no venue value, so a second bad value for the same field
|
|
24
|
+
* Warn once for each provider, row, field, expected kind and market that a
|
|
25
|
+
* provider mapper skipped a venue row because a required field is not valid.
|
|
26
|
+
* The key holds no venue value, so a second bad value for the same field on
|
|
27
|
+
* the same market stays silent.
|
|
20
28
|
*
|
|
21
|
-
* @param expected - What the field must be. Defaults to `'decimal'`.
|
|
29
|
+
* @param options.expected - What the field must be. Defaults to `'decimal'`.
|
|
22
30
|
* @internal
|
|
23
31
|
*/
|
|
24
|
-
export declare const warnSkippedVenueRow: (provider: string, row: string, field: string, value: unknown, expected?:
|
|
32
|
+
export declare const warnSkippedVenueRow: (provider: string, row: string, field: string, value: unknown, { marketId, expected, }?: {
|
|
33
|
+
marketId?: string;
|
|
34
|
+
expected?: string;
|
|
35
|
+
}) => void;
|
|
25
36
|
//# sourceMappingURL=warnOnce.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warnOnce.d.ts","sourceRoot":"","sources":["../../../src/utils/warnOnce.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAexE,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,OAAO,MAAM,EACb,OAAO,OAAO,EACd,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"warnOnce.d.ts","sourceRoot":"","sources":["../../../src/utils/warnOnce.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAexE,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,MAK7C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,OAAO,MAAM,EACb,OAAO,OAAO,EACd,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,MAGF,CAAA;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,OAAO,OAAO,EACd,0BAGG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,KAC/C,IAKF,CAAA"}
|