@lifi/perps-sdk-provider-lighter 1.3.0 → 1.4.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/LighterProvider.d.ts.map +1 -1
- package/dist/cjs/LighterProvider.js +13 -0
- package/dist/cjs/LighterProvider.js.map +1 -1
- package/dist/cjs/accountConfig.d.ts.map +1 -1
- package/dist/cjs/accountConfig.js +1 -0
- package/dist/cjs/accountConfig.js.map +1 -1
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts +0 -1
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js +3 -3
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js.map +1 -1
- package/dist/cjs/signers/LighterSigner.d.ts.map +1 -1
- package/dist/cjs/signers/LighterSigner.js +2 -2
- package/dist/cjs/signers/LighterSigner.js.map +1 -1
- package/dist/cjs/signers/index.d.ts +1 -1
- package/dist/cjs/signers/index.d.ts.map +1 -1
- package/dist/cjs/signers/index.js +1 -2
- package/dist/cjs/signers/index.js.map +1 -1
- package/dist/cjs/websocket/LighterWsProvider.d.ts.map +1 -1
- package/dist/cjs/websocket/LighterWsProvider.js +1 -2
- package/dist/cjs/websocket/LighterWsProvider.js.map +1 -1
- package/dist/esm/LighterProvider.d.ts.map +1 -1
- package/dist/esm/LighterProvider.js +13 -0
- package/dist/esm/LighterProvider.js.map +1 -1
- package/dist/esm/accountConfig.d.ts.map +1 -1
- package/dist/esm/accountConfig.js +1 -0
- package/dist/esm/accountConfig.js.map +1 -1
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts +1 -7
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
- package/dist/esm/signers/LighterReadOnlyTokenManager.js +2 -7
- package/dist/esm/signers/LighterReadOnlyTokenManager.js.map +1 -1
- package/dist/esm/signers/LighterSigner.d.ts.map +1 -1
- package/dist/esm/signers/LighterSigner.js +2 -2
- package/dist/esm/signers/LighterSigner.js.map +1 -1
- package/dist/esm/signers/index.d.ts +1 -1
- package/dist/esm/signers/index.d.ts.map +1 -1
- package/dist/esm/signers/index.js +1 -1
- package/dist/esm/signers/index.js.map +1 -1
- package/dist/esm/websocket/LighterWsProvider.d.ts.map +1 -1
- package/dist/esm/websocket/LighterWsProvider.js +2 -3
- package/dist/esm/websocket/LighterWsProvider.js.map +1 -1
- package/dist/types/LighterProvider.d.ts.map +1 -1
- package/dist/types/accountConfig.d.ts.map +1 -1
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts +1 -7
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
- package/dist/types/signers/LighterSigner.d.ts.map +1 -1
- package/dist/types/signers/index.d.ts +1 -1
- package/dist/types/signers/index.d.ts.map +1 -1
- package/dist/types/websocket/LighterWsProvider.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/LighterProvider.ts +19 -0
- package/src/accountConfig.ts +1 -0
- package/src/signers/LighterReadOnlyTokenManager.ts +3 -9
- package/src/signers/LighterSigner.ts +2 -2
- package/src/signers/index.ts +0 -1
- package/src/websocket/LighterWsProvider.ts +16 -10
package/src/LighterProvider.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
PerpsError,
|
|
7
7
|
type PerpsProviderPlugin,
|
|
8
8
|
type PerpsSDKClient,
|
|
9
|
+
type ProviderAccountExistsParams,
|
|
9
10
|
type ProviderGetAccountParams,
|
|
10
11
|
type ProviderGetActivityParams,
|
|
11
12
|
type ProviderGetFillsParams,
|
|
@@ -688,6 +689,24 @@ export const lighterProvider = (
|
|
|
688
689
|
}
|
|
689
690
|
},
|
|
690
691
|
|
|
692
|
+
async accountExists(
|
|
693
|
+
params: ProviderAccountExistsParams,
|
|
694
|
+
opts?: SDKRequestOptions
|
|
695
|
+
): Promise<boolean> {
|
|
696
|
+
try {
|
|
697
|
+
await fetchDetailedAccount(apiClient(opts), params.address)
|
|
698
|
+
return true
|
|
699
|
+
} catch (err) {
|
|
700
|
+
if (
|
|
701
|
+
err instanceof PerpsError &&
|
|
702
|
+
err.code === PerpsErrorCode.AccountNotFound
|
|
703
|
+
) {
|
|
704
|
+
return false
|
|
705
|
+
}
|
|
706
|
+
throw err
|
|
707
|
+
}
|
|
708
|
+
},
|
|
709
|
+
|
|
691
710
|
async getPositions(
|
|
692
711
|
params: ProviderGetPositionsParams,
|
|
693
712
|
opts?: SDKRequestOptions
|
package/src/accountConfig.ts
CHANGED
|
@@ -10,16 +10,10 @@ import type {
|
|
|
10
10
|
} from '@lifi/perps-types'
|
|
11
11
|
import { PerpsErrorCode } from '@lifi/perps-types'
|
|
12
12
|
import type { Address } from 'viem'
|
|
13
|
+
import { DEFAULT_LIGHTER_REST_URL } from '../constants.js'
|
|
13
14
|
|
|
14
15
|
const STORAGE_PREFIX = 'lifi:perps:lighter:rotoken'
|
|
15
16
|
|
|
16
|
-
/**
|
|
17
|
-
* Default Lighter HTTP host the SDK posts the create request to. Callers
|
|
18
|
-
* pointing at testnet pass an override via {@link LighterReadOnlyTokenManagerOptions.lighterApiUrl}.
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
export const DEFAULT_LIGHTER_API_URL = 'https://mainnet.zklighter.elliot.ai'
|
|
22
|
-
|
|
23
17
|
/**
|
|
24
18
|
* Default token name persisted alongside Lighter's `tokens/create` row.
|
|
25
19
|
* Lighter requires a non-empty `name` form field; the literal here is what
|
|
@@ -79,7 +73,7 @@ export type LighterTokenFetcher = (params: {
|
|
|
79
73
|
/** @public */
|
|
80
74
|
export interface LighterReadOnlyTokenManagerOptions {
|
|
81
75
|
storage?: StorageAdapter
|
|
82
|
-
/** Lighter API host. Defaults to {@link
|
|
76
|
+
/** Lighter API host. Defaults to {@link DEFAULT_LIGHTER_REST_URL}. */
|
|
83
77
|
lighterApiUrl?: string
|
|
84
78
|
/** Override the multipart POST. Defaults to a `fetch`-based implementation. */
|
|
85
79
|
fetcher?: LighterTokenFetcher
|
|
@@ -150,7 +144,7 @@ export class LighterReadOnlyTokenManager {
|
|
|
150
144
|
|
|
151
145
|
constructor(options: LighterReadOnlyTokenManagerOptions = {}) {
|
|
152
146
|
this.storage = options.storage ?? localStorageAdapter
|
|
153
|
-
this.lighterApiUrl = options.lighterApiUrl ??
|
|
147
|
+
this.lighterApiUrl = options.lighterApiUrl ?? DEFAULT_LIGHTER_REST_URL
|
|
154
148
|
this.fetcher = options.fetcher ?? defaultLighterTokenFetcher
|
|
155
149
|
this.now = options.now ?? (() => Date.now())
|
|
156
150
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ActionType } from '@lifi/perps-types'
|
|
2
|
+
import { DEFAULT_LIGHTER_REST_URL } from '../constants.js'
|
|
2
3
|
import {
|
|
3
4
|
type LighterWasmExports,
|
|
4
5
|
type LoadLighterWasmOptions,
|
|
@@ -48,7 +49,6 @@ export interface ApiKeyPair {
|
|
|
48
49
|
privateKey: string
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
const DEFAULT_API_URL = 'https://mainnet.zklighter.elliot.ai'
|
|
52
52
|
const DEFAULT_CHAIN_ID = 304
|
|
53
53
|
|
|
54
54
|
/** @public */
|
|
@@ -60,7 +60,7 @@ export class LighterSigner {
|
|
|
60
60
|
private readonly registeredClients = new Set<string>()
|
|
61
61
|
|
|
62
62
|
constructor(config: LighterSignerConfig = {}) {
|
|
63
|
-
this.apiUrl = config.apiUrl ??
|
|
63
|
+
this.apiUrl = config.apiUrl ?? DEFAULT_LIGHTER_REST_URL
|
|
64
64
|
this.chainId = config.chainId ?? DEFAULT_CHAIN_ID
|
|
65
65
|
this.loaderOptions = {
|
|
66
66
|
wasmBinaryUrl: config.wasmBinaryUrl,
|
package/src/signers/index.ts
CHANGED
|
@@ -19,7 +19,11 @@ import type {
|
|
|
19
19
|
Subscription,
|
|
20
20
|
} from '@lifi/perps-types'
|
|
21
21
|
import type { Address } from 'viem'
|
|
22
|
-
import {
|
|
22
|
+
import {
|
|
23
|
+
DEFAULT_LIGHTER_REST_URL,
|
|
24
|
+
LIGHTER_BASE_FEE_TIER,
|
|
25
|
+
LIGHTER_PROVIDER_KEY,
|
|
26
|
+
} from '../constants.js'
|
|
23
27
|
import type {
|
|
24
28
|
LtAccountPosition,
|
|
25
29
|
LtOrder,
|
|
@@ -71,7 +75,6 @@ import {
|
|
|
71
75
|
// messages are deltas where size=0 deletes a level.
|
|
72
76
|
|
|
73
77
|
const DEFAULT_WS_URL = 'wss://mainnet.zklighter.elliot.ai/stream'
|
|
74
|
-
const DEFAULT_REST_URL = 'https://mainnet.zklighter.elliot.ai'
|
|
75
78
|
|
|
76
79
|
const LIGHTER_AUTH_CHANNEL = {
|
|
77
80
|
orderUpdates: 'account_all_orders',
|
|
@@ -166,14 +169,17 @@ export class LighterWsProvider extends WsProviderBase<SubState> {
|
|
|
166
169
|
new ReconnectingWebSocket(wsUrl, { pingPayload: '{"type":"ping"}' }),
|
|
167
170
|
providerKey
|
|
168
171
|
)
|
|
169
|
-
this.api = new LighterApiClient(
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
172
|
+
this.api = new LighterApiClient(
|
|
173
|
+
options.restUrl ?? DEFAULT_LIGHTER_REST_URL,
|
|
174
|
+
{
|
|
175
|
+
policy: resolveRetryPolicy(
|
|
176
|
+
LIGHTER_RETRY_DEFAULTS,
|
|
177
|
+
client?.config.retry,
|
|
178
|
+
LIGHTER_PROVIDER_KEY
|
|
179
|
+
),
|
|
180
|
+
fetchImpl: client?.config.fetch,
|
|
181
|
+
}
|
|
182
|
+
)
|
|
177
183
|
this.authProvider = options.authProvider
|
|
178
184
|
this.client = client
|
|
179
185
|
this.registry = client && getMarketRegistry(client, providerKey)
|