@lifi/perps-sdk 26.0.0 → 27.1.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 +19 -5
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +4 -7
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math/fills.d.ts +2 -1
- package/dist/cjs/math/fills.d.ts.map +1 -1
- package/dist/cjs/math/fills.js +12 -0
- package/dist/cjs/math/fills.js.map +1 -1
- package/dist/cjs/utils/actionResult.d.ts +3 -0
- package/dist/cjs/utils/actionResult.d.ts.map +1 -0
- package/dist/cjs/utils/actionResult.js +9 -0
- package/dist/cjs/utils/actionResult.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wire/snap.d.ts +1 -0
- package/dist/cjs/wire/snap.d.ts.map +1 -1
- package/dist/cjs/wire/snap.js +12 -0
- package/dist/cjs/wire/snap.js.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +5 -4
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +10 -12
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/fills.d.ts +10 -1
- package/dist/esm/math/fills.d.ts.map +1 -1
- package/dist/esm/math/fills.js +19 -0
- package/dist/esm/math/fills.js.map +1 -1
- package/dist/esm/utils/actionResult.d.ts +4 -0
- package/dist/esm/utils/actionResult.d.ts.map +1 -0
- package/dist/esm/utils/actionResult.js +7 -0
- package/dist/esm/utils/actionResult.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wire/snap.d.ts +7 -0
- package/dist/esm/wire/snap.d.ts.map +1 -1
- package/dist/esm/wire/snap.js +17 -0
- package/dist/esm/wire/snap.js.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +5 -4
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math/fills.d.ts +10 -1
- package/dist/types/math/fills.d.ts.map +1 -1
- package/dist/types/utils/actionResult.d.ts +4 -0
- package/dist/types/utils/actionResult.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wire/snap.d.ts +7 -0
- package/dist/types/wire/snap.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +11 -15
- package/src/index.ts +7 -1
- package/src/math/fills.ts +31 -0
- package/src/utils/actionResult.ts +10 -0
- package/src/version.ts +1 -1
- package/src/wire/snap.ts +25 -0
package/dist/types/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, safe
|
|
|
20
20
|
export { PerpsErrorMessage } from './errors/constants.js';
|
|
21
21
|
export { PerpsError } from './errors/PerpsError.js';
|
|
22
22
|
export { PerpsExecutionError, rethrowWithKnownResults, } from './errors/PerpsExecutionError.js';
|
|
23
|
-
export { classifyFillFromPosition, FillClassification, } from './math/fills.js';
|
|
23
|
+
export { calculateAverageFillPrice, classifyFillFromPosition, FillClassification, } from './math/fills.js';
|
|
24
24
|
export type { ExpectedPnl } from './math/order.js';
|
|
25
25
|
export { buildQuote, calculateExpectedPnl, calculateOrderbookWalk, calculateRealizedPnlPercent, calculateSize, calculateSlippagePrice, calculateTriggerPercent, calculateTriggerPrice, estimateFees, estimateRealizedPnl, resolveCloseSize, resolveMatchingPosition, safeBuildQuote, safeCalculateExpectedPnl, safeCalculateOrderbookWalk, safeCalculateRealizedPnlPercent, safeCalculateSize, safeCalculateSlippagePrice, safeCalculateTriggerPercent, safeCalculateTriggerPrice, safeEstimateFees, safeEstimateRealizedPnl, safeResolveCloseSize, } from './math/order.js';
|
|
26
26
|
export { calculateEffectiveLeverage, calculateLiquidationDistance, calculateNotionalValue, calculateRealizedPnl, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateAverageEntryPrice, estimateLiquidationPrice, estimateLiquidationPriceAtMarketRate, estimateNewLeverage, estimateUnrealizedPnl, isPositionMarginAdjustable, isPositionMarginRemovable, safeCalculateEffectiveLeverage, safeCalculateLiquidationDistance, safeCalculateNotionalValue, safeCalculateRealizedPnl, safeCalculateRequiredMargin, safeCalculateRoe, safeCalculateUnrealizedPnl, safeEstimateAverageEntryPrice, safeEstimateLiquidationPrice, safeEstimateLiquidationPriceAtMarketRate, safeEstimateNewLeverage, safeEstimateUnrealizedPnl, safeWouldImmediatelyLiquidate, wouldImmediatelyLiquidate, } from './math/position.js';
|
|
@@ -82,6 +82,7 @@ export type { PerpsBaseConfig, PerpsClientSigner, RequestInterceptor, SDKRequest
|
|
|
82
82
|
export type { DeclaredDepositAsset, DepositFlow, DepositFlowFirstDepositPipeline, DepositFlowLifiSwap, DepositFlowSetupRequired, } from './types/deposit.js';
|
|
83
83
|
export type { ActionSignerContribution, LiquidationEstimateParams, PerpsProvider, PerpsProviderPlugin, PerpsSDKClient, ProviderAccountExistsParams, ProviderGetAccountParams, ProviderGetActivityParams, ProviderGetAvailableToTradeParams, ProviderGetDepositFlowParams, ProviderGetFillsParams, ProviderGetMarketSettingsParams, ProviderGetOrderParams, ProviderGetOrdersParams, ProviderGetPortfolioHistoryParams, ProviderGetPositionsParams, ProviderGetQuoteParams, ProviderGetWithdrawableBalancesParams, ProviderGetWithdrawalTypesParams, ProviderGetWithdrawFlowParams, QuoteListener, SignActionProgress, SignActionsContext, SignActionsResult, } from './types/provider.js';
|
|
84
84
|
export type { ProviderWithdrawableBalance, WithdrawableBalance, WithdrawalSourceTypes, WithdrawalTypeOption, WithdrawFlow, WithdrawFlowReady, WithdrawFlowSetupRequired, } from './types/withdrawal.js';
|
|
85
|
+
export { isSubmittedOrAccepted } from './utils/actionResult.js';
|
|
85
86
|
export { paginateActivity } from './utils/activityPaging.js';
|
|
86
87
|
export { createSafeFunction } from './utils/createSafeFunction.js';
|
|
87
88
|
export { ETHEREUM_NATIVE_GAS, ETHEREUM_USDC, HYPERLIQUID_USDC, LIGHTER_USDC, ROBINHOOD_NATIVE_GAS, ROBINHOOD_USDG, } from './utils/depositAssets.js';
|
|
@@ -106,7 +107,7 @@ export type { OrderAmounts, OrderAmountsInput, } from './wire/orderAmounts.js';
|
|
|
106
107
|
export { calculateOrderAmounts, safeCalculateOrderAmounts, } from './wire/orderAmounts.js';
|
|
107
108
|
export type { RefuelAmountInput } from './wire/refuel.js';
|
|
108
109
|
export { calculateRefuelAmount, REFUEL_FEE_MARGIN_PERCENT, } from './wire/refuel.js';
|
|
109
|
-
export { snapOrderPrice, snapOrderSize } from './wire/snap.js';
|
|
110
|
+
export { safeSnapOrderPrice, snapOrderPrice, snapOrderSize, } from './wire/snap.js';
|
|
110
111
|
export { calculateTransferable } from './wire/transferable.js';
|
|
111
112
|
export { calculateWithdrawMax } from './wire/withdraw.js';
|
|
112
113
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type DecimalString, FillClassification, OrderSide } from '@lifi/perps-types';
|
|
1
|
+
import { type DecimalString, type Fill, FillClassification, OrderSide } from '@lifi/perps-types';
|
|
2
2
|
/**
|
|
3
3
|
* Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
|
|
4
4
|
*
|
|
@@ -17,4 +17,13 @@ export { FillClassification };
|
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
19
|
export declare function classifyFillFromPosition(startPosition: DecimalString, side: OrderSide, sz: DecimalString): FillClassification;
|
|
20
|
+
/**
|
|
21
|
+
* Size-weighted average price of `fills`, Σ(size × price) / Σ size, to the
|
|
22
|
+
* 40 decimal places of division with no display rounding. A fill whose `size`
|
|
23
|
+
* or `price` does not match the decimal pattern is skipped.
|
|
24
|
+
*
|
|
25
|
+
* @returns `undefined` when the summed size is not above zero.
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
export declare function calculateAverageFillPrice(fills: readonly Fill[]): DecimalString | undefined;
|
|
20
29
|
//# sourceMappingURL=fills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,IAAI,EACT,kBAAkB,EAClB,SAAS,EACV,MAAM,mBAAmB,CAAA;AAU1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,aAAa,GAChB,kBAAkB,CAuCpB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,IAAI,EAAE,GACrB,aAAa,GAAG,SAAS,CAY3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionResult.d.ts","sourceRoot":"","sources":["../../../src/utils/actionResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAKnE"}
|
package/dist/types/version.d.ts
CHANGED
|
@@ -21,4 +21,11 @@ export declare function snapOrderSize(sdk: PerpsSDKClient, market: Market, size:
|
|
|
21
21
|
* @public
|
|
22
22
|
*/
|
|
23
23
|
export declare function snapOrderPrice(sdk: PerpsSDKClient, market: Market, price: DecimalString): DecimalString;
|
|
24
|
+
/**
|
|
25
|
+
* {@link snapOrderPrice}, or `undefined` where it throws. A display calls it
|
|
26
|
+
* on each render, so it writes one warning per market, not one per call.
|
|
27
|
+
*
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export declare function safeSnapOrderPrice(sdk: PerpsSDKClient, market: Market, price: DecimalString): DecimalString | undefined;
|
|
24
31
|
//# sourceMappingURL=snap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../../src/wire/snap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../../src/wire/snap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAK1D;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,GAClB,aAAa,CAEf;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GACnB,aAAa,CAEf;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GACnB,aAAa,GAAG,SAAS,CAU3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "27.1.0",
|
|
4
4
|
"description": "LI.FI Perps SDK for perpetuals trading",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"big.js": "^7.0.1",
|
|
47
47
|
"partysocket": "^1.1.19",
|
|
48
48
|
"viem": "^2.55.18",
|
|
49
|
-
"@lifi/perps-types": "^
|
|
49
|
+
"@lifi/perps-types": "^24.0.0"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
@@ -30,7 +30,6 @@ import {
|
|
|
30
30
|
PerpsErrorCode,
|
|
31
31
|
PerpsSigner,
|
|
32
32
|
SigningMethod,
|
|
33
|
-
UserActionStatus,
|
|
34
33
|
} from '@lifi/perps-types'
|
|
35
34
|
import type { Address } from 'viem'
|
|
36
35
|
import { isDecimalStringGreaterThan } from '../decimal/compare.js'
|
|
@@ -94,6 +93,7 @@ import type {
|
|
|
94
93
|
WithdrawalSourceTypes,
|
|
95
94
|
WithdrawFlow,
|
|
96
95
|
} from '../types/withdrawal.js'
|
|
96
|
+
import { isSubmittedOrAccepted } from '../utils/actionResult.js'
|
|
97
97
|
import { isUserFacingSetupStep } from '../utils/setupActions.js'
|
|
98
98
|
import { signTypedDataWithSigner } from '../utils/signTypedData.js'
|
|
99
99
|
import {
|
|
@@ -214,13 +214,6 @@ function currentChoiceValue(
|
|
|
214
214
|
return value === null ? null : String(value)
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
-
function isAcknowledged(result: ActionResult): boolean {
|
|
218
|
-
return (
|
|
219
|
-
result.status === UserActionStatus.Submitted ||
|
|
220
|
-
result.status === UserActionStatus.Accepted
|
|
221
|
-
)
|
|
222
|
-
}
|
|
223
|
-
|
|
224
217
|
function isNonNegativeDecimal(value: string): boolean {
|
|
225
218
|
try {
|
|
226
219
|
return !isDecimalStringGreaterThan(
|
|
@@ -490,7 +483,7 @@ export class PerpsClient {
|
|
|
490
483
|
} catch (error) {
|
|
491
484
|
rethrowWithKnownResults(executed, error)
|
|
492
485
|
}
|
|
493
|
-
if (!executed.every(
|
|
486
|
+
if (!executed.every(isSubmittedOrAccepted)) {
|
|
494
487
|
break
|
|
495
488
|
}
|
|
496
489
|
}
|
|
@@ -514,7 +507,7 @@ export class PerpsClient {
|
|
|
514
507
|
{ signed, executed }: SignActionsResult
|
|
515
508
|
): Promise<ActionResult[]> {
|
|
516
509
|
let results = executed
|
|
517
|
-
if (signed.length > 0 && executed.every(
|
|
510
|
+
if (signed.length > 0 && executed.every(isSubmittedOrAccepted)) {
|
|
518
511
|
try {
|
|
519
512
|
const response = await executeAction(this.sdkClient, {
|
|
520
513
|
provider,
|
|
@@ -1243,7 +1236,9 @@ export class PerpsClient {
|
|
|
1243
1236
|
address,
|
|
1244
1237
|
step
|
|
1245
1238
|
)
|
|
1246
|
-
const failure = results.find(
|
|
1239
|
+
const failure = results.find(
|
|
1240
|
+
(result) => !isSubmittedOrAccepted(result)
|
|
1241
|
+
)
|
|
1247
1242
|
if (failure !== undefined) {
|
|
1248
1243
|
console.debug(
|
|
1249
1244
|
`[perps-sdk] setup step '${descriptor.type}' for '${provider}' reported '${failure.status}'; will retry on the next checkSetup.`,
|
|
@@ -1336,8 +1331,8 @@ export class PerpsClient {
|
|
|
1336
1331
|
* prerequisites against that same snapshot, without another `createAction`
|
|
1337
1332
|
* round-trip.
|
|
1338
1333
|
*
|
|
1339
|
-
* Resolves to the
|
|
1340
|
-
*
|
|
1334
|
+
* Resolves to the execution report. A `Failed` or `Indeterminate` action is
|
|
1335
|
+
* a result in the report, not an exception.
|
|
1341
1336
|
*
|
|
1342
1337
|
* @throws {PerpsError} When the step's action is not in the provider's
|
|
1343
1338
|
* `setup` descriptors, when a lower-`sequence` step on the same
|
|
@@ -1385,8 +1380,9 @@ export class PerpsClient {
|
|
|
1385
1380
|
* Hyperliquid `ACCOUNT_MODE`) end-to-end with its bound `{ type, params }`,
|
|
1386
1381
|
* through the same {@link execute} pipeline as a trade.
|
|
1387
1382
|
*
|
|
1388
|
-
* Resolves to the execution report. Read each result's `status`: a
|
|
1389
|
-
* selection is a
|
|
1383
|
+
* Resolves to the execution report. Read each result's `status`: a `Failed`
|
|
1384
|
+
* or `Indeterminate` selection is a result, not an exception. `Submitted` and
|
|
1385
|
+
* `Accepted` mean the selection took effect.
|
|
1390
1386
|
*
|
|
1391
1387
|
* @throws {PerpsError} The errors {@link execute} throws.
|
|
1392
1388
|
* @public
|
package/src/index.ts
CHANGED
|
@@ -75,6 +75,7 @@ export {
|
|
|
75
75
|
rethrowWithKnownResults,
|
|
76
76
|
} from './errors/PerpsExecutionError.js'
|
|
77
77
|
export {
|
|
78
|
+
calculateAverageFillPrice,
|
|
78
79
|
classifyFillFromPosition,
|
|
79
80
|
FillClassification,
|
|
80
81
|
} from './math/fills.js'
|
|
@@ -297,6 +298,7 @@ export type {
|
|
|
297
298
|
WithdrawFlowReady,
|
|
298
299
|
WithdrawFlowSetupRequired,
|
|
299
300
|
} from './types/withdrawal.js'
|
|
301
|
+
export { isSubmittedOrAccepted } from './utils/actionResult.js'
|
|
300
302
|
export { paginateActivity } from './utils/activityPaging.js'
|
|
301
303
|
export { createSafeFunction } from './utils/createSafeFunction.js'
|
|
302
304
|
export {
|
|
@@ -374,6 +376,10 @@ export {
|
|
|
374
376
|
calculateRefuelAmount,
|
|
375
377
|
REFUEL_FEE_MARGIN_PERCENT,
|
|
376
378
|
} from './wire/refuel.js'
|
|
377
|
-
export {
|
|
379
|
+
export {
|
|
380
|
+
safeSnapOrderPrice,
|
|
381
|
+
snapOrderPrice,
|
|
382
|
+
snapOrderSize,
|
|
383
|
+
} from './wire/snap.js'
|
|
378
384
|
export { calculateTransferable } from './wire/transferable.js'
|
|
379
385
|
export { calculateWithdrawMax } from './wire/withdraw.js'
|
package/src/math/fills.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type DecimalString,
|
|
3
|
+
type Fill,
|
|
3
4
|
FillClassification,
|
|
4
5
|
OrderSide,
|
|
5
6
|
} from '@lifi/perps-types'
|
|
6
7
|
import Big from 'big.js'
|
|
8
|
+
import {
|
|
9
|
+
addDecimalStrings,
|
|
10
|
+
divideDecimalString,
|
|
11
|
+
multiplyDecimalString,
|
|
12
|
+
} from '../decimal/arithmetic.js'
|
|
13
|
+
import { isDecimalStringGreaterThan } from '../decimal/compare.js'
|
|
7
14
|
import { isDecimalString } from '../decimal/parse.js'
|
|
8
15
|
|
|
9
16
|
/**
|
|
@@ -68,3 +75,27 @@ export function classifyFillFromPosition(
|
|
|
68
75
|
}
|
|
69
76
|
return FillClassification.REDUCED_SHORT
|
|
70
77
|
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Size-weighted average price of `fills`, Σ(size × price) / Σ size, to the
|
|
81
|
+
* 40 decimal places of division with no display rounding. A fill whose `size`
|
|
82
|
+
* or `price` does not match the decimal pattern is skipped.
|
|
83
|
+
*
|
|
84
|
+
* @returns `undefined` when the summed size is not above zero.
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
87
|
+
export function calculateAverageFillPrice(
|
|
88
|
+
fills: readonly Fill[]
|
|
89
|
+
): DecimalString | undefined {
|
|
90
|
+
const priced = fills.filter(
|
|
91
|
+
(fill) => isDecimalString(fill.size) && isDecimalString(fill.price)
|
|
92
|
+
)
|
|
93
|
+
const totalSize = addDecimalStrings(priced.map((fill) => fill.size))
|
|
94
|
+
if (!isDecimalStringGreaterThan(totalSize, '0')) {
|
|
95
|
+
return undefined
|
|
96
|
+
}
|
|
97
|
+
const notional = addDecimalStrings(
|
|
98
|
+
priced.map((fill) => multiplyDecimalString(fill.size, fill.price))
|
|
99
|
+
)
|
|
100
|
+
return divideDecimalString(notional, totalSize)
|
|
101
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ActionResult } from '@lifi/perps-types'
|
|
2
|
+
import { UserActionStatus } from '@lifi/perps-types'
|
|
3
|
+
|
|
4
|
+
/** Whether the action took effect: its status is `Submitted` or `Accepted`. */
|
|
5
|
+
export function isSubmittedOrAccepted(result: ActionResult): boolean {
|
|
6
|
+
return (
|
|
7
|
+
result.status === UserActionStatus.Submitted ||
|
|
8
|
+
result.status === UserActionStatus.Accepted
|
|
9
|
+
)
|
|
10
|
+
}
|
package/src/version.ts
CHANGED
package/src/wire/snap.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { DecimalString, Market } from '@lifi/perps-types'
|
|
2
2
|
import { requireProvider } from '../client/requireProvider.js'
|
|
3
3
|
import type { PerpsSDKClient } from '../types/provider.js'
|
|
4
|
+
import { createWarnOnce } from '../utils/warnOnce.js'
|
|
5
|
+
|
|
6
|
+
const warnSnapOrderPriceFailureOnce = createWarnOnce()
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* Snap `size` onto the lot grid of `market`'s venue, truncating toward zero,
|
|
@@ -36,3 +39,25 @@ export function snapOrderPrice(
|
|
|
36
39
|
): DecimalString {
|
|
37
40
|
return requireProvider(sdk, market.providerId).snapOrderPrice(market, price)
|
|
38
41
|
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* {@link snapOrderPrice}, or `undefined` where it throws. A display calls it
|
|
45
|
+
* on each render, so it writes one warning per market, not one per call.
|
|
46
|
+
*
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
export function safeSnapOrderPrice(
|
|
50
|
+
sdk: PerpsSDKClient,
|
|
51
|
+
market: Market,
|
|
52
|
+
price: DecimalString
|
|
53
|
+
): DecimalString | undefined {
|
|
54
|
+
try {
|
|
55
|
+
return snapOrderPrice(sdk, market, price)
|
|
56
|
+
} catch (error) {
|
|
57
|
+
warnSnapOrderPriceFailureOnce(
|
|
58
|
+
`${market.providerId}|${market.id}`,
|
|
59
|
+
`[perps-sdk] snapOrderPrice failed on market '${market.id}' (${market.providerId}): ${error instanceof Error ? error.message : String(error)}`
|
|
60
|
+
)
|
|
61
|
+
return undefined
|
|
62
|
+
}
|
|
63
|
+
}
|