@lifi/perps-sdk 28.0.0 → 29.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist/cjs/decimal/format.d.ts +5 -1
- package/dist/cjs/decimal/format.d.ts.map +1 -1
- package/dist/cjs/decimal/format.js +49 -13
- package/dist/cjs/decimal/format.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math/position.d.ts +12 -0
- package/dist/cjs/math/position.d.ts.map +1 -1
- package/dist/cjs/math/position.js +43 -5
- package/dist/cjs/math/position.js.map +1 -1
- package/dist/cjs/types/deposit.d.ts +3 -3
- package/dist/cjs/types/deposit.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +4 -1
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/decimal/format.d.ts +18 -2
- package/dist/esm/decimal/format.d.ts.map +1 -1
- package/dist/esm/decimal/format.js +55 -15
- package/dist/esm/decimal/format.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/position.d.ts +36 -9
- package/dist/esm/math/position.d.ts.map +1 -1
- package/dist/esm/math/position.js +68 -15
- package/dist/esm/math/position.js.map +1 -1
- package/dist/esm/services/getGasRecommendation.d.ts +2 -2
- package/dist/esm/services/getGasRecommendation.js +1 -1
- package/dist/esm/types/deposit.d.ts +9 -8
- package/dist/esm/types/deposit.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +20 -7
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/utils/depositAssets.d.ts +3 -3
- package/dist/esm/utils/depositAssets.js +3 -3
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/decimal/format.d.ts +18 -2
- package/dist/types/decimal/format.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math/position.d.ts +36 -9
- package/dist/types/math/position.d.ts.map +1 -1
- package/dist/types/services/getGasRecommendation.d.ts +2 -2
- package/dist/types/types/deposit.d.ts +9 -8
- package/dist/types/types/deposit.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +20 -7
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/utils/depositAssets.d.ts +3 -3
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -2
- package/src/decimal/format.ts +127 -13
- package/src/index.ts +6 -2
- package/src/math/position.ts +74 -14
- package/src/services/getGasRecommendation.ts +2 -2
- package/src/types/deposit.ts +9 -8
- package/src/types/provider.ts +20 -6
- package/src/utils/depositAssets.ts +3 -3
- package/src/version.ts +1 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import Big from 'big.js';
|
|
2
|
-
import {
|
|
2
|
+
import { absDecimalString, divideDecimalStringRoundDown, multiplyDecimalString, } from './arithmetic.js';
|
|
3
|
+
import { compareDecimalStrings } from './compare.js';
|
|
4
|
+
import { numberToDecimalString, roundDecimalString, } from './convert.js';
|
|
5
|
+
import { bigToDecimalString, decimalStringToBig } from './decimalStringToBig.js';
|
|
3
6
|
const DEFAULT_PLACEHOLDER = '—';
|
|
4
7
|
/**
|
|
5
8
|
* Read a display input as a `Big`. `null` means the formatter renders the
|
|
@@ -172,17 +175,45 @@ export function formatPrice(value, options = {}) {
|
|
|
172
175
|
const { sign, body } = signAndBody(n, decimals, locale, abs.gte(1000), rounding, false);
|
|
173
176
|
return `${sign}$${body}`;
|
|
174
177
|
}
|
|
178
|
+
const COMPACT_TIER_SIZE = 1_000;
|
|
179
|
+
const COMPACT_TIERS = [
|
|
180
|
+
[1_000, 'K'],
|
|
181
|
+
[1_000_000, 'M'],
|
|
182
|
+
];
|
|
183
|
+
const COMPACT_DECIMAL_ROUNDING = {
|
|
184
|
+
halfUp: 'round',
|
|
185
|
+
floor: 'truncate',
|
|
186
|
+
};
|
|
187
|
+
/** Significant digits span the whole number: one digit truncates `84.559` to `80`. */
|
|
188
|
+
function roundToSignificantDigits(value, significantDigits, rounding) {
|
|
189
|
+
const integerPart = roundDecimalString(absDecimalString(value), 0, 'truncate');
|
|
190
|
+
const integerDigits = integerPart === '0' ? 0 : integerPart.length;
|
|
191
|
+
const decimals = significantDigits - integerDigits;
|
|
192
|
+
if (decimals >= 0) {
|
|
193
|
+
return roundDecimalString(value, decimals, rounding);
|
|
194
|
+
}
|
|
195
|
+
const scale = `1${'0'.repeat(-decimals)}`;
|
|
196
|
+
return multiplyDecimalString(roundDecimalString(divideDecimalStringRoundDown(value, scale), 0, rounding), scale);
|
|
197
|
+
}
|
|
198
|
+
function compactMantissa(value, divisor, decimals, significantDigits, rounding) {
|
|
199
|
+
const scaled = divideDecimalStringRoundDown(value, numberToDecimalString(divisor));
|
|
200
|
+
return significantDigits === undefined
|
|
201
|
+
? roundDecimalString(scaled, decimals, rounding)
|
|
202
|
+
: roundToSignificantDigits(scaled, significantDigits, rounding);
|
|
203
|
+
}
|
|
175
204
|
/**
|
|
176
205
|
* Format a USD value compactly with a `B`/`M`/`K` suffix: `$1.23B`, `$45.6M`,
|
|
177
206
|
* `$789.0K`, `$12.34`.
|
|
178
207
|
*
|
|
179
|
-
*
|
|
208
|
+
* Values below 1000 (or `compactFrom`) render as {@link formatUsd}. Negatives
|
|
209
|
+
* place the `-` before the `$`. `rounding: 'floor'` truncates toward zero, so
|
|
210
|
+
* a compact balance is never overstated. Null/undefined/non-finite input
|
|
180
211
|
* renders the placeholder.
|
|
181
212
|
*
|
|
182
213
|
* @public
|
|
183
214
|
*/
|
|
184
215
|
export function formatCompactUsd(value, options = {}) {
|
|
185
|
-
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER } = options;
|
|
216
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', significantDigits, compactFrom, } = options;
|
|
186
217
|
const n = toBig(value);
|
|
187
218
|
if (n === null) {
|
|
188
219
|
return placeholder;
|
|
@@ -190,17 +221,26 @@ export function formatCompactUsd(value, options = {}) {
|
|
|
190
221
|
if (typeof n === 'string') {
|
|
191
222
|
return n;
|
|
192
223
|
}
|
|
193
|
-
const
|
|
194
|
-
const abs =
|
|
195
|
-
if (abs
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
224
|
+
const decimal = bigToDecimalString(n);
|
|
225
|
+
const abs = absDecimalString(decimal);
|
|
226
|
+
if (compareDecimalStrings(abs, numberToDecimalString(COMPACT_TIER_SIZE)) < 0 ||
|
|
227
|
+
(compactFrom !== undefined && compareDecimalStrings(abs, compactFrom) < 0)) {
|
|
228
|
+
return formatUsd(value, options);
|
|
229
|
+
}
|
|
230
|
+
const decimalRounding = COMPACT_DECIMAL_ROUNDING[rounding];
|
|
231
|
+
const render = (mantissa, suffix) => {
|
|
232
|
+
const mantissaDecimals = significantDigits === undefined
|
|
233
|
+
? decimals
|
|
234
|
+
: (mantissa.split('.')[1]?.length ?? 0);
|
|
235
|
+
return `${formatUsd(mantissa, { locale, decimals: mantissaDecimals })}${suffix}`;
|
|
236
|
+
};
|
|
237
|
+
// The tier is picked after rounding, so 999,999.99 promotes to M, not 1000K.
|
|
238
|
+
for (const [divisor, suffix] of COMPACT_TIERS) {
|
|
239
|
+
const mantissa = compactMantissa(decimal, divisor, decimals, significantDigits, decimalRounding);
|
|
240
|
+
if (compareDecimalStrings(absDecimalString(mantissa), numberToDecimalString(COMPACT_TIER_SIZE)) < 0) {
|
|
241
|
+
return render(mantissa, suffix);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return render(compactMantissa(decimal, 1_000_000_000, decimals, significantDigits, decimalRounding), 'B');
|
|
205
245
|
}
|
|
206
246
|
//# sourceMappingURL=format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/decimal/format.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/decimal/format.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export { absDecimalString, addDecimalString, addDecimalStrings, divideDecimalStr
|
|
|
14
14
|
export { compareDecimalStrings, isDecimalStringGreaterThan, isDecimalStringZero, safeCompareDecimalStrings, safeIsDecimalStringGreaterThan, safeIsDecimalStringZero, } from './decimal/compare.js';
|
|
15
15
|
export type { DecimalRounding } from './decimal/convert.js';
|
|
16
16
|
export { decimalStringToScaledInteger, numberToDecimalString, roundDecimalString, safeDecimalStringToScaledInteger, safeNumberToDecimalString, safeRoundDecimalString, safeScaledIntegerToDecimalString, scaledIntegerToDecimalString, } from './decimal/convert.js';
|
|
17
|
-
export type { FormatOptions, RoundingMode } from './decimal/format.js';
|
|
17
|
+
export type { CompactUsdOptions, FormatOptions, RoundingMode, } from './decimal/format.js';
|
|
18
18
|
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './decimal/format.js';
|
|
19
19
|
export { decimalStringToNumber, isDecimalString, safeDecimalStringToNumber, safeUnknownToDecimalString, unknownToDecimalString, } from './decimal/parse.js';
|
|
20
20
|
export { PerpsErrorMessage } from './errors/constants.js';
|
|
@@ -79,7 +79,7 @@ export type { ProviderRetryConfig, ResolvedRetryPolicy, RetryAttemptContext, Ret
|
|
|
79
79
|
export { DISABLED_RETRY, LIFI_REQUEST_KEY, LIFI_RETRY_DEFAULTS, resolveRetryPolicy, } from './transport/retryPolicy.js';
|
|
80
80
|
export type { BuildProviderSetupParams, CancelOrdersParams, CancelTwapOrderParams as ClientCancelTwapOrderParams, CreateReferralCodeActionParams, ExecuteMetaActionParams, GetAccountResult, GetDepositFlowParams, GetPortfolioHistoryParams, GetSetupParams, GetWithdrawableBalancesParams, GetWithdrawalTypesParams, GetWithdrawFlowParams, ModifyOrdersParams, PerpsClientOptions, PerpsConfig, PlaceOrderParams as ClientPlaceOrderParams, PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams, PlaceTwapOrderParams as ClientPlaceTwapOrderParams, ProviderSetup, SendAssetActionParams, SetupChecklistItem, SubmitOnboardingParams, WithdrawParams, } from './types/api.js';
|
|
81
81
|
export type { PerpsBaseConfig, PerpsClientSigner, RequestInterceptor, SDKRequestOptions, SwitchChainHook, } from './types/config.js';
|
|
82
|
-
export type { DeclaredDepositAsset, DepositFlow,
|
|
82
|
+
export type { DeclaredDepositAsset, DepositFlow, DepositFlowLifiSwap, DepositFlowSetupRequired, DepositFlowVenueDepositPipeline, } 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
85
|
export { isSubmittedOrAccepted } from './utils/actionResult.js';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;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,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,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;AAC7B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,EAClB,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
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,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,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,4BAA4B,GAC7B,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,16 +91,27 @@ export declare const safeCalculateEffectiveLeverage: (params: {
|
|
|
91
91
|
* margin_available = entryPrice × (1 / leverage - mmr)
|
|
92
92
|
* liq_price = entryPrice - side × margin_available / (1 - mmr × side)
|
|
93
93
|
*
|
|
94
|
+
* With `current`, the order of `size` adds to that position on the same side.
|
|
95
|
+
* The equity of the blended position at `entryPrice` is `current.margin`, the
|
|
96
|
+
* PnL of `current` at `entryPrice`, and the margin of the order. The margin
|
|
97
|
+
* available is that equity minus the maintenance margin of the blended size,
|
|
98
|
+
* and the formula above divides it by the blended size.
|
|
99
|
+
*
|
|
94
100
|
* For existing positions, prefer `Position.liquidationPrice` from the venue.
|
|
95
101
|
*
|
|
96
102
|
* @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
|
|
97
103
|
* (`'0.01'` = 1%).
|
|
98
|
-
* @
|
|
99
|
-
* `
|
|
100
|
-
*
|
|
104
|
+
* @param size - Order size as a non-negative magnitude. Read only with
|
|
105
|
+
* `current`.
|
|
106
|
+
* @param current - Open isolated position on the same side that the order
|
|
107
|
+
* adds to. `margin` is its collateral net of unrealized PnL.
|
|
108
|
+
* @returns The estimate, or `undefined` when the margin above the
|
|
109
|
+
* maintenance requirement is not positive: the position opens at or past
|
|
110
|
+
* liquidation, so the model has no price on the correct side of entry.
|
|
101
111
|
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
102
|
-
* decimal pattern, `leverage` is zero,
|
|
103
|
-
* zero denominator (`1` for a long, `-1` for a short)
|
|
112
|
+
* decimal pattern, `leverage` is zero, `maintenanceMarginRate` gives a
|
|
113
|
+
* zero denominator (`1` for a long, `-1` for a short), `current` comes
|
|
114
|
+
* without `size`, or `current.size + size` is not positive.
|
|
104
115
|
* @public
|
|
105
116
|
*/
|
|
106
117
|
export declare function estimateLiquidationPrice(params: {
|
|
@@ -108,6 +119,12 @@ export declare function estimateLiquidationPrice(params: {
|
|
|
108
119
|
leverage: string;
|
|
109
120
|
isLong: boolean;
|
|
110
121
|
maintenanceMarginRate: string;
|
|
122
|
+
size?: string;
|
|
123
|
+
current?: {
|
|
124
|
+
size: string;
|
|
125
|
+
entryPrice: string;
|
|
126
|
+
margin: string;
|
|
127
|
+
};
|
|
111
128
|
}): string | undefined;
|
|
112
129
|
/** @public */
|
|
113
130
|
export declare const safeEstimateLiquidationPrice: (params: {
|
|
@@ -115,14 +132,24 @@ export declare const safeEstimateLiquidationPrice: (params: {
|
|
|
115
132
|
leverage: string;
|
|
116
133
|
isLong: boolean;
|
|
117
134
|
maintenanceMarginRate: string;
|
|
135
|
+
size?: string;
|
|
136
|
+
current?: {
|
|
137
|
+
size: string;
|
|
138
|
+
entryPrice: string;
|
|
139
|
+
margin: string;
|
|
140
|
+
};
|
|
118
141
|
}) => string | undefined;
|
|
119
142
|
/**
|
|
120
|
-
* Estimate the liquidation price of
|
|
121
|
-
* `market.maintenanceMarginRate
|
|
143
|
+
* Estimate the liquidation price of the isolated position that an order
|
|
144
|
+
* leaves, from the flat `market.maintenanceMarginRate`: a new position, or
|
|
145
|
+
* the blend of the order into `params.position`. The collateral of the
|
|
146
|
+
* position is `position.marginUsed`, so the venue `marginUsed` must exclude
|
|
147
|
+
* the unrealized PnL, as Lighter `allocated_margin` does.
|
|
122
148
|
*
|
|
123
149
|
* @returns The estimate, or `undefined` when the market carries no
|
|
124
|
-
* `maintenanceMarginRate
|
|
125
|
-
*
|
|
150
|
+
* `maintenanceMarginRate`, when the order or the position is cross (the
|
|
151
|
+
* liquidation depends on the whole account), when the order reduces the
|
|
152
|
+
* position, or when {@link estimateLiquidationPrice} gives `undefined`.
|
|
126
153
|
* @throws {PerpsError} `ValidationError` on an input that
|
|
127
154
|
* {@link estimateLiquidationPrice} rejects.
|
|
128
155
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* helpers are always non-negative magnitudes; direction is carried by
|
|
10
10
|
* `isLong`.
|
|
11
11
|
*/
|
|
12
|
-
import { MarginMode, PositionMarginAdjustment, } from '@lifi/perps-types';
|
|
12
|
+
import { MarginMode, PositionMarginAdjustment, PositionSide, } from '@lifi/perps-types';
|
|
13
13
|
import { DivBig } from '../decimal/big.js';
|
|
14
14
|
import { bigToDecimalString, decimalStringToBig, decimalStringToDivBig, } from '../decimal/decimalStringToBig.js';
|
|
15
15
|
import { invalidInput } from '../errors/invalidInput.js';
|
|
@@ -116,16 +116,27 @@ export const safeCalculateEffectiveLeverage = createSafeFunction('calculateEffec
|
|
|
116
116
|
* margin_available = entryPrice × (1 / leverage - mmr)
|
|
117
117
|
* liq_price = entryPrice - side × margin_available / (1 - mmr × side)
|
|
118
118
|
*
|
|
119
|
+
* With `current`, the order of `size` adds to that position on the same side.
|
|
120
|
+
* The equity of the blended position at `entryPrice` is `current.margin`, the
|
|
121
|
+
* PnL of `current` at `entryPrice`, and the margin of the order. The margin
|
|
122
|
+
* available is that equity minus the maintenance margin of the blended size,
|
|
123
|
+
* and the formula above divides it by the blended size.
|
|
124
|
+
*
|
|
119
125
|
* For existing positions, prefer `Position.liquidationPrice` from the venue.
|
|
120
126
|
*
|
|
121
127
|
* @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
|
|
122
128
|
* (`'0.01'` = 1%).
|
|
123
|
-
* @
|
|
124
|
-
* `
|
|
125
|
-
*
|
|
129
|
+
* @param size - Order size as a non-negative magnitude. Read only with
|
|
130
|
+
* `current`.
|
|
131
|
+
* @param current - Open isolated position on the same side that the order
|
|
132
|
+
* adds to. `margin` is its collateral net of unrealized PnL.
|
|
133
|
+
* @returns The estimate, or `undefined` when the margin above the
|
|
134
|
+
* maintenance requirement is not positive: the position opens at or past
|
|
135
|
+
* liquidation, so the model has no price on the correct side of entry.
|
|
126
136
|
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
127
|
-
* decimal pattern, `leverage` is zero,
|
|
128
|
-
* zero denominator (`1` for a long, `-1` for a short)
|
|
137
|
+
* decimal pattern, `leverage` is zero, `maintenanceMarginRate` gives a
|
|
138
|
+
* zero denominator (`1` for a long, `-1` for a short), `current` comes
|
|
139
|
+
* without `size`, or `current.size + size` is not positive.
|
|
129
140
|
* @public
|
|
130
141
|
*/
|
|
131
142
|
export function estimateLiquidationPrice(params) {
|
|
@@ -140,28 +151,60 @@ export function estimateLiquidationPrice(params) {
|
|
|
140
151
|
if (denominator.eq(0)) {
|
|
141
152
|
throw invalidInput('maintenanceMarginRate', `must not be ${params.isLong ? '1' : '-1'} for this side`);
|
|
142
153
|
}
|
|
143
|
-
|
|
144
|
-
|
|
154
|
+
if (params.current === undefined) {
|
|
155
|
+
const marginFractionAvailable = new DivBig(1).div(leverage).minus(mmr);
|
|
156
|
+
if (marginFractionAvailable.lte(0)) {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const marginAvailable = marginFractionAvailable.times(entryPrice);
|
|
160
|
+
return bigToDecimalString(entryPrice.minus(marginAvailable.times(side).div(denominator)));
|
|
161
|
+
}
|
|
162
|
+
if (params.size === undefined) {
|
|
163
|
+
throw invalidInput('size', 'is required with `current`');
|
|
164
|
+
}
|
|
165
|
+
const addSize = decimalStringToBig(params.size);
|
|
166
|
+
const currentSize = decimalStringToBig(params.current.size);
|
|
167
|
+
const currentEntry = decimalStringToBig(params.current.entryPrice);
|
|
168
|
+
const currentMargin = decimalStringToBig(params.current.margin);
|
|
169
|
+
const totalSize = currentSize.plus(addSize);
|
|
170
|
+
if (totalSize.lte(0)) {
|
|
171
|
+
throw invalidInput('size + current.size', 'must be positive');
|
|
172
|
+
}
|
|
173
|
+
const equity = currentMargin
|
|
174
|
+
.plus(currentSize.times(entryPrice.minus(currentEntry)).times(side))
|
|
175
|
+
.plus(new DivBig(entryPrice).times(addSize).div(leverage));
|
|
176
|
+
const marginAvailablePerUnit = new DivBig(equity)
|
|
177
|
+
.minus(mmr.times(totalSize).times(entryPrice))
|
|
178
|
+
.div(totalSize);
|
|
179
|
+
if (marginAvailablePerUnit.lte(0)) {
|
|
145
180
|
return undefined;
|
|
146
181
|
}
|
|
147
|
-
|
|
148
|
-
return bigToDecimalString(entryPrice.minus(marginAvailable.times(side).div(denominator)));
|
|
182
|
+
return bigToDecimalString(entryPrice.minus(marginAvailablePerUnit.times(side).div(denominator)));
|
|
149
183
|
}
|
|
150
184
|
/** @public */
|
|
151
185
|
export const safeEstimateLiquidationPrice = createSafeFunction('estimateLiquidationPrice', estimateLiquidationPrice);
|
|
152
186
|
/**
|
|
153
|
-
* Estimate the liquidation price of
|
|
154
|
-
* `market.maintenanceMarginRate
|
|
187
|
+
* Estimate the liquidation price of the isolated position that an order
|
|
188
|
+
* leaves, from the flat `market.maintenanceMarginRate`: a new position, or
|
|
189
|
+
* the blend of the order into `params.position`. The collateral of the
|
|
190
|
+
* position is `position.marginUsed`, so the venue `marginUsed` must exclude
|
|
191
|
+
* the unrealized PnL, as Lighter `allocated_margin` does.
|
|
155
192
|
*
|
|
156
193
|
* @returns The estimate, or `undefined` when the market carries no
|
|
157
|
-
* `maintenanceMarginRate
|
|
158
|
-
*
|
|
194
|
+
* `maintenanceMarginRate`, when the order or the position is cross (the
|
|
195
|
+
* liquidation depends on the whole account), when the order reduces the
|
|
196
|
+
* position, or when {@link estimateLiquidationPrice} gives `undefined`.
|
|
159
197
|
* @throws {PerpsError} `ValidationError` on an input that
|
|
160
198
|
* {@link estimateLiquidationPrice} rejects.
|
|
161
199
|
* @public
|
|
162
200
|
*/
|
|
163
201
|
export function estimateLiquidationPriceAtMarketRate(market, params) {
|
|
164
|
-
|
|
202
|
+
const { position } = params;
|
|
203
|
+
if (market.maintenanceMarginRate === undefined ||
|
|
204
|
+
params.marginMode === MarginMode.CROSS ||
|
|
205
|
+
position?.marginMode === MarginMode.CROSS ||
|
|
206
|
+
(position !== undefined &&
|
|
207
|
+
(position.side === PositionSide.LONG) !== params.isLong)) {
|
|
165
208
|
return undefined;
|
|
166
209
|
}
|
|
167
210
|
return estimateLiquidationPrice({
|
|
@@ -169,6 +212,16 @@ export function estimateLiquidationPriceAtMarketRate(market, params) {
|
|
|
169
212
|
leverage: params.leverage,
|
|
170
213
|
isLong: params.isLong,
|
|
171
214
|
maintenanceMarginRate: market.maintenanceMarginRate,
|
|
215
|
+
size: params.size,
|
|
216
|
+
...(position === undefined
|
|
217
|
+
? {}
|
|
218
|
+
: {
|
|
219
|
+
current: {
|
|
220
|
+
size: position.size,
|
|
221
|
+
entryPrice: position.entryPrice,
|
|
222
|
+
margin: position.marginUsed,
|
|
223
|
+
},
|
|
224
|
+
}),
|
|
172
225
|
});
|
|
173
226
|
}
|
|
174
227
|
/** @public */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,UAAU,EAGV,wBAAwB,
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,12 @@ export declare const LIFI_API_URL = "https://li.quest/v1";
|
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
16
16
|
export interface GetGasRecommendationParams {
|
|
17
|
-
/** Chain to hold native gas on — a `
|
|
17
|
+
/** Chain to hold native gas on — a `venueDepositPipeline` flow's `chainId`. */
|
|
18
18
|
chainId: number;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* How much native gas LI.FI suggests holding on `params.chainId` to transact
|
|
22
|
-
* there, for seeding the gas leg of a
|
|
22
|
+
* there, for seeding the gas leg of a venue-deposit pipeline. Read straight
|
|
23
23
|
* from the LI.FI API by the user's client.
|
|
24
24
|
*
|
|
25
25
|
* @returns The suggestion, with `available: false` and no amounts on a chain
|
|
@@ -8,7 +8,7 @@ import { request } from '../transport/request.js';
|
|
|
8
8
|
export const LIFI_API_URL = 'https://li.quest/v1';
|
|
9
9
|
/**
|
|
10
10
|
* How much native gas LI.FI suggests holding on `params.chainId` to transact
|
|
11
|
-
* there, for seeding the gas leg of a
|
|
11
|
+
* there, for seeding the gas leg of a venue-deposit pipeline. Read straight
|
|
12
12
|
* from the LI.FI API by the user's client.
|
|
13
13
|
*
|
|
14
14
|
* @returns The suggestion, with `available: false` and no amounts on a chain
|
|
@@ -34,20 +34,21 @@ export interface DepositFlowLifiSwap {
|
|
|
34
34
|
toAddress?: Address;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
* Fund an address that has no venue account yet
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
37
|
+
* Fund an address that has no venue account yet, or an existing account on a
|
|
38
|
+
* venue whose collateral no LI.FI route credits directly. Collateral and the
|
|
39
|
+
* native gas to broadcast with are both needed on `chainId`, where the venue's
|
|
40
|
+
* {@link ActionType.DEPOSIT} action stages the on-chain legs that credit the
|
|
41
|
+
* account and open it when none exists.
|
|
41
42
|
*
|
|
42
43
|
* @public
|
|
43
44
|
*/
|
|
44
|
-
export interface
|
|
45
|
-
kind: '
|
|
45
|
+
export interface DepositFlowVenueDepositPipeline {
|
|
46
|
+
kind: 'venueDepositPipeline';
|
|
46
47
|
/** Chain on which the deposit legs broadcast; the wallet must be switched here. */
|
|
47
48
|
chainId: number;
|
|
48
49
|
/** Native gas asset needed to broadcast the deposit legs. */
|
|
49
50
|
gasAsset: DeclaredDepositAsset;
|
|
50
|
-
/** Collateral asset
|
|
51
|
+
/** Collateral asset the venue deposit credits. */
|
|
51
52
|
collateral: DeclaredDepositAsset;
|
|
52
53
|
/** Action type used to stage the deposit pipeline. */
|
|
53
54
|
bridgeAction: ActionType.DEPOSIT;
|
|
@@ -70,5 +71,5 @@ export interface DepositFlowSetupRequired {
|
|
|
70
71
|
*
|
|
71
72
|
* @public
|
|
72
73
|
*/
|
|
73
|
-
export type DepositFlow = DepositFlowLifiSwap |
|
|
74
|
+
export type DepositFlow = DepositFlowLifiSwap | DepositFlowVenueDepositPipeline | DepositFlowSetupRequired;
|
|
74
75
|
//# sourceMappingURL=deposit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../../src/types/deposit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,gEAAgE;IAChE,WAAW,EAAE,oBAAoB,CAAA;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../../src/types/deposit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,gEAAgE;IAChE,WAAW,EAAE,oBAAoB,CAAA;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,sBAAsB,CAAA;IAC5B,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,QAAQ,EAAE,oBAAoB,CAAA;IAC9B,kDAAkD;IAClD,UAAU,EAAE,oBAAoB,CAAA;IAChC,sDAAsD;IACtD,YAAY,EAAE,UAAU,CAAC,OAAO,CAAA;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAA;IACrB,qEAAqE;IACrE,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,+BAA+B,GAC/B,wBAAwB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, AvailableToTrade, DecimalString, FillsResponse, Market, MarketRef, MarketSettings, Order, OrderStatus, OrdersResponse, PerpsMarket, PerpsSigner, PortfolioHistoryRange, PortfolioHistoryResponse, Position, PositionsResponse, Quote, QuoteSide, SetupAction, SignedActionStep, SigningMethod, TradeType } from '@lifi/perps-types';
|
|
1
|
+
import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, AvailableToTrade, DecimalString, FillsResponse, MarginMode, Market, MarketRef, MarketSettings, Order, OrderStatus, OrdersResponse, PerpsMarket, PerpsSigner, PortfolioHistoryRange, PortfolioHistoryResponse, Position, PositionsResponse, Quote, QuoteSide, SetupAction, SignedActionStep, SigningMethod, TradeType } from '@lifi/perps-types';
|
|
2
2
|
import type { Address } from 'viem';
|
|
3
3
|
import type { PerpsBaseConfig, PerpsClientSigner, SDKRequestOptions } from './config.js';
|
|
4
4
|
import type { DepositFlow } from './deposit.js';
|
|
@@ -115,7 +115,8 @@ export interface ActionSignerContribution {
|
|
|
115
115
|
params?: Record<string, unknown>;
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
118
|
-
* Inputs for {@link PerpsProviderPlugin.estimateLiquidationPrice}:
|
|
118
|
+
* Inputs for {@link PerpsProviderPlugin.estimateLiquidationPrice}: the order
|
|
119
|
+
* and, when the order adds to one, the open position on the market.
|
|
119
120
|
* `leverage` is the user-selected leverage for the new position, `isLong`
|
|
120
121
|
* carries direction.
|
|
121
122
|
*
|
|
@@ -127,6 +128,14 @@ export interface LiquidationEstimateParams {
|
|
|
127
128
|
leverage: string;
|
|
128
129
|
/** `true` for long, `false` for short. */
|
|
129
130
|
isLong: boolean;
|
|
131
|
+
marginMode: MarginMode;
|
|
132
|
+
/**
|
|
133
|
+
* Order size in base-asset units. The estimate reads it only with
|
|
134
|
+
* `position`, to blend the order into that position.
|
|
135
|
+
*/
|
|
136
|
+
size?: DecimalString;
|
|
137
|
+
/** Open position on the market that the order joins. */
|
|
138
|
+
position?: Position;
|
|
130
139
|
}
|
|
131
140
|
/**
|
|
132
141
|
* Read-side params for {@link PerpsProvider.getAccount}. The `provider`
|
|
@@ -501,16 +510,20 @@ export interface PerpsProviderPlugin {
|
|
|
501
510
|
};
|
|
502
511
|
};
|
|
503
512
|
/**
|
|
504
|
-
* Estimate the liquidation price of
|
|
505
|
-
* using the venue's margin model
|
|
513
|
+
* Estimate the liquidation price of the position that the order leaves on
|
|
514
|
+
* `market` using the venue's margin model: a new position, or the blend of
|
|
515
|
+
* the order into `params.position`. A preview helper — for existing
|
|
506
516
|
* positions, prefer `Position.liquidationPrice` from the venue. Pure —
|
|
507
517
|
* does no I/O.
|
|
508
518
|
*
|
|
509
519
|
* @returns The estimated liquidation price, or `undefined` when `market`
|
|
510
|
-
* lacks the margin metadata the model needs
|
|
511
|
-
* margin above the maintenance requirement
|
|
520
|
+
* lacks the margin metadata the model needs, `leverage` leaves no
|
|
521
|
+
* margin above the maintenance requirement, or the venue model cannot
|
|
522
|
+
* give a correct price for the margin mode and position, such as a cross
|
|
523
|
+
* position whose liquidation depends on the whole account.
|
|
512
524
|
* @throws {PerpsError} `ValidationError` when an input does not match the
|
|
513
|
-
* decimal pattern or is degenerate, such as a zero leverage
|
|
525
|
+
* decimal pattern or is degenerate, such as a zero leverage or a
|
|
526
|
+
* `position` without a `size`.
|
|
514
527
|
*/
|
|
515
528
|
estimateLiquidationPrice(market: PerpsMarket, params: LiquidationEstimateParams): string | undefined;
|
|
516
529
|
/**
|