@lifi/perps-sdk 1.6.0 → 2.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/dist/cjs/client/PerpsClient.d.ts +9 -4
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +36 -4
- package/dist/cjs/client/PerpsClient.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/types/api.d.ts +11 -1
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/config.d.ts +1 -0
- package/dist/cjs/types/config.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +1 -0
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/utils/accountSummary.d.ts +1 -1
- package/dist/cjs/utils/accountSummary.d.ts.map +1 -1
- package/dist/cjs/utils/accountSummary.js +6 -2
- package/dist/cjs/utils/accountSummary.js.map +1 -1
- package/dist/cjs/utils/switchChain.d.ts +5 -0
- package/dist/cjs/utils/switchChain.d.ts.map +1 -0
- package/dist/cjs/utils/switchChain.js +39 -0
- package/dist/cjs/utils/switchChain.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/client/PerpsClient.d.ts +42 -7
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +69 -7
- package/dist/esm/client/PerpsClient.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/types/api.d.ts +28 -7
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/config.d.ts +11 -0
- package/dist/esm/types/config.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +11 -0
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/utils/accountSummary.d.ts +4 -1
- package/dist/esm/utils/accountSummary.d.ts.map +1 -1
- package/dist/esm/utils/accountSummary.js +6 -2
- package/dist/esm/utils/accountSummary.js.map +1 -1
- package/dist/esm/utils/switchChain.d.ts +21 -0
- package/dist/esm/utils/switchChain.d.ts.map +1 -0
- package/dist/esm/utils/switchChain.js +51 -0
- package/dist/esm/utils/switchChain.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/client/PerpsClient.d.ts +42 -7
- package/dist/types/client/PerpsClient.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/types/api.d.ts +28 -7
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/config.d.ts +11 -0
- package/dist/types/types/config.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +11 -0
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/utils/accountSummary.d.ts +4 -1
- package/dist/types/utils/accountSummary.d.ts.map +1 -1
- package/dist/types/utils/switchChain.d.ts +21 -0
- package/dist/types/utils/switchChain.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +86 -9
- package/src/index.ts +3 -2
- package/src/types/api.ts +33 -7
- package/src/types/config.ts +14 -0
- package/src/types/provider.ts +11 -0
- package/src/utils/accountSummary.ts +10 -3
- package/src/utils/switchChain.ts +73 -0
- package/src/version.ts +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { AccountResponse, AccountSummary, ActionParamsMap, ActionStep, CreateActionResponse, ExecuteActionResponse, MarketRef, Position
|
|
1
|
+
import type { AccountResponse, AccountSummary, ActionParamsMap, ActionStep, CreateActionResponse, ExecuteActionResponse, MarketRef, Position } from '@lifi/perps-types';
|
|
2
2
|
import { ActionType } from '@lifi/perps-types';
|
|
3
3
|
import type { Address } from 'viem';
|
|
4
|
-
import type { BuildProviderSetupParams, CancelOrdersParams,
|
|
4
|
+
import type { BuildProviderSetupParams, CancelOrdersParams, GetAccountResult, GetSetupParams, ModifyOrdersParams, PerpsClientOptions, PlaceOrderParams, PlaceTriggerOrderParams, ProviderSetup, SendAssetActionParams, WithdrawParams } from '../types/api.js';
|
|
5
|
+
import type { SwitchChainHook } from '../types/config.js';
|
|
5
6
|
import type { PerpsSDKClient } from '../types/provider.js';
|
|
6
7
|
/**
|
|
7
8
|
* The primary high-level perps API: wraps a {@link PerpsSDKClient} and owns the
|
|
@@ -15,6 +16,7 @@ export declare class PerpsClient {
|
|
|
15
16
|
private sdkClient;
|
|
16
17
|
private providerMetadataCache;
|
|
17
18
|
private _userWallet;
|
|
19
|
+
private _switchChain;
|
|
18
20
|
constructor(options: PerpsClientOptions);
|
|
19
21
|
/**
|
|
20
22
|
* Set or update the end-user's wallet. Used whenever an action's descriptor
|
|
@@ -23,6 +25,14 @@ export declare class PerpsClient {
|
|
|
23
25
|
* @public
|
|
24
26
|
*/
|
|
25
27
|
setUserWallet(userWallet: PerpsSDKClient['userWallet']): void;
|
|
28
|
+
/**
|
|
29
|
+
* Set or replace the wallet chain-switch hook invoked before a USER-signed
|
|
30
|
+
* EIP-712 action is signed. Mirrors {@link setUserWallet}. Pass undefined to
|
|
31
|
+
* clear — cleared, a wallet on the wrong chain signs offline without a switch.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
setSwitchChain(switchChain: SwitchChainHook | undefined): void;
|
|
26
36
|
/**
|
|
27
37
|
* The underlying low-level {@link PerpsSDKClient} (config, user wallet,
|
|
28
38
|
* provider registry) backing this instance.
|
|
@@ -53,6 +63,14 @@ export declare class PerpsClient {
|
|
|
53
63
|
* arm signs as the user.
|
|
54
64
|
*/
|
|
55
65
|
private delegateSignActions;
|
|
66
|
+
/**
|
|
67
|
+
* Resolve the wallet that signs `actions`. For a USER-signed EIP-712 batch,
|
|
68
|
+
* switch the configured wallet to the action's target chain via the
|
|
69
|
+
* `switchChain` hook and return the switched client; the switch is transient
|
|
70
|
+
* — `sdkClient.userWallet` is never mutated. All other batches (agent-signed,
|
|
71
|
+
* non-EIP-712, or no configured wallet) return the configured wallet as-is.
|
|
72
|
+
*/
|
|
73
|
+
private resolveSigningWallet;
|
|
56
74
|
/**
|
|
57
75
|
* Assemble the per-call context the provider plugin needs in order to sign:
|
|
58
76
|
* the end-user's wallet and the descriptor's declared `signers`. Core
|
|
@@ -60,6 +78,15 @@ export declare class PerpsClient {
|
|
|
60
78
|
* branch on them. Provider-owned session credentials (the Hyperliquid agent
|
|
61
79
|
* keypair, Lighter's API key) are resolved inside the provider's
|
|
62
80
|
* `signActions`, not threaded through here.
|
|
81
|
+
*
|
|
82
|
+
* `userWallet` overrides the configured wallet for this signing pass only —
|
|
83
|
+
* `resolveSigningWallet` supplies the chain-switched client without mutating
|
|
84
|
+
* `sdkClient.userWallet`.
|
|
85
|
+
*
|
|
86
|
+
* When a `switchChain` hook is configured, `switchToChain` is bound to the
|
|
87
|
+
* resolved wallet so a plugin can switch per leg mid-batch (Lighter's
|
|
88
|
+
* `EVM_TX` broadcasts); the switch stays transient — it never mutates
|
|
89
|
+
* `sdkClient.userWallet`.
|
|
63
90
|
*/
|
|
64
91
|
private buildSignActionsContext;
|
|
65
92
|
/**
|
|
@@ -73,9 +100,8 @@ export declare class PerpsClient {
|
|
|
73
100
|
* no backend-bound step to submit.
|
|
74
101
|
*
|
|
75
102
|
* @throws {PerpsError} When the step's action is not declared by the provider.
|
|
76
|
-
* @public
|
|
77
103
|
*/
|
|
78
|
-
signProviderSetupAction
|
|
104
|
+
private signProviderSetupAction;
|
|
79
105
|
/**
|
|
80
106
|
* Build (but do not sign or submit) the unsigned action steps for `action`,
|
|
81
107
|
* letting the provider plugin contribute any signer-bearing request fields.
|
|
@@ -144,10 +170,8 @@ export declare class PerpsClient {
|
|
|
144
170
|
* caller / `signProviderSetupAction`). Routes the batch on the first step's
|
|
145
171
|
* action and lets the plugin contribute that action's `signerAddress`.
|
|
146
172
|
* Throws on any per-step venue rejection.
|
|
147
|
-
*
|
|
148
|
-
* @public
|
|
149
173
|
*/
|
|
150
|
-
executeProviderSetup
|
|
174
|
+
private executeProviderSetup;
|
|
151
175
|
/**
|
|
152
176
|
* Sign and submit one pre-staged setup `ActionStep` end-to-end.
|
|
153
177
|
*
|
|
@@ -269,6 +293,17 @@ export declare class PerpsClient {
|
|
|
269
293
|
* @public
|
|
270
294
|
*/
|
|
271
295
|
withdraw(params: WithdrawParams): Promise<ExecuteActionResponse>;
|
|
296
|
+
/**
|
|
297
|
+
* Move collateral between DEXes within the provider account. Convenience
|
|
298
|
+
* wrapper over {@link execute} with `ActionType.SEND_ASSET`; like
|
|
299
|
+
* {@link withdraw} it returns the raw {@link ExecuteActionResponse} and does
|
|
300
|
+
* not throw on a venue rejection.
|
|
301
|
+
*
|
|
302
|
+
* @throws {PerpsError} When the provider is unregistered or the action
|
|
303
|
+
* cannot be signed/submitted.
|
|
304
|
+
* @public
|
|
305
|
+
*/
|
|
306
|
+
sendAsset(params: SendAssetActionParams): Promise<ExecuteActionResponse>;
|
|
272
307
|
/**
|
|
273
308
|
* Execute any action through the SDK's signing pipeline: fetch the unsigned
|
|
274
309
|
* steps, delegate signing to the provider plugin (which branches on the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerpsClient.d.ts","sourceRoot":"","sources":["../../../src/client/PerpsClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,QAAQ,
|
|
1
|
+
{"version":3,"file":"PerpsClient.d.ts","sourceRoot":"","sources":["../../../src/client/PerpsClient.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -55,8 +55,8 @@ export type { FetchWithRetryOptions } from './transport/fetchWithRetry.js';
|
|
|
55
55
|
export { fetchWithRetry } from './transport/fetchWithRetry.js';
|
|
56
56
|
export type { ProviderRetryConfig, ResolvedRetryPolicy, RetryAttemptContext, RetryClassification, RetryClassifyContext, RetryConfig, RetryPolicy, } from './transport/retryPolicy.js';
|
|
57
57
|
export { DISABLED_RETRY, LIFI_REQUEST_KEY, LIFI_RETRY_DEFAULTS, resolveRetryPolicy, } from './transport/retryPolicy.js';
|
|
58
|
-
export type { BuildProviderSetupParams, CancelOrdersParams,
|
|
59
|
-
export type { HyperliquidConfig, PerpsBaseConfig, PerpsClientSigner, ProviderConfig, ProviderConfigs, RequestInterceptor, SDKRequestOptions, } from './types/config.js';
|
|
58
|
+
export type { BuildProviderSetupParams, CancelOrdersParams, GetAccountResult, GetSetupParams, ModifyOrdersParams, PerpsClientOptions, PerpsConfig, PlaceOrderParams as ClientPlaceOrderParams, PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams, ProviderSetup, SendAssetActionParams, WithdrawParams, } from './types/api.js';
|
|
59
|
+
export type { HyperliquidConfig, PerpsBaseConfig, PerpsClientSigner, ProviderConfig, ProviderConfigs, RequestInterceptor, SDKRequestOptions, SwitchChainHook, } from './types/config.js';
|
|
60
60
|
export type { ActionSignerContribution, LiquidationEstimateParams, PerpsProvider, PerpsProviderPlugin, PerpsSDKClient, ProviderAccountExistsParams, ProviderGetAccountParams, ProviderGetActivityParams, ProviderGetFillsParams, ProviderGetOrderParams, ProviderGetOrdersParams, ProviderGetPositionsParams, ProviderGetQuoteParams, QuoteListener, SignActionsContext, } from './types/provider.js';
|
|
61
61
|
export { type CollateralSemantics, summarizeAccount, } from './utils/accountSummary.js';
|
|
62
62
|
export type { ExpectedPnl } from './utils/calculations.js';
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
import type { AccountConfigSetting, AccountResponse, ActionStep, ExecuteActionResponse, MarketRef, ModifyOrderInput, OrderSide, OrderType, SignedActionStep, TimeInForce, TriggerOrderInput, WithdrawalParams } from '@lifi/perps-types';
|
|
2
2
|
import type { Account, Address, WalletClient } from 'viem';
|
|
3
3
|
import type { RetryConfig } from '../transport/retryPolicy.js';
|
|
4
|
-
import type { ProviderConfigs, RequestInterceptor } from './config.js';
|
|
4
|
+
import type { ProviderConfigs, RequestInterceptor, SwitchChainHook } from './config.js';
|
|
5
5
|
import type { PerpsProviderPlugin } from './provider.js';
|
|
6
6
|
/**
|
|
7
7
|
* Configuration for {@link createPerpsClient}.
|
|
@@ -70,6 +70,12 @@ export interface PerpsClientOptions {
|
|
|
70
70
|
* a keyed `ProviderConfigs` map.
|
|
71
71
|
*/
|
|
72
72
|
providers?: PerpsProviderPlugin[] | ProviderConfigs;
|
|
73
|
+
/**
|
|
74
|
+
* Hook invoked before a USER-signed EIP-712 action is signed, to switch the
|
|
75
|
+
* user's wallet to the action's target chain. Also settable at runtime via
|
|
76
|
+
* `setSwitchChain`.
|
|
77
|
+
*/
|
|
78
|
+
switchChain?: SwitchChainHook;
|
|
73
79
|
}
|
|
74
80
|
/**
|
|
75
81
|
* Parameters for the internal `buildProviderSetup` helper that materialises
|
|
@@ -125,6 +131,21 @@ export interface WithdrawParams {
|
|
|
125
131
|
address: Address;
|
|
126
132
|
withdrawal: WithdrawalParams;
|
|
127
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Parameters for {@link PerpsClient.sendAsset}. The send-asset fields are held
|
|
136
|
+
* flat (not nested) to avoid colliding with `@lifi/perps-types`'
|
|
137
|
+
* `SendAssetParams`, which types the underlying action payload.
|
|
138
|
+
*
|
|
139
|
+
* @public
|
|
140
|
+
*/
|
|
141
|
+
export interface SendAssetActionParams {
|
|
142
|
+
provider: string;
|
|
143
|
+
address: Address;
|
|
144
|
+
collateral: string;
|
|
145
|
+
sourceDex: string;
|
|
146
|
+
destinationDex: string;
|
|
147
|
+
amount: string;
|
|
148
|
+
}
|
|
128
149
|
/**
|
|
129
150
|
* Parameters for canceling orders.
|
|
130
151
|
*
|
|
@@ -133,7 +154,11 @@ export interface WithdrawParams {
|
|
|
133
154
|
export interface CancelOrdersParams {
|
|
134
155
|
provider: string;
|
|
135
156
|
address: Address;
|
|
157
|
+
/** Venue order ids. Venues whose ids are scoped per market (e.g. Lighter's
|
|
158
|
+
* `order_index`) also accept the composite `"<market_id>:<order_id>"`. */
|
|
136
159
|
ids: string[];
|
|
160
|
+
/** Market context for per-market order ids; the order's `market.id`. */
|
|
161
|
+
assetId?: string;
|
|
137
162
|
}
|
|
138
163
|
/**
|
|
139
164
|
* Parameters for modifying orders.
|
|
@@ -181,9 +206,7 @@ export interface ProviderSetup {
|
|
|
181
206
|
isReady: boolean;
|
|
182
207
|
}
|
|
183
208
|
/**
|
|
184
|
-
* Parameters for
|
|
185
|
-
*
|
|
186
|
-
* @public
|
|
209
|
+
* Parameters for the internal `PerpsClient.executeProviderSetup` batch submit.
|
|
187
210
|
*/
|
|
188
211
|
export interface ExecuteProviderSetupParams {
|
|
189
212
|
/** Provider to satisfy setup for */
|
|
@@ -196,9 +219,7 @@ export interface ExecuteProviderSetupParams {
|
|
|
196
219
|
signedActions: SignedActionStep[];
|
|
197
220
|
}
|
|
198
221
|
/**
|
|
199
|
-
* Result from
|
|
200
|
-
*
|
|
201
|
-
* @public
|
|
222
|
+
* Result from the internal `PerpsClient.executeProviderSetup` batch submit.
|
|
202
223
|
*/
|
|
203
224
|
export interface ExecuteProviderSetupResult {
|
|
204
225
|
results: ExecuteActionResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,17 @@ import type { RetryConfig } from '../transport/retryPolicy.js';
|
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
9
|
export type PerpsClientSigner = WalletClient<any, any, Account>;
|
|
10
|
+
/**
|
|
11
|
+
* Consumer-supplied hook invoked at the SDK's signing choke point to switch the
|
|
12
|
+
* user's wallet to a USER-signed EIP-712 action's target chain. Modelled on
|
|
13
|
+
* `@lifi/sdk`'s switch-chain contract: a json-rpc wallet switches in place and
|
|
14
|
+
* resolves to the re-fetched client; a local/private-key signer resolves to a
|
|
15
|
+
* chain-bound client (or signs offline). Resolve to `undefined` to signal the
|
|
16
|
+
* switch could not be performed.
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export type SwitchChainHook = (chainId: number) => Promise<PerpsClientSigner | undefined>;
|
|
10
21
|
/**
|
|
11
22
|
* Per-provider config — restricts which `markets` the WS client subscribes
|
|
12
23
|
* to. Indexed by provider key.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAA;CAC/C;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,KACjB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAE/D;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAA;CAC/C;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,KACjB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB"}
|
|
@@ -34,6 +34,17 @@ export interface SignActionsContext {
|
|
|
34
34
|
* forwards the descriptor's `signers` as data; it does not branch on them.
|
|
35
35
|
*/
|
|
36
36
|
signers?: PerpsSigner[];
|
|
37
|
+
/**
|
|
38
|
+
* Switch `userWallet` to `chainId` and resolve the client to broadcast with.
|
|
39
|
+
* Bound by core to the consumer's `switchChain` hook and the resolved
|
|
40
|
+
* `userWallet`: a no-op returning the same client when already on `chainId`,
|
|
41
|
+
* else it switches and re-verifies, rejecting with `PerpsErrorCode.SDKError`
|
|
42
|
+
* when the switch cannot be completed. Present only when a `switchChain` hook
|
|
43
|
+
* is configured; a plugin whose legs broadcast on-chain (Lighter's `EVM_TX`)
|
|
44
|
+
* calls it per leg, and falls back to a fail-loud wrong-chain guard when it is
|
|
45
|
+
* absent (local/private-key signer, or no hook).
|
|
46
|
+
*/
|
|
47
|
+
switchToChain?: (chainId: number) => Promise<PerpsClientSigner>;
|
|
37
48
|
}
|
|
38
49
|
/**
|
|
39
50
|
* Signer-bearing wire fields a provider plugin contributes to an action's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,WAAW,EACX,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,SAAS,EACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAA;AAEpB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IACvC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,CAAA;IACnC,0EAA0E;IAC1E,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;CACpD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ import type { AccountResponse, AccountSummary, Position } from '@lifi/perps-type
|
|
|
6
6
|
* - `'free'` — free collateral only; locked margin and unrealized PnL are
|
|
7
7
|
* both carried by the positions. Available margin is the free collateral
|
|
8
8
|
* as-is; unrealized PnL is not counted toward it.
|
|
9
|
+
* - `'net'` — free collateral with unrealized PnL already marked in; only
|
|
10
|
+
* the locked margin is carried by the positions (e.g. a venue-reported
|
|
11
|
+
* available balance).
|
|
9
12
|
* - `'gross'` — locked margin included, unrealized PnL carried by the
|
|
10
13
|
* positions (e.g. spot holdings backing a unified account). The venue
|
|
11
14
|
* counts unrealized PnL toward buying power, so it is added to available
|
|
@@ -16,7 +19,7 @@ import type { AccountResponse, AccountSummary, Position } from '@lifi/perps-type
|
|
|
16
19
|
*
|
|
17
20
|
* @public
|
|
18
21
|
*/
|
|
19
|
-
export type CollateralSemantics = 'free' | 'gross' | 'equity';
|
|
22
|
+
export type CollateralSemantics = 'free' | 'net' | 'gross' | 'equity';
|
|
20
23
|
/**
|
|
21
24
|
* Roll an {@link AccountResponse} and its open positions up into an
|
|
22
25
|
* {@link AccountSummary}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountSummary.d.ts","sourceRoot":"","sources":["../../../src/utils/accountSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAM1B
|
|
1
|
+
{"version":3,"file":"accountSummary.d.ts","sourceRoot":"","sources":["../../../src/utils/accountSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAM1B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;AAErE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,QAAQ,EAAE,EACrB,SAAS,EAAE,mBAAmB,GAC7B,cAAc,CAgChB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ActionStep, ProviderAction } from '@lifi/perps-types';
|
|
2
|
+
import type { PerpsClientSigner, SwitchChainHook } from '../types/config.js';
|
|
3
|
+
/**
|
|
4
|
+
* The chain a batch of `actions` must be signed on, or `undefined` when no
|
|
5
|
+
* wallet chain switch applies. Only USER-signed EIP-712 batches carry a target
|
|
6
|
+
* (agent-signed batches sign with a chain-bound keypair; other schemes are not
|
|
7
|
+
* EIP-712). Reads the first numeric `typedData.domain.chainId`; a batch whose
|
|
8
|
+
* steps omit `chainId` yields `undefined`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function userEip712TargetChainId(descriptor: ProviderAction, actions: ActionStep[]): number | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Ensure `wallet` is on `targetChainId` before signing, returning the wallet to
|
|
13
|
+
* sign with. Without a `switchChain` hook the wallet is returned unchanged (no
|
|
14
|
+
* throw, no RPC) — a local/private-key signer signs EIP-712 offline regardless
|
|
15
|
+
* of its transport chain. With a hook: probe the current chain via viem
|
|
16
|
+
* `getChainId`, return the wallet untouched when already on target, else invoke
|
|
17
|
+
* the hook and re-verify. Throws `PerpsErrorCode.SDKError` when the hook yields
|
|
18
|
+
* no client or a client still on the wrong chain.
|
|
19
|
+
*/
|
|
20
|
+
export declare function switchSigningChain(wallet: PerpsClientSigner, targetChainId: number, switchChain?: SwitchChainHook): Promise<PerpsClientSigner>;
|
|
21
|
+
//# sourceMappingURL=switchChain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switchChain.d.ts","sourceRoot":"","sources":["../../../src/utils/switchChain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,cAAc,EACf,MAAM,mBAAmB,CAAA;AAI1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAE5E;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,UAAU,EAAE,GACpB,MAAM,GAAG,SAAS,CAcpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAuB5B"}
|
package/dist/types/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "LI.FI Perps SDK for perpetuals trading",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@lifi/types": "17.82.1",
|
|
45
45
|
"partysocket": "^1.1.19",
|
|
46
46
|
"viem": "^2.48.8",
|
|
47
|
-
"@lifi/perps-types": "^1.
|
|
47
|
+
"@lifi/perps-types": "^1.13.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
|
@@ -30,14 +30,20 @@ import type {
|
|
|
30
30
|
PlaceOrderParams,
|
|
31
31
|
PlaceTriggerOrderParams,
|
|
32
32
|
ProviderSetup,
|
|
33
|
+
SendAssetActionParams,
|
|
33
34
|
WithdrawParams,
|
|
34
35
|
} from '../types/api.js'
|
|
36
|
+
import type { PerpsClientSigner, SwitchChainHook } from '../types/config.js'
|
|
35
37
|
import type {
|
|
36
38
|
ActionSignerContribution,
|
|
37
39
|
PerpsProvider,
|
|
38
40
|
PerpsSDKClient,
|
|
39
41
|
SignActionsContext,
|
|
40
42
|
} from '../types/provider.js'
|
|
43
|
+
import {
|
|
44
|
+
switchSigningChain,
|
|
45
|
+
userEip712TargetChainId,
|
|
46
|
+
} from '../utils/switchChain.js'
|
|
41
47
|
import { createPerpsClient } from './createPerpsClient.js'
|
|
42
48
|
import { requireProvider as resolveProvider } from './requireProvider.js'
|
|
43
49
|
|
|
@@ -75,6 +81,7 @@ export class PerpsClient {
|
|
|
75
81
|
private sdkClient: PerpsSDKClient
|
|
76
82
|
private providerMetadataCache: Map<string, Provider> = new Map()
|
|
77
83
|
private _userWallet: PerpsSDKClient['userWallet'] | undefined
|
|
84
|
+
private _switchChain: SwitchChainHook | undefined
|
|
78
85
|
|
|
79
86
|
constructor(options: PerpsClientOptions) {
|
|
80
87
|
this.sdkClient = createPerpsClient({
|
|
@@ -83,6 +90,7 @@ export class PerpsClient {
|
|
|
83
90
|
apiUrl: options.apiUrl,
|
|
84
91
|
providers: options.providers,
|
|
85
92
|
})
|
|
93
|
+
this._switchChain = options.switchChain
|
|
86
94
|
}
|
|
87
95
|
|
|
88
96
|
/**
|
|
@@ -99,6 +107,17 @@ export class PerpsClient {
|
|
|
99
107
|
})
|
|
100
108
|
}
|
|
101
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Set or replace the wallet chain-switch hook invoked before a USER-signed
|
|
112
|
+
* EIP-712 action is signed. Mirrors {@link setUserWallet}. Pass undefined to
|
|
113
|
+
* clear — cleared, a wallet on the wrong chain signs offline without a switch.
|
|
114
|
+
*
|
|
115
|
+
* @public
|
|
116
|
+
*/
|
|
117
|
+
setSwitchChain(switchChain: SwitchChainHook | undefined): void {
|
|
118
|
+
this._switchChain = switchChain
|
|
119
|
+
}
|
|
120
|
+
|
|
102
121
|
/**
|
|
103
122
|
* The underlying low-level {@link PerpsSDKClient} (config, user wallet,
|
|
104
123
|
* provider registry) backing this instance.
|
|
@@ -185,14 +204,37 @@ export class PerpsClient {
|
|
|
185
204
|
`signingMethod '${descriptor.signingMethod}'.`
|
|
186
205
|
)
|
|
187
206
|
}
|
|
207
|
+
const userWallet = await this.resolveSigningWallet(descriptor, actions)
|
|
188
208
|
return plugin.signActions(
|
|
189
209
|
descriptor.signingMethod,
|
|
190
210
|
actions,
|
|
191
211
|
address,
|
|
192
|
-
this.buildSignActionsContext(descriptor)
|
|
212
|
+
this.buildSignActionsContext(descriptor, userWallet)
|
|
193
213
|
)
|
|
194
214
|
}
|
|
195
215
|
|
|
216
|
+
/**
|
|
217
|
+
* Resolve the wallet that signs `actions`. For a USER-signed EIP-712 batch,
|
|
218
|
+
* switch the configured wallet to the action's target chain via the
|
|
219
|
+
* `switchChain` hook and return the switched client; the switch is transient
|
|
220
|
+
* — `sdkClient.userWallet` is never mutated. All other batches (agent-signed,
|
|
221
|
+
* non-EIP-712, or no configured wallet) return the configured wallet as-is.
|
|
222
|
+
*/
|
|
223
|
+
private async resolveSigningWallet(
|
|
224
|
+
descriptor: ProviderAction,
|
|
225
|
+
actions: ActionStep[]
|
|
226
|
+
): Promise<PerpsClientSigner | undefined> {
|
|
227
|
+
const wallet = this.sdkClient.userWallet
|
|
228
|
+
if (!wallet) {
|
|
229
|
+
return undefined
|
|
230
|
+
}
|
|
231
|
+
const targetChainId = userEip712TargetChainId(descriptor, actions)
|
|
232
|
+
if (targetChainId === undefined) {
|
|
233
|
+
return wallet
|
|
234
|
+
}
|
|
235
|
+
return switchSigningChain(wallet, targetChainId, this._switchChain)
|
|
236
|
+
}
|
|
237
|
+
|
|
196
238
|
/**
|
|
197
239
|
* Assemble the per-call context the provider plugin needs in order to sign:
|
|
198
240
|
* the end-user's wallet and the descriptor's declared `signers`. Core
|
|
@@ -200,13 +242,29 @@ export class PerpsClient {
|
|
|
200
242
|
* branch on them. Provider-owned session credentials (the Hyperliquid agent
|
|
201
243
|
* keypair, Lighter's API key) are resolved inside the provider's
|
|
202
244
|
* `signActions`, not threaded through here.
|
|
245
|
+
*
|
|
246
|
+
* `userWallet` overrides the configured wallet for this signing pass only —
|
|
247
|
+
* `resolveSigningWallet` supplies the chain-switched client without mutating
|
|
248
|
+
* `sdkClient.userWallet`.
|
|
249
|
+
*
|
|
250
|
+
* When a `switchChain` hook is configured, `switchToChain` is bound to the
|
|
251
|
+
* resolved wallet so a plugin can switch per leg mid-batch (Lighter's
|
|
252
|
+
* `EVM_TX` broadcasts); the switch stays transient — it never mutates
|
|
253
|
+
* `sdkClient.userWallet`.
|
|
203
254
|
*/
|
|
204
255
|
private buildSignActionsContext(
|
|
205
|
-
descriptor: ProviderAction
|
|
256
|
+
descriptor: ProviderAction,
|
|
257
|
+
userWallet?: PerpsClientSigner
|
|
206
258
|
): SignActionsContext {
|
|
207
259
|
const ctx: SignActionsContext = { signers: descriptor.signers }
|
|
208
|
-
|
|
209
|
-
|
|
260
|
+
const wallet = userWallet ?? this.sdkClient.userWallet
|
|
261
|
+
if (wallet !== undefined) {
|
|
262
|
+
ctx.userWallet = wallet
|
|
263
|
+
const switchChain = this._switchChain
|
|
264
|
+
if (switchChain !== undefined) {
|
|
265
|
+
ctx.switchToChain = (chainId) =>
|
|
266
|
+
switchSigningChain(wallet, chainId, switchChain)
|
|
267
|
+
}
|
|
210
268
|
}
|
|
211
269
|
return ctx
|
|
212
270
|
}
|
|
@@ -222,9 +280,8 @@ export class PerpsClient {
|
|
|
222
280
|
* no backend-bound step to submit.
|
|
223
281
|
*
|
|
224
282
|
* @throws {PerpsError} When the step's action is not declared by the provider.
|
|
225
|
-
* @public
|
|
226
283
|
*/
|
|
227
|
-
async signProviderSetupAction(
|
|
284
|
+
private async signProviderSetupAction(
|
|
228
285
|
provider: string,
|
|
229
286
|
address: Address,
|
|
230
287
|
step: ActionStep
|
|
@@ -408,10 +465,8 @@ export class PerpsClient {
|
|
|
408
465
|
* caller / `signProviderSetupAction`). Routes the batch on the first step's
|
|
409
466
|
* action and lets the plugin contribute that action's `signerAddress`.
|
|
410
467
|
* Throws on any per-step venue rejection.
|
|
411
|
-
*
|
|
412
|
-
* @public
|
|
413
468
|
*/
|
|
414
|
-
async executeProviderSetup(
|
|
469
|
+
private async executeProviderSetup(
|
|
415
470
|
params: ExecuteProviderSetupParams
|
|
416
471
|
): Promise<ExecuteProviderSetupResult> {
|
|
417
472
|
const { provider, address, setup, signedActions } = params
|
|
@@ -640,6 +695,28 @@ export class PerpsClient {
|
|
|
640
695
|
})
|
|
641
696
|
}
|
|
642
697
|
|
|
698
|
+
/**
|
|
699
|
+
* Move collateral between DEXes within the provider account. Convenience
|
|
700
|
+
* wrapper over {@link execute} with `ActionType.SEND_ASSET`; like
|
|
701
|
+
* {@link withdraw} it returns the raw {@link ExecuteActionResponse} and does
|
|
702
|
+
* not throw on a venue rejection.
|
|
703
|
+
*
|
|
704
|
+
* @throws {PerpsError} When the provider is unregistered or the action
|
|
705
|
+
* cannot be signed/submitted.
|
|
706
|
+
* @public
|
|
707
|
+
*/
|
|
708
|
+
async sendAsset(
|
|
709
|
+
params: SendAssetActionParams
|
|
710
|
+
): Promise<ExecuteActionResponse> {
|
|
711
|
+
const { provider, address, ...sendAsset } = params
|
|
712
|
+
return this.execute({
|
|
713
|
+
provider,
|
|
714
|
+
address,
|
|
715
|
+
action: ActionType.SEND_ASSET,
|
|
716
|
+
params: sendAsset,
|
|
717
|
+
})
|
|
718
|
+
}
|
|
719
|
+
|
|
643
720
|
/**
|
|
644
721
|
* Execute any action through the SDK's signing pipeline: fetch the unsigned
|
|
645
722
|
* steps, delegate signing to the provider plugin (which branches on the
|
package/src/index.ts
CHANGED
|
@@ -90,8 +90,6 @@ export {
|
|
|
90
90
|
export type {
|
|
91
91
|
BuildProviderSetupParams,
|
|
92
92
|
CancelOrdersParams,
|
|
93
|
-
ExecuteProviderSetupParams,
|
|
94
|
-
ExecuteProviderSetupResult,
|
|
95
93
|
GetAccountResult,
|
|
96
94
|
GetSetupParams,
|
|
97
95
|
ModifyOrdersParams,
|
|
@@ -100,6 +98,8 @@ export type {
|
|
|
100
98
|
PlaceOrderParams as ClientPlaceOrderParams,
|
|
101
99
|
PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams,
|
|
102
100
|
ProviderSetup,
|
|
101
|
+
SendAssetActionParams,
|
|
102
|
+
WithdrawParams,
|
|
103
103
|
} from './types/api.js'
|
|
104
104
|
export type {
|
|
105
105
|
HyperliquidConfig,
|
|
@@ -109,6 +109,7 @@ export type {
|
|
|
109
109
|
ProviderConfigs,
|
|
110
110
|
RequestInterceptor,
|
|
111
111
|
SDKRequestOptions,
|
|
112
|
+
SwitchChainHook,
|
|
112
113
|
} from './types/config.js'
|
|
113
114
|
export type {
|
|
114
115
|
ActionSignerContribution,
|