@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
package/dist/esm/index.js
CHANGED
|
@@ -12,11 +12,11 @@ export * from '@lifi/perps-types';
|
|
|
12
12
|
export { createPerpsClient, DEFAULT_API_URL, } from './client/createPerpsClient.js';
|
|
13
13
|
export { PerpsClient } from './client/PerpsClient.js';
|
|
14
14
|
export { requireProvider } from './client/requireProvider.js';
|
|
15
|
-
export { absDecimalString, addDecimalString, divideDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, safeAbsDecimalString, safeAddDecimalString, safeDivideDecimalString, safeDivideDecimalStringRoundDown, safeMultiplyDecimalString, safeSubtractDecimalString, subtractDecimalString, } from './decimal/arithmetic.js';
|
|
15
|
+
export { absDecimalString, addDecimalString, addDecimalStrings, divideDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, safeAbsDecimalString, safeAddDecimalString, safeAddDecimalStrings, safeDivideDecimalString, safeDivideDecimalStringRoundDown, safeMultiplyDecimalString, safeSubtractDecimalString, subtractDecimalString, } from './decimal/arithmetic.js';
|
|
16
16
|
export { compareDecimalStrings, isDecimalStringGreaterThan, isDecimalStringZero, safeCompareDecimalStrings, safeIsDecimalStringGreaterThan, safeIsDecimalStringZero, } from './decimal/compare.js';
|
|
17
|
-
export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString,
|
|
17
|
+
export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString, scaledIntegerToDecimalString, } from './decimal/convert.js';
|
|
18
18
|
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
|
|
19
|
-
export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, unknownToDecimalString, } from './decimal/parse.js';
|
|
19
|
+
export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, safeUnknownToDecimalString, unknownToDecimalString, } from './decimal/parse.js';
|
|
20
20
|
export { PerpsErrorMessage } from './errors/constants.js';
|
|
21
21
|
export { PerpsError } from './errors/PerpsError.js';
|
|
22
22
|
export { classifyFill, classifyFillFromPosition, FillClassification, } from './math/fills.js';
|
|
@@ -55,6 +55,7 @@ export { errorCodeFromStatus } from './transport/errorCodeFromStatus.js';
|
|
|
55
55
|
export { fetchWithRetry, isAbortError } from './transport/fetchWithRetry.js';
|
|
56
56
|
export { DISABLED_RETRY, LIFI_REQUEST_KEY, LIFI_RETRY_DEFAULTS, resolveRetryPolicy, } from './transport/retryPolicy.js';
|
|
57
57
|
export { paginateActivity } from './utils/activityPaging.js';
|
|
58
|
+
export { createSafeFunction } from './utils/createSafeFunction.js';
|
|
58
59
|
export { ETHEREUM_NATIVE_GAS, ETHEREUM_USDC, HYPERLIQUID_USDC, LIGHTER_USDC, ROBINHOOD_NATIVE_GAS, ROBINHOOD_USDG, } from './utils/depositAssets.js';
|
|
59
60
|
export { ExplorerChainId, explorerTxUrl, explorerTxUrlFromBase, } from './utils/explorer.js';
|
|
60
61
|
export { ACTIVE_ORDER_STATUSES, isActiveOrderStatus, isRegularOrder, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, isTriggerOrder, isTwapOrder, triggerConditionFor, } from './utils/orderClassification.js';
|
|
@@ -70,7 +71,7 @@ export { PerpsWsClient } from './websocket/PerpsWsClient.js';
|
|
|
70
71
|
export { ReconnectingWebSocket } from './websocket/ReconnectingWebSocket.js';
|
|
71
72
|
export { WS_CHANNEL_TEARDOWN_LINGER_MS, WsProviderBase, } from './websocket/WsProviderBase.js';
|
|
72
73
|
export { wsLog } from './websocket/wsLog.js';
|
|
73
|
-
export { calculateOrderAmounts } from './wire/orderAmounts.js';
|
|
74
|
+
export { calculateOrderAmounts, safeCalculateOrderAmounts, } from './wire/orderAmounts.js';
|
|
74
75
|
export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
|
|
75
76
|
export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
|
|
76
77
|
export { calculateTransferable } from './wire/transferable.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E;;;;;;;GAOG;AAEH,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,EAClB,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/math/fills.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ export { FillClassification };
|
|
|
12
12
|
* @param startPosition Signed position held BEFORE this fill (`> 0` long,
|
|
13
13
|
* `< 0` short, `0` flat).
|
|
14
14
|
* @param sz Unsigned fill size.
|
|
15
|
-
* @returns `BUY` or `SELL` when `startPosition` or `sz`
|
|
16
|
-
*
|
|
15
|
+
* @returns `BUY` or `SELL` when `startPosition` or `sz` does not match the
|
|
16
|
+
* decimal pattern, so one malformed venue fill still maps.
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
19
|
export declare function classifyFillFromPosition(startPosition: DecimalString, side: OrderSide, sz: DecimalString): FillClassification;
|
|
@@ -21,8 +21,8 @@ export declare function classifyFillFromPosition(startPosition: DecimalString, s
|
|
|
21
21
|
* Classify a fill as open or close based on realizedPnl.
|
|
22
22
|
* @deprecated Use `Fill.classification` instead — it uses startPosition
|
|
23
23
|
* for accurate open/increase/reduce/close/reverse classification.
|
|
24
|
-
* @returns `BUY` or `SELL` when `realizedPnl` is a string that
|
|
25
|
-
* decimal
|
|
24
|
+
* @returns `BUY` or `SELL` when `realizedPnl` is a string that does not match the
|
|
25
|
+
* decimal pattern.
|
|
26
26
|
* @public
|
|
27
27
|
*/
|
|
28
28
|
export declare function classifyFill(side: OrderSide, realizedPnl: DecimalString | null | undefined): FillClassification;
|
package/dist/esm/math/fills.js
CHANGED
|
@@ -15,8 +15,8 @@ export { FillClassification };
|
|
|
15
15
|
* @param startPosition Signed position held BEFORE this fill (`> 0` long,
|
|
16
16
|
* `< 0` short, `0` flat).
|
|
17
17
|
* @param sz Unsigned fill size.
|
|
18
|
-
* @returns `BUY` or `SELL` when `startPosition` or `sz`
|
|
19
|
-
*
|
|
18
|
+
* @returns `BUY` or `SELL` when `startPosition` or `sz` does not match the
|
|
19
|
+
* decimal pattern, so one malformed venue fill still maps.
|
|
20
20
|
* @public
|
|
21
21
|
*/
|
|
22
22
|
export function classifyFillFromPosition(startPosition, side, sz) {
|
|
@@ -60,8 +60,8 @@ export function classifyFillFromPosition(startPosition, side, sz) {
|
|
|
60
60
|
* Classify a fill as open or close based on realizedPnl.
|
|
61
61
|
* @deprecated Use `Fill.classification` instead — it uses startPosition
|
|
62
62
|
* for accurate open/increase/reduce/close/reverse classification.
|
|
63
|
-
* @returns `BUY` or `SELL` when `realizedPnl` is a string that
|
|
64
|
-
* decimal
|
|
63
|
+
* @returns `BUY` or `SELL` when `realizedPnl` is a string that does not match the
|
|
64
|
+
* decimal pattern.
|
|
65
65
|
* @public
|
|
66
66
|
*/
|
|
67
67
|
export function classifyFill(side, realizedPnl) {
|
package/dist/esm/math/order.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Display-tier order formulas. Every function takes and gives decimal
|
|
3
3
|
* strings; arithmetic is exact Big.js, with division to 40 decimal places.
|
|
4
|
-
* Each formula throws `ValidationError` on an input that
|
|
5
|
-
*
|
|
4
|
+
* Each formula throws `ValidationError` on an input that does not match the
|
|
5
|
+
* decimal pattern and has a `safe*` pair that gives `undefined` in place of the throw.
|
|
6
6
|
*/
|
|
7
7
|
import { type FeeTier, type Market, type MarketContext, type Order, type OrderbookLevel, type Position, type Quote, type QuoteSide, type TradeType } from '@lifi/perps-types';
|
|
8
8
|
/**
|
|
@@ -12,7 +12,7 @@ import { type FeeTier, type Market, type MarketContext, type Order, type Orderbo
|
|
|
12
12
|
* ```ts
|
|
13
13
|
* calculateSize('100', '10', '2000') // '0.5' (ETH at $2000)
|
|
14
14
|
* ```
|
|
15
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
15
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern
|
|
16
16
|
* or `price` is zero.
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
@@ -23,7 +23,7 @@ export declare const safeCalculateSize: (marginUsd: string, leverage: string, pr
|
|
|
23
23
|
* Estimated trading fee in USD: `sizeUsd × feeRate`.
|
|
24
24
|
*
|
|
25
25
|
* @param feeRate - Fee rate as a fraction (`'0.00035'` for 0.035%).
|
|
26
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
26
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
27
27
|
* @public
|
|
28
28
|
*/
|
|
29
29
|
export declare function estimateFees(sizeUsd: string, feeRate: string): string;
|
|
@@ -35,8 +35,8 @@ export declare const safeEstimateFees: (sizeUsd: string, feeRate: string) => str
|
|
|
35
35
|
* is not rounded; snap it to the market tick before it goes to a venue.
|
|
36
36
|
*
|
|
37
37
|
* @param slippagePercent - Slippage tolerance as a percentage (`'0.5'` is 0.5%).
|
|
38
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
39
|
-
*
|
|
38
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
39
|
+
* decimal pattern, or `slippagePercent` is -100 or less.
|
|
40
40
|
* @public
|
|
41
41
|
*/
|
|
42
42
|
export declare function applySlippageToPrice(price: string, slippagePercent: string, isBuy: boolean): string;
|
|
@@ -59,31 +59,28 @@ export interface ExpectedPnl {
|
|
|
59
59
|
*
|
|
60
60
|
* @param entryPrice - Position entry or current market price.
|
|
61
61
|
* @param margin - Margin amount in USD.
|
|
62
|
-
* @
|
|
63
|
-
* `margin` is zero.
|
|
64
|
-
* @throws {PerpsError} `ValidationError` when an input is not a decimal string.
|
|
62
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
63
|
+
* decimal pattern, or `triggerPrice`, `entryPrice` or `margin` is zero.
|
|
65
64
|
* @public
|
|
66
65
|
*/
|
|
67
|
-
export declare function calculateExpectedPnl(triggerPrice: string, entryPrice: string, leverage: string, isLong: boolean, margin: string): ExpectedPnl
|
|
66
|
+
export declare function calculateExpectedPnl(triggerPrice: string, entryPrice: string, leverage: string, isLong: boolean, margin: string): ExpectedPnl;
|
|
68
67
|
/** @public */
|
|
69
|
-
export declare const safeCalculateExpectedPnl: (triggerPrice: string, entryPrice: string, leverage: string, isLong: boolean, margin: string) => ExpectedPnl |
|
|
68
|
+
export declare const safeCalculateExpectedPnl: (triggerPrice: string, entryPrice: string, leverage: string, isLong: boolean, margin: string) => ExpectedPnl | undefined;
|
|
70
69
|
/**
|
|
71
|
-
* Trigger price that realises a percentage gain or loss.
|
|
72
|
-
* or `leverage` gives `'0'`.
|
|
70
|
+
* Trigger price that realises a percentage gain or loss.
|
|
73
71
|
*
|
|
74
72
|
* @param percent - Target gain or loss percentage (positive = profitable
|
|
75
73
|
* direction).
|
|
76
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
74
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
77
75
|
* @public
|
|
78
76
|
*/
|
|
79
77
|
export declare function calculateTriggerPrice(percent: string, entryPrice: string, leverage: string, isLong: boolean): string;
|
|
80
78
|
/** @public */
|
|
81
79
|
export declare const safeCalculateTriggerPrice: (percent: string, entryPrice: string, leverage: string, isLong: boolean) => string | undefined;
|
|
82
80
|
/**
|
|
83
|
-
* Percentage gain or loss that a trigger price realises.
|
|
84
|
-
* or `leverage` gives `'0'`.
|
|
81
|
+
* Percentage gain or loss that a trigger price realises.
|
|
85
82
|
*
|
|
86
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
83
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
87
84
|
* @public
|
|
88
85
|
*/
|
|
89
86
|
export declare function calculateTriggerPercent(price: string, entryPrice: string, leverage: string, isLong: boolean): string;
|
|
@@ -91,9 +88,10 @@ export declare function calculateTriggerPercent(price: string, entryPrice: strin
|
|
|
91
88
|
export declare const safeCalculateTriggerPercent: (price: string, entryPrice: string, leverage: string, isLong: boolean) => string | undefined;
|
|
92
89
|
/**
|
|
93
90
|
* Realized PnL as a percentage of the position value at close:
|
|
94
|
-
* `realizedPnl ÷ (|size| × price) × 100`.
|
|
91
|
+
* `realizedPnl ÷ (|size| × price) × 100`.
|
|
95
92
|
*
|
|
96
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
93
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
94
|
+
* decimal pattern or `size × price` is zero.
|
|
97
95
|
* @public
|
|
98
96
|
*/
|
|
99
97
|
export declare function calculateRealizedPnlPercent(realizedPnl: string, size: string, price: string): string;
|
|
@@ -119,7 +117,7 @@ interface BookWalk {
|
|
|
119
117
|
* returning the best obtainable fill.
|
|
120
118
|
*
|
|
121
119
|
* @throws {PerpsError} `ValidationError` when `sizeUsd` or a level's `price`
|
|
122
|
-
* or `size`
|
|
120
|
+
* or `size` does not match the decimal pattern.
|
|
123
121
|
* @public
|
|
124
122
|
*/
|
|
125
123
|
export declare function walkOrderbook(levels: OrderbookLevel[], sizeUsd: string): BookWalk;
|
|
@@ -148,7 +146,7 @@ interface BuildQuoteInput {
|
|
|
148
146
|
* the market's `funding` (`null` for spot, which has none).
|
|
149
147
|
*
|
|
150
148
|
* @throws {PerpsError} `ValidationError` when `sizeUsd`, the mark price, the
|
|
151
|
-
* taker fee or a book level
|
|
149
|
+
* taker fee or a book level does not match the decimal pattern.
|
|
152
150
|
* @public
|
|
153
151
|
*/
|
|
154
152
|
export declare function buildQuote(input: BuildQuoteInput): Quote;
|
|
@@ -171,7 +169,7 @@ export declare function findMatchingPosition(marketId: string, positions: readon
|
|
|
171
169
|
*
|
|
172
170
|
* Inputs are non-negative magnitudes.
|
|
173
171
|
*
|
|
174
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
172
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
175
173
|
* @public
|
|
176
174
|
*/
|
|
177
175
|
export declare function resolveCloseSize(orderSize: string, positionSize: string): string;
|
|
@@ -184,13 +182,13 @@ export declare const safeResolveCloseSize: (orderSize: string, positionSize: str
|
|
|
184
182
|
* nothing.
|
|
185
183
|
*
|
|
186
184
|
* @returns Realised PnL if the order would reduce the position, otherwise
|
|
187
|
-
* `
|
|
185
|
+
* `undefined`.
|
|
188
186
|
* @throws {PerpsError} `ValidationError` when a price or size on the order or
|
|
189
|
-
* the position
|
|
187
|
+
* the position does not match the decimal pattern.
|
|
190
188
|
* @public
|
|
191
189
|
*/
|
|
192
|
-
export declare function estimateRealizedPnl(order: Order, position: Position | undefined): string |
|
|
190
|
+
export declare function estimateRealizedPnl(order: Order, position: Position | undefined): string | undefined;
|
|
193
191
|
/** @public */
|
|
194
|
-
export declare const safeEstimateRealizedPnl: (order: Order, position: Position | undefined) => string |
|
|
192
|
+
export declare const safeEstimateRealizedPnl: (order: Order, position: Position | undefined) => string | undefined;
|
|
195
193
|
export {};
|
|
196
194
|
//# sourceMappingURL=order.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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;
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/math/order.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Display-tier order formulas. Every function takes and gives decimal
|
|
3
3
|
* strings; arithmetic is exact Big.js, with division to 40 decimal places.
|
|
4
|
-
* Each formula throws `ValidationError` on an input that
|
|
5
|
-
*
|
|
4
|
+
* Each formula throws `ValidationError` on an input that does not match the
|
|
5
|
+
* decimal pattern and has a `safe*` pair that gives `undefined` in place of the throw.
|
|
6
6
|
*/
|
|
7
7
|
import { OrderSide, OrderStatus, PerpsErrorCode, PositionSide, } from '@lifi/perps-types';
|
|
8
8
|
import { DivBig } from '../decimal/big.js';
|
|
9
9
|
import { bigToDecimalString, decimalStringToBig, decimalStringToDivBig, } from '../decimal/decimalStringToBig.js';
|
|
10
|
+
import { invalidInput } from '../errors/invalidInput.js';
|
|
10
11
|
import { PerpsError } from '../errors/PerpsError.js';
|
|
11
12
|
import { createSafeFunction } from '../utils/createSafeFunction.js';
|
|
12
13
|
import { isActiveOrderStatus, isRegularOrder, isTriggerOrder, } from '../utils/orderClassification.js';
|
|
@@ -18,7 +19,7 @@ import { calculateRealizedPnl } from './position.js';
|
|
|
18
19
|
* ```ts
|
|
19
20
|
* calculateSize('100', '10', '2000') // '0.5' (ETH at $2000)
|
|
20
21
|
* ```
|
|
21
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
22
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern
|
|
22
23
|
* or `price` is zero.
|
|
23
24
|
* @public
|
|
24
25
|
*/
|
|
@@ -26,7 +27,7 @@ export function calculateSize(marginUsd, leverage, price) {
|
|
|
26
27
|
const notional = decimalStringToDivBig(marginUsd).times(decimalStringToBig(leverage));
|
|
27
28
|
const priceBig = decimalStringToBig(price);
|
|
28
29
|
if (priceBig.eq(0)) {
|
|
29
|
-
throw
|
|
30
|
+
throw invalidInput('price', 'must not be zero');
|
|
30
31
|
}
|
|
31
32
|
return bigToDecimalString(notional.div(priceBig));
|
|
32
33
|
}
|
|
@@ -36,7 +37,7 @@ export const safeCalculateSize = createSafeFunction('calculateSize', calculateSi
|
|
|
36
37
|
* Estimated trading fee in USD: `sizeUsd × feeRate`.
|
|
37
38
|
*
|
|
38
39
|
* @param feeRate - Fee rate as a fraction (`'0.00035'` for 0.035%).
|
|
39
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
40
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
40
41
|
* @public
|
|
41
42
|
*/
|
|
42
43
|
export function estimateFees(sizeUsd, feeRate) {
|
|
@@ -50,8 +51,8 @@ export const safeEstimateFees = createSafeFunction('estimateFees', estimateFees)
|
|
|
50
51
|
* is not rounded; snap it to the market tick before it goes to a venue.
|
|
51
52
|
*
|
|
52
53
|
* @param slippagePercent - Slippage tolerance as a percentage (`'0.5'` is 0.5%).
|
|
53
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
54
|
-
*
|
|
54
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
55
|
+
* decimal pattern, or `slippagePercent` is -100 or less.
|
|
55
56
|
* @public
|
|
56
57
|
*/
|
|
57
58
|
export function applySlippageToPrice(price, slippagePercent, isBuy) {
|
|
@@ -71,9 +72,8 @@ export const safeApplySlippageToPrice = createSafeFunction('applySlippageToPrice
|
|
|
71
72
|
*
|
|
72
73
|
* @param entryPrice - Position entry or current market price.
|
|
73
74
|
* @param margin - Margin amount in USD.
|
|
74
|
-
* @
|
|
75
|
-
* `margin` is zero.
|
|
76
|
-
* @throws {PerpsError} `ValidationError` when an input is not a decimal string.
|
|
75
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
76
|
+
* decimal pattern, or `triggerPrice`, `entryPrice` or `margin` is zero.
|
|
77
77
|
* @public
|
|
78
78
|
*/
|
|
79
79
|
export function calculateExpectedPnl(triggerPrice, entryPrice, leverage, isLong, margin) {
|
|
@@ -81,8 +81,14 @@ export function calculateExpectedPnl(triggerPrice, entryPrice, leverage, isLong,
|
|
|
81
81
|
const entry = decimalStringToBig(entryPrice);
|
|
82
82
|
const leverageBig = decimalStringToBig(leverage);
|
|
83
83
|
const marginBig = decimalStringToBig(margin);
|
|
84
|
-
if (trigger.eq(0)
|
|
85
|
-
|
|
84
|
+
if (trigger.eq(0)) {
|
|
85
|
+
throw invalidInput('triggerPrice', 'must not be zero');
|
|
86
|
+
}
|
|
87
|
+
if (entry.eq(0)) {
|
|
88
|
+
throw invalidInput('entryPrice', 'must not be zero');
|
|
89
|
+
}
|
|
90
|
+
if (marginBig.eq(0)) {
|
|
91
|
+
throw invalidInput('margin', 'must not be zero');
|
|
86
92
|
}
|
|
87
93
|
const priceDiff = isLong
|
|
88
94
|
? trigger.minus(entry)
|
|
@@ -97,20 +103,22 @@ export function calculateExpectedPnl(triggerPrice, entryPrice, leverage, isLong,
|
|
|
97
103
|
/** @public */
|
|
98
104
|
export const safeCalculateExpectedPnl = createSafeFunction('calculateExpectedPnl', calculateExpectedPnl);
|
|
99
105
|
/**
|
|
100
|
-
* Trigger price that realises a percentage gain or loss.
|
|
101
|
-
* or `leverage` gives `'0'`.
|
|
106
|
+
* Trigger price that realises a percentage gain or loss.
|
|
102
107
|
*
|
|
103
108
|
* @param percent - Target gain or loss percentage (positive = profitable
|
|
104
109
|
* direction).
|
|
105
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
110
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
106
111
|
* @public
|
|
107
112
|
*/
|
|
108
113
|
export function calculateTriggerPrice(percent, entryPrice, leverage, isLong) {
|
|
109
114
|
const percentBig = decimalStringToDivBig(percent);
|
|
110
115
|
const entry = decimalStringToBig(entryPrice);
|
|
111
116
|
const leverageBig = decimalStringToBig(leverage);
|
|
112
|
-
if (entry.eq(0)
|
|
113
|
-
|
|
117
|
+
if (entry.eq(0)) {
|
|
118
|
+
throw invalidInput('entryPrice', 'must not be zero');
|
|
119
|
+
}
|
|
120
|
+
if (leverageBig.eq(0)) {
|
|
121
|
+
throw invalidInput('leverage', 'must not be zero');
|
|
114
122
|
}
|
|
115
123
|
const priceDelta = percentBig.times(entry).div(leverageBig.times(100));
|
|
116
124
|
return bigToDecimalString(isLong ? entry.plus(priceDelta) : entry.minus(priceDelta));
|
|
@@ -118,18 +126,20 @@ export function calculateTriggerPrice(percent, entryPrice, leverage, isLong) {
|
|
|
118
126
|
/** @public */
|
|
119
127
|
export const safeCalculateTriggerPrice = createSafeFunction('calculateTriggerPrice', calculateTriggerPrice);
|
|
120
128
|
/**
|
|
121
|
-
* Percentage gain or loss that a trigger price realises.
|
|
122
|
-
* or `leverage` gives `'0'`.
|
|
129
|
+
* Percentage gain or loss that a trigger price realises.
|
|
123
130
|
*
|
|
124
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
131
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
125
132
|
* @public
|
|
126
133
|
*/
|
|
127
134
|
export function calculateTriggerPercent(price, entryPrice, leverage, isLong) {
|
|
128
135
|
const priceBig = decimalStringToDivBig(price);
|
|
129
136
|
const entry = decimalStringToBig(entryPrice);
|
|
130
137
|
const leverageBig = decimalStringToBig(leverage);
|
|
131
|
-
if (entry.eq(0)
|
|
132
|
-
|
|
138
|
+
if (entry.eq(0)) {
|
|
139
|
+
throw invalidInput('entryPrice', 'must not be zero');
|
|
140
|
+
}
|
|
141
|
+
if (leverageBig.eq(0)) {
|
|
142
|
+
throw invalidInput('leverage', 'must not be zero');
|
|
133
143
|
}
|
|
134
144
|
const priceDiff = isLong
|
|
135
145
|
? priceBig.minus(entry)
|
|
@@ -140,9 +150,10 @@ export function calculateTriggerPercent(price, entryPrice, leverage, isLong) {
|
|
|
140
150
|
export const safeCalculateTriggerPercent = createSafeFunction('calculateTriggerPercent', calculateTriggerPercent);
|
|
141
151
|
/**
|
|
142
152
|
* Realized PnL as a percentage of the position value at close:
|
|
143
|
-
* `realizedPnl ÷ (|size| × price) × 100`.
|
|
153
|
+
* `realizedPnl ÷ (|size| × price) × 100`.
|
|
144
154
|
*
|
|
145
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
155
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
156
|
+
* decimal pattern or `size × price` is zero.
|
|
146
157
|
* @public
|
|
147
158
|
*/
|
|
148
159
|
export function calculateRealizedPnlPercent(realizedPnl, size, price) {
|
|
@@ -151,7 +162,7 @@ export function calculateRealizedPnlPercent(realizedPnl, size, price) {
|
|
|
151
162
|
.abs()
|
|
152
163
|
.times(decimalStringToBig(price));
|
|
153
164
|
if (positionValue.eq(0)) {
|
|
154
|
-
|
|
165
|
+
throw invalidInput('size × price', 'must not be zero');
|
|
155
166
|
}
|
|
156
167
|
return bigToDecimalString(pnl.div(positionValue).times(100));
|
|
157
168
|
}
|
|
@@ -166,7 +177,7 @@ export const safeCalculateRealizedPnlPercent = createSafeFunction('calculateReal
|
|
|
166
177
|
* returning the best obtainable fill.
|
|
167
178
|
*
|
|
168
179
|
* @throws {PerpsError} `ValidationError` when `sizeUsd` or a level's `price`
|
|
169
|
-
* or `size`
|
|
180
|
+
* or `size` does not match the decimal pattern.
|
|
170
181
|
* @public
|
|
171
182
|
*/
|
|
172
183
|
export function walkOrderbook(levels, sizeUsd) {
|
|
@@ -206,7 +217,7 @@ export const safeWalkOrderbook = createSafeFunction('walkOrderbook', walkOrderbo
|
|
|
206
217
|
* the market's `funding` (`null` for spot, which has none).
|
|
207
218
|
*
|
|
208
219
|
* @throws {PerpsError} `ValidationError` when `sizeUsd`, the mark price, the
|
|
209
|
-
* taker fee or a book level
|
|
220
|
+
* taker fee or a book level does not match the decimal pattern.
|
|
210
221
|
* @public
|
|
211
222
|
*/
|
|
212
223
|
export function buildQuote(input) {
|
|
@@ -258,7 +269,7 @@ export function findMatchingPosition(marketId, positions) {
|
|
|
258
269
|
*
|
|
259
270
|
* Inputs are non-negative magnitudes.
|
|
260
271
|
*
|
|
261
|
-
* @throws {PerpsError} `ValidationError` when an input
|
|
272
|
+
* @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
|
|
262
273
|
* @public
|
|
263
274
|
*/
|
|
264
275
|
export function resolveCloseSize(orderSize, positionSize) {
|
|
@@ -275,34 +286,34 @@ export const safeResolveCloseSize = createSafeFunction('resolveCloseSize', resol
|
|
|
275
286
|
* Expected rPnL for a resting limit order against a matching position.
|
|
276
287
|
*
|
|
277
288
|
* Reducing requires opposite sides (long position + SELL, short position +
|
|
278
|
-
* BUY). Same-side orders add to the position and have no rPnL → `
|
|
289
|
+
* BUY). Same-side orders add to the position and have no rPnL → `undefined`.
|
|
279
290
|
* Projects `remainingSize`, because an already-filled quantity has realised
|
|
280
291
|
* its PnL at the fill price rather than at this order's limit price. A
|
|
281
292
|
* `remainingSize` of zero leaves nothing to project.
|
|
282
293
|
*/
|
|
283
294
|
function regularOrderRealizedPnl(order, position) {
|
|
284
295
|
if (!position || !isActiveOrderStatus(order.status)) {
|
|
285
|
-
return
|
|
296
|
+
return undefined;
|
|
286
297
|
}
|
|
287
298
|
const isLong = position.side === PositionSide.LONG;
|
|
288
299
|
const reducesPosition = (isLong && order.side === OrderSide.SELL) ||
|
|
289
300
|
(!isLong && order.side === OrderSide.BUY);
|
|
290
301
|
if (!reducesPosition) {
|
|
291
|
-
return
|
|
302
|
+
return undefined;
|
|
292
303
|
}
|
|
293
304
|
if (order.price === undefined) {
|
|
294
|
-
return
|
|
305
|
+
return undefined;
|
|
295
306
|
}
|
|
296
307
|
const orderSize = decimalStringToBig(order.remainingSize).abs();
|
|
297
308
|
const positionSize = decimalStringToBig(position.size).abs();
|
|
298
309
|
if (positionSize.lte(0)) {
|
|
299
|
-
return
|
|
310
|
+
return undefined;
|
|
300
311
|
}
|
|
301
312
|
// `resolveCloseSize` reads a zero size as "close the whole position", a
|
|
302
313
|
// convention that belongs to an order's submitted size. `remainingSize` is
|
|
303
314
|
// the unfilled quantity, so zero means nothing is left to fill.
|
|
304
315
|
if (orderSize.eq(0)) {
|
|
305
|
-
return
|
|
316
|
+
return undefined;
|
|
306
317
|
}
|
|
307
318
|
return calculateRealizedPnl({
|
|
308
319
|
entryPrice: position.entryPrice,
|
|
@@ -317,21 +328,21 @@ function triggerOrderRealizedPnl(order, position) {
|
|
|
317
328
|
order.triggerPrice === undefined ||
|
|
318
329
|
!isActiveOrderStatus(order.status) ||
|
|
319
330
|
order.status === OrderStatus.PENDING) {
|
|
320
|
-
return
|
|
331
|
+
return undefined;
|
|
321
332
|
}
|
|
322
333
|
const isLong = position.side === PositionSide.LONG;
|
|
323
334
|
if ((isLong && order.side !== OrderSide.SELL) ||
|
|
324
335
|
(!isLong && order.side !== OrderSide.BUY)) {
|
|
325
|
-
return
|
|
336
|
+
return undefined;
|
|
326
337
|
}
|
|
327
338
|
const orderSize = decimalStringToBig(order.remainingSize).abs();
|
|
328
339
|
const positionSize = decimalStringToBig(position.size).abs();
|
|
329
340
|
if (positionSize.lte(0)) {
|
|
330
|
-
return
|
|
341
|
+
return undefined;
|
|
331
342
|
}
|
|
332
343
|
if (orderSize.eq(0) &&
|
|
333
344
|
(!decimalStringToBig(order.originalSize).eq(0) || !order.reduceOnly)) {
|
|
334
|
-
return
|
|
345
|
+
return undefined;
|
|
335
346
|
}
|
|
336
347
|
return calculateRealizedPnl({
|
|
337
348
|
entryPrice: position.entryPrice,
|
|
@@ -347,9 +358,9 @@ function triggerOrderRealizedPnl(order, position) {
|
|
|
347
358
|
* nothing.
|
|
348
359
|
*
|
|
349
360
|
* @returns Realised PnL if the order would reduce the position, otherwise
|
|
350
|
-
* `
|
|
361
|
+
* `undefined`.
|
|
351
362
|
* @throws {PerpsError} `ValidationError` when a price or size on the order or
|
|
352
|
-
* the position
|
|
363
|
+
* the position does not match the decimal pattern.
|
|
353
364
|
* @public
|
|
354
365
|
*/
|
|
355
366
|
export function estimateRealizedPnl(order, position) {
|
|
@@ -359,7 +370,7 @@ export function estimateRealizedPnl(order, position) {
|
|
|
359
370
|
if (isRegularOrder(order)) {
|
|
360
371
|
return regularOrderRealizedPnl(order, position);
|
|
361
372
|
}
|
|
362
|
-
return
|
|
373
|
+
return undefined;
|
|
363
374
|
}
|
|
364
375
|
/** @public */
|
|
365
376
|
export const safeEstimateRealizedPnl = createSafeFunction('estimateRealizedPnl', estimateRealizedPnl);
|
|
@@ -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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"}
|