@lifi/perps-sdk 6.0.0 → 6.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.map +1 -1
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
- package/dist/cjs/errors/PerpsError.js.map +1 -1
- package/dist/cjs/registry/assetRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/assetRegistry.js.map +1 -1
- package/dist/cjs/registry/marketRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/marketRegistry.js.map +1 -1
- package/dist/cjs/services/createAction.d.ts.map +1 -1
- package/dist/cjs/services/createAction.js.map +1 -1
- package/dist/cjs/services/executeAction.d.ts.map +1 -1
- package/dist/cjs/services/executeAction.js.map +1 -1
- package/dist/cjs/services/getActivity.d.ts.map +1 -1
- package/dist/cjs/services/getActivity.js.map +1 -1
- package/dist/cjs/services/getFills.d.ts.map +1 -1
- package/dist/cjs/services/getFills.js.map +1 -1
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
- package/dist/cjs/services/getOhlcv.js.map +1 -1
- package/dist/cjs/services/getOrder.d.ts.map +1 -1
- package/dist/cjs/services/getOrder.js.map +1 -1
- package/dist/cjs/services/getOrders.d.ts.map +1 -1
- package/dist/cjs/services/getOrders.js.map +1 -1
- package/dist/cjs/services/getPositions.d.ts.map +1 -1
- package/dist/cjs/services/getPositions.js.map +1 -1
- package/dist/cjs/services/getQuote.d.ts.map +1 -1
- package/dist/cjs/services/getQuote.js.map +1 -1
- package/dist/cjs/storage/parseStoredRecord.d.ts.map +1 -1
- package/dist/cjs/storage/parseStoredRecord.js.map +1 -1
- package/dist/cjs/storage/types.d.ts.map +1 -1
- package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -1
- package/dist/cjs/transport/fetchWithRetry.js.map +1 -1
- package/dist/cjs/transport/retryPolicy.d.ts.map +1 -1
- package/dist/cjs/transport/retryPolicy.js.map +1 -1
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/config.d.ts.map +1 -1
- package/dist/cjs/types/deposit.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/utils/calculations.d.ts.map +1 -1
- package/dist/cjs/utils/calculations.js.map +1 -1
- package/dist/cjs/utils/format.d.ts.map +1 -1
- package/dist/cjs/utils/format.js.map +1 -1
- package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
- package/dist/cjs/utils/orderClassification.js.map +1 -1
- package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
- package/dist/cjs/utils/transferMargin.js +1 -3
- package/dist/cjs/utils/transferMargin.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
- package/dist/cjs/websocket/ReconnectingWebSocket.d.ts.map +1 -1
- package/dist/cjs/websocket/ReconnectingWebSocket.js.map +1 -1
- package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/cjs/websocket/WsProviderBase.js.map +1 -1
- package/dist/cjs/websocket/cachePromise.d.ts.map +1 -1
- package/dist/cjs/websocket/cachePromise.js.map +1 -1
- package/dist/cjs/websocket/types.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +2 -0
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +2 -0
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/errors/PerpsError.d.ts +7 -0
- package/dist/esm/errors/PerpsError.d.ts.map +1 -1
- package/dist/esm/errors/PerpsError.js +7 -0
- package/dist/esm/errors/PerpsError.js.map +1 -1
- package/dist/esm/registry/assetRegistry.d.ts +5 -1
- package/dist/esm/registry/assetRegistry.d.ts.map +1 -1
- package/dist/esm/registry/assetRegistry.js +5 -1
- package/dist/esm/registry/assetRegistry.js.map +1 -1
- package/dist/esm/registry/marketRegistry.d.ts +19 -5
- package/dist/esm/registry/marketRegistry.d.ts.map +1 -1
- package/dist/esm/registry/marketRegistry.js +19 -5
- package/dist/esm/registry/marketRegistry.js.map +1 -1
- package/dist/esm/services/createAction.d.ts +2 -0
- package/dist/esm/services/createAction.d.ts.map +1 -1
- package/dist/esm/services/createAction.js.map +1 -1
- package/dist/esm/services/executeAction.d.ts +2 -0
- package/dist/esm/services/executeAction.d.ts.map +1 -1
- package/dist/esm/services/executeAction.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts +4 -2
- package/dist/esm/services/getActivity.d.ts.map +1 -1
- package/dist/esm/services/getActivity.js.map +1 -1
- package/dist/esm/services/getFills.d.ts +4 -2
- package/dist/esm/services/getFills.d.ts.map +1 -1
- package/dist/esm/services/getFills.js.map +1 -1
- package/dist/esm/services/getMarkets.d.ts +1 -1
- package/dist/esm/services/getMarkets.d.ts.map +1 -1
- package/dist/esm/services/getMarketsContext.d.ts +1 -1
- package/dist/esm/services/getMarketsContext.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.d.ts +4 -3
- package/dist/esm/services/getOhlcv.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.js.map +1 -1
- package/dist/esm/services/getOrder.d.ts +1 -0
- package/dist/esm/services/getOrder.d.ts.map +1 -1
- package/dist/esm/services/getOrder.js.map +1 -1
- package/dist/esm/services/getOrderbook.d.ts +2 -2
- package/dist/esm/services/getOrderbook.d.ts.map +1 -1
- package/dist/esm/services/getOrders.d.ts +3 -1
- package/dist/esm/services/getOrders.d.ts.map +1 -1
- package/dist/esm/services/getOrders.js.map +1 -1
- package/dist/esm/services/getPositions.d.ts +3 -1
- package/dist/esm/services/getPositions.d.ts.map +1 -1
- package/dist/esm/services/getPositions.js.map +1 -1
- package/dist/esm/services/getQuote.d.ts +3 -1
- package/dist/esm/services/getQuote.d.ts.map +1 -1
- package/dist/esm/services/getQuote.js.map +1 -1
- package/dist/esm/storage/parseStoredRecord.d.ts +4 -0
- package/dist/esm/storage/parseStoredRecord.d.ts.map +1 -1
- package/dist/esm/storage/parseStoredRecord.js +4 -0
- package/dist/esm/storage/parseStoredRecord.js.map +1 -1
- package/dist/esm/storage/types.d.ts +10 -6
- package/dist/esm/storage/types.d.ts.map +1 -1
- package/dist/esm/transport/fetchWithRetry.d.ts +3 -0
- package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -1
- package/dist/esm/transport/fetchWithRetry.js.map +1 -1
- package/dist/esm/transport/retryPolicy.d.ts +20 -0
- package/dist/esm/transport/retryPolicy.d.ts.map +1 -1
- package/dist/esm/transport/retryPolicy.js.map +1 -1
- package/dist/esm/types/api.d.ts +24 -9
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/config.d.ts +10 -0
- package/dist/esm/types/config.d.ts.map +1 -1
- package/dist/esm/types/deposit.d.ts +9 -3
- package/dist/esm/types/deposit.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +34 -17
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/utils/calculations.d.ts +2 -0
- package/dist/esm/utils/calculations.d.ts.map +1 -1
- package/dist/esm/utils/calculations.js.map +1 -1
- package/dist/esm/utils/format.d.ts +5 -1
- package/dist/esm/utils/format.d.ts.map +1 -1
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/utils/orderClassification.d.ts +5 -0
- package/dist/esm/utils/orderClassification.d.ts.map +1 -1
- package/dist/esm/utils/orderClassification.js +5 -0
- package/dist/esm/utils/orderClassification.js.map +1 -1
- package/dist/esm/utils/transferMargin.d.ts.map +1 -1
- package/dist/esm/utils/transferMargin.js +2 -4
- package/dist/esm/utils/transferMargin.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts +0 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
- package/dist/esm/websocket/ReconnectingWebSocket.d.ts +5 -3
- package/dist/esm/websocket/ReconnectingWebSocket.d.ts.map +1 -1
- package/dist/esm/websocket/ReconnectingWebSocket.js.map +1 -1
- package/dist/esm/websocket/WsProviderBase.d.ts +17 -0
- package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/esm/websocket/WsProviderBase.js +17 -0
- package/dist/esm/websocket/WsProviderBase.js.map +1 -1
- package/dist/esm/websocket/cachePromise.d.ts +2 -0
- package/dist/esm/websocket/cachePromise.d.ts.map +1 -1
- package/dist/esm/websocket/cachePromise.js +2 -0
- package/dist/esm/websocket/cachePromise.js.map +1 -1
- package/dist/esm/websocket/types.d.ts +5 -0
- package/dist/esm/websocket/types.d.ts.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +2 -0
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/errors/PerpsError.d.ts +7 -0
- package/dist/types/errors/PerpsError.d.ts.map +1 -1
- package/dist/types/registry/assetRegistry.d.ts +5 -1
- package/dist/types/registry/assetRegistry.d.ts.map +1 -1
- package/dist/types/registry/marketRegistry.d.ts +19 -5
- package/dist/types/registry/marketRegistry.d.ts.map +1 -1
- package/dist/types/services/createAction.d.ts +2 -0
- package/dist/types/services/createAction.d.ts.map +1 -1
- package/dist/types/services/executeAction.d.ts +2 -0
- package/dist/types/services/executeAction.d.ts.map +1 -1
- package/dist/types/services/getActivity.d.ts +4 -2
- package/dist/types/services/getActivity.d.ts.map +1 -1
- package/dist/types/services/getFills.d.ts +4 -2
- package/dist/types/services/getFills.d.ts.map +1 -1
- package/dist/types/services/getMarkets.d.ts +1 -1
- package/dist/types/services/getMarkets.d.ts.map +1 -1
- package/dist/types/services/getMarketsContext.d.ts +1 -1
- package/dist/types/services/getMarketsContext.d.ts.map +1 -1
- package/dist/types/services/getOhlcv.d.ts +4 -3
- package/dist/types/services/getOhlcv.d.ts.map +1 -1
- package/dist/types/services/getOrder.d.ts +1 -0
- package/dist/types/services/getOrder.d.ts.map +1 -1
- package/dist/types/services/getOrderbook.d.ts +2 -2
- package/dist/types/services/getOrderbook.d.ts.map +1 -1
- package/dist/types/services/getOrders.d.ts +3 -1
- package/dist/types/services/getOrders.d.ts.map +1 -1
- package/dist/types/services/getPositions.d.ts +3 -1
- package/dist/types/services/getPositions.d.ts.map +1 -1
- package/dist/types/services/getQuote.d.ts +3 -1
- package/dist/types/services/getQuote.d.ts.map +1 -1
- package/dist/types/storage/parseStoredRecord.d.ts +4 -0
- package/dist/types/storage/parseStoredRecord.d.ts.map +1 -1
- package/dist/types/storage/types.d.ts +10 -6
- package/dist/types/storage/types.d.ts.map +1 -1
- package/dist/types/transport/fetchWithRetry.d.ts +3 -0
- package/dist/types/transport/fetchWithRetry.d.ts.map +1 -1
- package/dist/types/transport/retryPolicy.d.ts +20 -0
- package/dist/types/transport/retryPolicy.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +24 -9
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/config.d.ts +10 -0
- package/dist/types/types/config.d.ts.map +1 -1
- package/dist/types/types/deposit.d.ts +9 -3
- package/dist/types/types/deposit.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +34 -17
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/utils/calculations.d.ts +2 -0
- package/dist/types/utils/calculations.d.ts.map +1 -1
- package/dist/types/utils/format.d.ts +5 -1
- package/dist/types/utils/format.d.ts.map +1 -1
- package/dist/types/utils/orderClassification.d.ts +5 -0
- package/dist/types/utils/orderClassification.d.ts.map +1 -1
- package/dist/types/utils/transferMargin.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/websocket/PerpsWsClient.d.ts +0 -1
- package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/types/websocket/ReconnectingWebSocket.d.ts +5 -3
- package/dist/types/websocket/ReconnectingWebSocket.d.ts.map +1 -1
- package/dist/types/websocket/WsProviderBase.d.ts +17 -0
- package/dist/types/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/types/websocket/cachePromise.d.ts +2 -0
- package/dist/types/websocket/cachePromise.d.ts.map +1 -1
- package/dist/types/websocket/types.d.ts +5 -0
- package/dist/types/websocket/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +2 -0
- package/src/errors/PerpsError.ts +7 -0
- package/src/registry/assetRegistry.ts +5 -1
- package/src/registry/marketRegistry.ts +19 -5
- package/src/services/createAction.ts +2 -0
- package/src/services/executeAction.ts +2 -0
- package/src/services/getActivity.ts +4 -2
- package/src/services/getFills.ts +4 -2
- package/src/services/getMarkets.ts +1 -1
- package/src/services/getMarketsContext.ts +1 -1
- package/src/services/getOhlcv.ts +4 -3
- package/src/services/getOrder.ts +1 -0
- package/src/services/getOrderbook.ts +2 -2
- package/src/services/getOrders.ts +3 -1
- package/src/services/getPositions.ts +3 -1
- package/src/services/getQuote.ts +3 -1
- package/src/storage/parseStoredRecord.ts +4 -0
- package/src/storage/types.ts +10 -6
- package/src/transport/fetchWithRetry.ts +3 -0
- package/src/transport/retryPolicy.ts +20 -0
- package/src/types/api.ts +24 -9
- package/src/types/config.ts +10 -0
- package/src/types/deposit.ts +9 -3
- package/src/types/provider.ts +34 -17
- package/src/utils/calculations.ts +2 -0
- package/src/utils/format.ts +5 -1
- package/src/utils/orderClassification.ts +5 -0
- package/src/utils/transferMargin.ts +2 -7
- package/src/version.ts +1 -1
- package/src/websocket/PerpsWsClient.ts +0 -1
- package/src/websocket/ReconnectingWebSocket.ts +5 -3
- package/src/websocket/WsProviderBase.ts +17 -0
- package/src/websocket/cachePromise.ts +2 -0
- package/src/websocket/types.ts +5 -0
package/src/types/deposit.ts
CHANGED
|
@@ -9,9 +9,11 @@ import type { Address } from 'viem'
|
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
11
|
export interface DeclaredDepositAsset {
|
|
12
|
+
/** EVM chain id on which the asset is held or broadcast. */
|
|
12
13
|
chainId: number
|
|
13
|
-
/** EIP-55 checksummed address; the zero address denotes
|
|
14
|
+
/** EIP-55 checksummed address; the zero address denotes native gas. */
|
|
14
15
|
address: Address
|
|
16
|
+
/** Decimal places used by the token; native gas assets use 18. */
|
|
15
17
|
decimals: number
|
|
16
18
|
}
|
|
17
19
|
|
|
@@ -25,6 +27,7 @@ export interface DeclaredDepositAsset {
|
|
|
25
27
|
*/
|
|
26
28
|
export interface DepositFlowLifiSwap {
|
|
27
29
|
kind: 'lifiSwap'
|
|
30
|
+
/** Destination collateral token and its full chain identity. */
|
|
28
31
|
destination: DeclaredDepositAsset
|
|
29
32
|
/**
|
|
30
33
|
* Credited address when it is not the user's own — a venue-provisioned
|
|
@@ -43,10 +46,13 @@ export interface DepositFlowLifiSwap {
|
|
|
43
46
|
*/
|
|
44
47
|
export interface DepositFlowFirstDepositPipeline {
|
|
45
48
|
kind: 'firstDepositPipeline'
|
|
46
|
-
/** Chain the deposit legs broadcast
|
|
49
|
+
/** Chain on which the deposit legs broadcast; the wallet must be switched here. */
|
|
47
50
|
chainId: number
|
|
51
|
+
/** Native gas asset needed to broadcast the deposit legs. */
|
|
48
52
|
gasAsset: DeclaredDepositAsset
|
|
53
|
+
/** Collateral asset credited by the first deposit. */
|
|
49
54
|
collateral: DeclaredDepositAsset
|
|
55
|
+
/** Action type used to stage the deposit pipeline. */
|
|
50
56
|
bridgeAction: ActionType.DEPOSIT
|
|
51
57
|
}
|
|
52
58
|
|
|
@@ -59,7 +65,7 @@ export interface DepositFlowFirstDepositPipeline {
|
|
|
59
65
|
*/
|
|
60
66
|
export interface DepositFlowSetupRequired {
|
|
61
67
|
kind: 'setupRequired'
|
|
62
|
-
/**
|
|
68
|
+
/** Setup action types that must be completed, in execution order. */
|
|
63
69
|
setup: ActionType[]
|
|
64
70
|
}
|
|
65
71
|
|
package/src/types/provider.ts
CHANGED
|
@@ -43,22 +43,14 @@ import type { DepositFlow } from './deposit.js'
|
|
|
43
43
|
*/
|
|
44
44
|
export interface PerpsSDKClient {
|
|
45
45
|
readonly config: PerpsBaseConfig
|
|
46
|
-
/**
|
|
46
|
+
/** End-user wallet for USER-signed or on-chain EVM legs, when configured. */
|
|
47
47
|
readonly userWallet?: PerpsClientSigner
|
|
48
|
-
/**
|
|
48
|
+
/** Providers bound to this client, in registration order. */
|
|
49
49
|
readonly providers: PerpsProvider[]
|
|
50
|
-
/** Look up a
|
|
50
|
+
/** Look up a bound provider by its wire `type` key. */
|
|
51
51
|
getProvider(key: string): PerpsProvider | undefined
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
/**
|
|
55
|
-
* Per-call context passed by `PerpsClient` to a provider's {@link
|
|
56
|
-
* PerpsProvider.signActions} method. Carries the end-user's wallet (when
|
|
57
|
-
* configured); providers that own a session credential (e.g. the Hyperliquid
|
|
58
|
-
* agent keypair, Lighter's API key) resolve it internally.
|
|
59
|
-
*
|
|
60
|
-
* @public
|
|
61
|
-
*/
|
|
62
54
|
/**
|
|
63
55
|
* Progress for one on-chain leg of an `EVM_TX` batch (e.g. a native deposit's
|
|
64
56
|
* `approve` then `deposit`). Emitted twice per leg: `submitted` once the wallet
|
|
@@ -68,19 +60,26 @@ export interface PerpsSDKClient {
|
|
|
68
60
|
* @public
|
|
69
61
|
*/
|
|
70
62
|
export interface SignActionProgress {
|
|
71
|
-
/** 0-based index of this leg within the batch. */
|
|
72
63
|
index: number
|
|
73
|
-
/** Total legs in the batch. */
|
|
74
64
|
total: number
|
|
75
65
|
action: ActionType
|
|
76
|
-
/** Contract function the leg invokes, e.g. `"approve"` or the deposit method. */
|
|
77
66
|
functionName: string
|
|
78
67
|
chainId: number
|
|
68
|
+
/** Whether the transaction was broadcast or its receipt confirmed. */
|
|
79
69
|
status: 'submitted' | 'confirmed'
|
|
80
70
|
txHash: string
|
|
81
71
|
}
|
|
82
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Per-call context passed by `PerpsClient` to a provider's
|
|
75
|
+
* {@link PerpsProviderPlugin.signActions} implementation. Carries the
|
|
76
|
+
* configured end-user wallet, descriptor-declared signer roles, an optional
|
|
77
|
+
* chain-switch helper, and an optional progress callback.
|
|
78
|
+
*
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
83
81
|
export interface SignActionsContext {
|
|
82
|
+
/** End-user wallet used for USER-signed or EVM transaction legs. */
|
|
84
83
|
userWallet?: PerpsClientSigner
|
|
85
84
|
/**
|
|
86
85
|
* The signing batch's declared signers, from the action's `ProviderAction`
|
|
@@ -142,8 +141,10 @@ export interface ActionSignerContribution {
|
|
|
142
141
|
* @public
|
|
143
142
|
*/
|
|
144
143
|
export interface LiquidationEstimateParams {
|
|
144
|
+
/** Entry price in quote currency per base unit. */
|
|
145
145
|
entryPrice: number
|
|
146
146
|
leverage: number
|
|
147
|
+
/** `true` for long, `false` for short. */
|
|
147
148
|
isLong: boolean
|
|
148
149
|
}
|
|
149
150
|
|
|
@@ -182,9 +183,11 @@ export interface ProviderGetDepositFlowParams {
|
|
|
182
183
|
*/
|
|
183
184
|
export interface ProviderGetPositionsParams {
|
|
184
185
|
address: Address
|
|
185
|
-
/** Optional
|
|
186
|
+
/** Optional opaque `Market.id` filter (not a display symbol). */
|
|
186
187
|
marketId?: string
|
|
188
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
187
189
|
limit?: number
|
|
190
|
+
/** Opaque pagination cursor from the previous response. */
|
|
188
191
|
cursor?: string
|
|
189
192
|
}
|
|
190
193
|
|
|
@@ -207,9 +210,11 @@ export interface ProviderGetMarketSettingsParams {
|
|
|
207
210
|
*/
|
|
208
211
|
export interface ProviderGetOrdersParams {
|
|
209
212
|
address: Address
|
|
210
|
-
/** Optional
|
|
213
|
+
/** Optional opaque `Market.id` filter (not a display symbol). */
|
|
211
214
|
marketId?: string
|
|
215
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
212
216
|
limit?: number
|
|
217
|
+
/** Opaque pagination cursor from the previous response. */
|
|
213
218
|
cursor?: string
|
|
214
219
|
}
|
|
215
220
|
|
|
@@ -220,6 +225,7 @@ export interface ProviderGetOrdersParams {
|
|
|
220
225
|
*/
|
|
221
226
|
export interface ProviderGetOrderParams {
|
|
222
227
|
address: Address
|
|
228
|
+
/** Venue order id, opaque to the SDK. */
|
|
223
229
|
id: string
|
|
224
230
|
}
|
|
225
231
|
|
|
@@ -230,9 +236,13 @@ export interface ProviderGetOrderParams {
|
|
|
230
236
|
*/
|
|
231
237
|
export interface ProviderGetFillsParams {
|
|
232
238
|
address: Address
|
|
239
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
233
240
|
limit?: number
|
|
241
|
+
/** Opaque pagination cursor from the previous response. */
|
|
234
242
|
cursor?: string
|
|
243
|
+
/** Include fills at or after this Unix timestamp in milliseconds. */
|
|
235
244
|
startTime?: number
|
|
245
|
+
/** Include fills at or before this Unix timestamp in milliseconds. */
|
|
236
246
|
endTime?: number
|
|
237
247
|
}
|
|
238
248
|
|
|
@@ -243,10 +253,15 @@ export interface ProviderGetFillsParams {
|
|
|
243
253
|
*/
|
|
244
254
|
export interface ProviderGetActivityParams {
|
|
245
255
|
address: Address
|
|
256
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
246
257
|
limit?: number
|
|
258
|
+
/** Opaque pagination cursor from the previous response. */
|
|
247
259
|
cursor?: string
|
|
260
|
+
/** Include activity at or after this Unix timestamp in milliseconds. */
|
|
248
261
|
startTime?: number
|
|
262
|
+
/** Include activity at or before this Unix timestamp in milliseconds. */
|
|
249
263
|
endTime?: number
|
|
264
|
+
/** Optional filter for activity types. */
|
|
250
265
|
type?: ActivityType[]
|
|
251
266
|
}
|
|
252
267
|
|
|
@@ -257,11 +272,13 @@ export interface ProviderGetActivityParams {
|
|
|
257
272
|
* @public
|
|
258
273
|
*/
|
|
259
274
|
export interface ProviderGetQuoteParams {
|
|
260
|
-
/** Human `displaySymbol`,
|
|
275
|
+
/** Human `displaySymbol`, resolved against this provider and `type`. */
|
|
261
276
|
symbol: string
|
|
277
|
+
/** Trade direction used to choose asks for buys or bids for sells. */
|
|
262
278
|
side: QuoteSide
|
|
263
279
|
/** USD notional to fill. */
|
|
264
280
|
size: number
|
|
281
|
+
/** Product family used to disambiguate spot and perpetual markets. */
|
|
265
282
|
type: TradeType
|
|
266
283
|
}
|
|
267
284
|
|
|
@@ -175,7 +175,9 @@ export function effectiveLeverage(params: {
|
|
|
175
175
|
* @public
|
|
176
176
|
*/
|
|
177
177
|
export interface ExpectedPnl {
|
|
178
|
+
/** Signed expected profit/loss in USD. */
|
|
178
179
|
amount: number
|
|
180
|
+
/** Signed expected return as a percentage (10 means 10%). */
|
|
179
181
|
percent: number
|
|
180
182
|
}
|
|
181
183
|
|
package/src/utils/format.ts
CHANGED
|
@@ -19,7 +19,11 @@ export interface FormatOptions {
|
|
|
19
19
|
rounding?: RoundingMode
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Rounding mode for {@link FormatOptions.rounding}.
|
|
24
|
+
*
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
23
27
|
export type RoundingMode = 'halfUp' | 'floor'
|
|
24
28
|
|
|
25
29
|
const DEFAULT_PLACEHOLDER = '—'
|
|
@@ -15,6 +15,11 @@ import {
|
|
|
15
15
|
} from '@lifi/perps-types'
|
|
16
16
|
import { stringToFloat } from './parse.js'
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
|
|
20
|
+
*
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
18
23
|
export { FillClassification }
|
|
19
24
|
|
|
20
25
|
const TP_TYPES = new Set<OrderType>([
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
MarginMode,
|
|
3
2
|
PerpsErrorCode,
|
|
4
3
|
type Position,
|
|
5
|
-
PositionMarginAdjustment,
|
|
6
4
|
type PositionMarginConstraints,
|
|
5
|
+
positionSupportsMarginRemoval,
|
|
7
6
|
} from '@lifi/perps-types'
|
|
8
7
|
import Big from 'big.js'
|
|
9
8
|
import { PerpsError } from '../errors/PerpsError.js'
|
|
@@ -66,11 +65,7 @@ export function removableIsolatedMargin({
|
|
|
66
65
|
position,
|
|
67
66
|
constraints,
|
|
68
67
|
}: RemovableIsolatedMarginParams): string {
|
|
69
|
-
if (
|
|
70
|
-
position.marginMode !== MarginMode.ISOLATED ||
|
|
71
|
-
position.market.positionMarginAdjustment !==
|
|
72
|
-
PositionMarginAdjustment.ADD_AND_REMOVE
|
|
73
|
-
) {
|
|
68
|
+
if (!positionSupportsMarginRemoval(position)) {
|
|
74
69
|
return '0'
|
|
75
70
|
}
|
|
76
71
|
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/perps-sdk'
|
|
2
|
-
export const version = '6.
|
|
2
|
+
export const version = '6.1.0'
|
|
@@ -44,7 +44,9 @@ const WS_PROVIDER_KEY = 'reconnecting-websocket'
|
|
|
44
44
|
* @public
|
|
45
45
|
*/
|
|
46
46
|
export interface ReconnectingWebSocketOptions {
|
|
47
|
+
/** Maximum reconnect attempts before status becomes `disconnected`; defaults to 10. */
|
|
47
48
|
maxRetries?: number
|
|
49
|
+
/** Keepalive interval in milliseconds; defaults to 30,000. */
|
|
48
50
|
pingIntervalMs?: number
|
|
49
51
|
/**
|
|
50
52
|
* Keepalive frame sent every `pingIntervalMs` while the socket is open.
|
|
@@ -52,9 +54,9 @@ export interface ReconnectingWebSocketOptions {
|
|
|
52
54
|
*/
|
|
53
55
|
pingPayload?: string
|
|
54
56
|
/**
|
|
55
|
-
* Stale-stream watchdog window. With `pingPayload` configured,
|
|
56
|
-
* force-reconnected when no inbound frame arrives within this
|
|
57
|
-
* Defaults to 3× `pingIntervalMs`.
|
|
57
|
+
* Stale-stream watchdog window in milliseconds. With `pingPayload` configured,
|
|
58
|
+
* the socket is force-reconnected when no inbound frame arrives within this
|
|
59
|
+
* window. Defaults to 3× `pingIntervalMs`.
|
|
58
60
|
*/
|
|
59
61
|
staleWindowMs?: number
|
|
60
62
|
}
|
|
@@ -76,6 +76,13 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
|
|
|
76
76
|
})
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Acquire a ref-counted subscription to a provider channel and return an
|
|
81
|
+
* idempotent release function. Optional status listeners are reference-counted
|
|
82
|
+
* alongside the channel listener.
|
|
83
|
+
*
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
79
86
|
async subscribe(
|
|
80
87
|
sub: Subscription,
|
|
81
88
|
listener: SubscriptionListener,
|
|
@@ -112,6 +119,11 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
|
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Reconnect the underlying socket only when it is terminally disconnected.
|
|
124
|
+
*
|
|
125
|
+
* @public
|
|
126
|
+
*/
|
|
115
127
|
reconnect(): void {
|
|
116
128
|
if (this.rws.getStatus() !== 'disconnected') {
|
|
117
129
|
return
|
|
@@ -119,6 +131,11 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
|
|
|
119
131
|
this.rws.reconnect()
|
|
120
132
|
}
|
|
121
133
|
|
|
134
|
+
/**
|
|
135
|
+
* Release all channel and status listeners and close the underlying socket.
|
|
136
|
+
*
|
|
137
|
+
* @public
|
|
138
|
+
*/
|
|
122
139
|
close(): void {
|
|
123
140
|
for (const entry of this.channels.values()) {
|
|
124
141
|
if (entry.pendingTeardown !== undefined) {
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
* @param read - Returns the currently cached promise, or `undefined` if none.
|
|
10
10
|
* @param write - Stores (or with `undefined`, clears) the cached promise.
|
|
11
11
|
* @param factory - Creates the promise when the slot is empty.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
12
14
|
*/
|
|
13
15
|
export function cachePromise<T>(
|
|
14
16
|
read: () => Promise<T> | undefined,
|
package/src/websocket/types.ts
CHANGED
|
@@ -50,6 +50,10 @@ export type WsStatusListener = (status: WsConnectionStatus) => void
|
|
|
50
50
|
* @public
|
|
51
51
|
*/
|
|
52
52
|
export interface WsProvider {
|
|
53
|
+
/**
|
|
54
|
+
* Subscribe to one venue channel and return an idempotent unsubscribe.
|
|
55
|
+
* `onStatus` receives the provider socket's health transitions.
|
|
56
|
+
*/
|
|
53
57
|
subscribe(
|
|
54
58
|
sub: Subscription,
|
|
55
59
|
listener: SubscriptionListener,
|
|
@@ -71,5 +75,6 @@ export interface WsProvider {
|
|
|
71
75
|
params: ProviderGetQuoteParams,
|
|
72
76
|
onQuote: QuoteListener
|
|
73
77
|
): Promise<() => void>
|
|
78
|
+
/** Permanently close the provider's realtime connection. */
|
|
74
79
|
close(): void
|
|
75
80
|
}
|