@metamask-previews/perps-controller 22.0.0-preview-35f016caa → 22.1.0-preview-01e391e
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/CHANGELOG.md +15 -2
- package/dist/PerpsController-method-action-types.d.ts +13 -1
- package/dist/PerpsController-method-action-types.d.ts.map +1 -1
- package/dist/PerpsController-method-action-types.js.map +1 -1
- package/dist/PerpsController.d.ts +10 -1
- package/dist/PerpsController.d.ts.map +1 -1
- package/dist/PerpsController.js +18 -0
- package/dist/PerpsController.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/AggregatedPerpsProvider.d.ts +9 -1
- package/dist/providers/AggregatedPerpsProvider.d.ts.map +1 -1
- package/dist/providers/AggregatedPerpsProvider.js +13 -0
- package/dist/providers/AggregatedPerpsProvider.js.map +1 -1
- package/dist/providers/HyperLiquidProvider.d.ts +7 -1
- package/dist/providers/HyperLiquidProvider.d.ts.map +1 -1
- package/dist/providers/HyperLiquidProvider.js +831 -172
- package/dist/providers/HyperLiquidProvider.js.map +1 -1
- package/dist/providers/LighterProvider.d.ts +1 -1
- package/dist/providers/LighterProvider.d.ts.map +1 -1
- package/dist/providers/LighterProvider.js +69 -9
- package/dist/providers/LighterProvider.js.map +1 -1
- package/dist/services/FeatureFlagConfigurationService.d.ts.map +1 -1
- package/dist/services/FeatureFlagConfigurationService.js +18 -8
- package/dist/services/FeatureFlagConfigurationService.js.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.d.ts.map +1 -1
- package/dist/services/HyperLiquidSubscriptionService.js +10 -3
- package/dist/services/HyperLiquidSubscriptionService.js.map +1 -1
- package/dist/types/index.d.ts +50 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/accountUtils.d.ts +9 -1
- package/dist/utils/accountUtils.d.ts.map +1 -1
- package/dist/utils/accountUtils.js +28 -0
- package/dist/utils/accountUtils.js.map +1 -1
- package/dist/utils/hyperLiquidAdapter.d.ts.map +1 -1
- package/dist/utils/hyperLiquidAdapter.js +28 -0
- package/dist/utils/hyperLiquidAdapter.js.map +1 -1
- package/dist/utils/lighterAdapter.d.ts +17 -1
- package/dist/utils/lighterAdapter.d.ts.map +1 -1
- package/dist/utils/lighterAdapter.js +67 -2
- package/dist/utils/lighterAdapter.js.map +1 -1
- package/dist/utils/stringParseUtils.d.ts +7 -0
- package/dist/utils/stringParseUtils.d.ts.map +1 -1
- package/dist/utils/stringParseUtils.js +14 -0
- package/dist/utils/stringParseUtils.js.map +1 -1
- package/package.json +4 -4
|
@@ -149,7 +149,7 @@ export declare class LighterProvider implements PerpsProvider {
|
|
|
149
149
|
* @returns The current lock, or unavailable when it cannot be read.
|
|
150
150
|
*/
|
|
151
151
|
getMarginModeLock(params: GetMarginModeLockParams): Promise<PerpsMarginModeLock>;
|
|
152
|
-
getAccountState(
|
|
152
|
+
getAccountState(params?: GetAccountStateParams): Promise<AccountState>;
|
|
153
153
|
getOpenOrders(_params?: GetOrdersParams): Promise<Order[]>;
|
|
154
154
|
getOrders(params?: GetOrdersParams, _options?: PerpsReadOptions): Promise<Order[]>;
|
|
155
155
|
getCurrentAccountId(): Promise<CaipAccountId>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LighterProvider.d.ts","sourceRoot":"","sources":["../../src/providers/LighterProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAqEhE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAQtE,OAAO,KAAK,EAIV,kBAAkB,EAGnB,MAAM,oCAAoC,CAAC;AAW5C,OAAO,KAAK,EAEV,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,qBAAqB,EACrB,UAAU,EAEV,4BAA4B,EAC5B,qCAAqC,EACrC,qCAAqC,EACrC,wBAAwB,EAEzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"LighterProvider.d.ts","sourceRoot":"","sources":["../../src/providers/LighterProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ import { LighterWalletService } from '../services/LighterWalletService.js';
|
|
|
25
25
|
import { WebSocketConnectionState } from '../types/index.js';
|
|
26
26
|
import { PERPS_ERROR_ACTION, PERPS_ERROR_COMPONENT, PERPS_ERROR_OPERATION, createPerpsErrorContext, markProviderErrorReported, } from '../utils/errorContext.js';
|
|
27
27
|
import { ensureError, isKeyringLockedError } from '../utils/errorUtils.js';
|
|
28
|
-
import { adaptAccountStateFromLighter, adaptAccountStateFromLighterUserStats, adaptFillFromLighterTrade, adaptMarketDataFromLighter, adaptMarketFromLighter, adaptOrderFromLighter, adaptOrderStatus, adaptPositionFromLighter, adaptPriceUpdateFromLighter, adaptPriceUpdateFromLighterWsStat, } from '../utils/lighterAdapter.js';
|
|
28
|
+
import { adaptAccountStateFromLighter, adaptAccountStateFromLighterUserStats, adaptCrossMarginSummaryFromLighter, adaptFillFromLighterTrade, adaptMarketDataFromLighter, adaptMarketFromLighter, adaptOrderFromLighter, adaptOrderStatus, adaptPositionFromLighter, adaptPriceUpdateFromLighter, adaptPriceUpdateFromLighterWsStat, } from '../utils/lighterAdapter.js';
|
|
29
29
|
import { LIGHTER_ATTACHED_MAX_GROUPS, LIGHTER_ATTACHED_HANDLE_PREFIX, parseLighterAttachedGroups, correlateLighterAttachedOrders, toAttachedOrderGroup, } from '../utils/lighterAttachedOrders.js';
|
|
30
30
|
import { identifyLighterChaseChild, readLighterChaseQuote, reconcileLighterChaseChild, } from '../utils/lighterChase.js';
|
|
31
31
|
import { LIGHTER_EDIT_JOURNAL_PREFIX, decodeLighterModifyOrder, lighterEditOrderId, lighterNativeEditTarget, lighterNativeEditResult, observeLighterNativeEdit, parseLighterNativeEditJournal, prepareLighterNativeEdit, } from '../utils/lighterNativeEdit.js';
|
|
@@ -7101,7 +7101,8 @@ export class LighterProvider {
|
|
|
7101
7101
|
};
|
|
7102
7102
|
}
|
|
7103
7103
|
}
|
|
7104
|
-
async getAccountState(
|
|
7104
|
+
async getAccountState(params) {
|
|
7105
|
+
const throwOnUnavailable = params?.throwOnUnavailable === true;
|
|
7105
7106
|
try {
|
|
7106
7107
|
this.#ensureSessionBinding();
|
|
7107
7108
|
const generation = this.#sessionGeneration;
|
|
@@ -7112,9 +7113,17 @@ export class LighterProvider {
|
|
|
7112
7113
|
this.#assertSession(generation);
|
|
7113
7114
|
const account = response.accounts[0];
|
|
7114
7115
|
if (!account) {
|
|
7116
|
+
if (throwOnUnavailable) {
|
|
7117
|
+
throw new Error(`Lighter account ${accountIndex} not returned`);
|
|
7118
|
+
}
|
|
7115
7119
|
return EMPTY_ACCOUNT_STATE;
|
|
7116
7120
|
}
|
|
7117
|
-
|
|
7121
|
+
const accountState = adaptAccountStateFromLighter(account);
|
|
7122
|
+
const crossMarginSummary = await this.#readCrossMarginSummary(account, accountState, throwOnUnavailable);
|
|
7123
|
+
this.#assertSession(generation);
|
|
7124
|
+
return crossMarginSummary
|
|
7125
|
+
? { ...accountState, crossMarginSummary }
|
|
7126
|
+
: accountState;
|
|
7118
7127
|
}
|
|
7119
7128
|
catch (caughtError) {
|
|
7120
7129
|
if (this.#isUnsupportedCapabilityError(caughtError) ||
|
|
@@ -7123,6 +7132,14 @@ export class LighterProvider {
|
|
|
7123
7132
|
// never degrade into empty state that can preserve stale views.
|
|
7124
7133
|
throw caughtError;
|
|
7125
7134
|
}
|
|
7135
|
+
if (throwOnUnavailable &&
|
|
7136
|
+
!(caughtError instanceof LighterAccountNotFoundError)) {
|
|
7137
|
+
// Opted-in callers must be able to tell a failed read from a real
|
|
7138
|
+
// zero balance. A wallet without a Lighter account is a real zero.
|
|
7139
|
+
throw new Error(PERPS_ERROR_CODES.ACCOUNT_STATE_FAILED, {
|
|
7140
|
+
cause: caughtError,
|
|
7141
|
+
});
|
|
7142
|
+
}
|
|
7126
7143
|
const wrappedError = ensureError(caughtError, 'LighterProvider.getAccountState');
|
|
7127
7144
|
this.#deps.debugLogger.log('[LighterProvider] getAccountState failed', {
|
|
7128
7145
|
error: String(wrappedError),
|
|
@@ -7131,6 +7148,38 @@ export class LighterProvider {
|
|
|
7131
7148
|
return EMPTY_ACCOUNT_STATE;
|
|
7132
7149
|
}
|
|
7133
7150
|
}
|
|
7151
|
+
/**
|
|
7152
|
+
* Cross-margin summary for an account read. Without positions or
|
|
7153
|
+
* market-margin metadata, default callers keep the account state without
|
|
7154
|
+
* a summary; opted-in callers get the failure.
|
|
7155
|
+
*
|
|
7156
|
+
* @param account - Validated sub-account payload.
|
|
7157
|
+
* @param accountState - The account's adapted state.
|
|
7158
|
+
* @param throwOnUnavailable - Whether the caller opted in to failures.
|
|
7159
|
+
* @returns The summary, or undefined when its inputs are unavailable.
|
|
7160
|
+
*/
|
|
7161
|
+
#readCrossMarginSummary = async (account, accountState, throwOnUnavailable) => {
|
|
7162
|
+
if (account.positions?.length) {
|
|
7163
|
+
try {
|
|
7164
|
+
await this.#ensureMarketMargins();
|
|
7165
|
+
}
|
|
7166
|
+
catch (error) {
|
|
7167
|
+
if (throwOnUnavailable || this.#mustSurfaceReadError(error)) {
|
|
7168
|
+
throw error;
|
|
7169
|
+
}
|
|
7170
|
+
this.#deps.debugLogger.log('[LighterProvider] cross margin summary unavailable', {
|
|
7171
|
+
error: ensureError(error, 'LighterProvider.getAccountState')
|
|
7172
|
+
.message,
|
|
7173
|
+
});
|
|
7174
|
+
return undefined;
|
|
7175
|
+
}
|
|
7176
|
+
}
|
|
7177
|
+
const summary = adaptCrossMarginSummaryFromLighter(account, accountState.totalBalance, this.#maintenanceFractionFor);
|
|
7178
|
+
if (!summary && throwOnUnavailable) {
|
|
7179
|
+
throw new Error(`${LIGHTER_DATA_INTEGRITY_PREFIX} cross margin summary unavailable: positions or maintenance margin metadata missing`);
|
|
7180
|
+
}
|
|
7181
|
+
return summary;
|
|
7182
|
+
};
|
|
7134
7183
|
/** Decorate real venue rows only when they match durable Scale intent.
|
|
7135
7184
|
* @param rows - Authoritative venue rows.
|
|
7136
7185
|
* @param accountIndex - Bound account.
|
|
@@ -12604,15 +12653,26 @@ export class LighterProvider {
|
|
|
12604
12653
|
return String(Math.max(0, liquidationPrice));
|
|
12605
12654
|
}
|
|
12606
12655
|
async calculateMaintenanceMargin(params) {
|
|
12607
|
-
// The venue publishes per-market maintenance margin fractions
|
|
12608
|
-
// (hundredths of a percent, e.g. 240 = 2.4%) in orderBookDetails.
|
|
12609
12656
|
await this.#ensureMarketMargins();
|
|
12610
|
-
const
|
|
12611
|
-
if (
|
|
12612
|
-
|
|
12657
|
+
const fraction = this.#maintenanceFractionFor(params.asset);
|
|
12658
|
+
if (fraction === undefined) {
|
|
12659
|
+
throw new Error(`${LIGHTER_DATA_INTEGRITY_PREFIX} maintenance margin metadata unavailable for ${params.asset || 'unknown market'}`);
|
|
12613
12660
|
}
|
|
12614
|
-
|
|
12661
|
+
return fraction;
|
|
12615
12662
|
}
|
|
12663
|
+
/**
|
|
12664
|
+
* Maintenance margin fraction from the loaded market-margin metadata.
|
|
12665
|
+
* The venue publishes it per market in hundredths of a percent
|
|
12666
|
+
* (240 = 2.4%) in orderBookDetails.
|
|
12667
|
+
*
|
|
12668
|
+
* @param asset - Market symbol.
|
|
12669
|
+
* @returns The fraction (0.024 = 2.4%), or undefined when the market has
|
|
12670
|
+
* none.
|
|
12671
|
+
*/
|
|
12672
|
+
#maintenanceFractionFor = (asset) => {
|
|
12673
|
+
const maintenance = this.#marginBySymbol.get(asset)?.maintenance;
|
|
12674
|
+
return maintenance && maintenance > 0 ? maintenance / 10_000 : undefined;
|
|
12675
|
+
};
|
|
12616
12676
|
/**
|
|
12617
12677
|
* Validate an explicit collateral mode from authoritative account rows.
|
|
12618
12678
|
* No signer setup or default-mode fallback is permitted for this request.
|