@lifi/perps-sdk-provider-lighter 17.3.0 → 18.0.1
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 +8 -0
- package/dist/cjs/LighterProvider.d.ts.map +1 -1
- package/dist/cjs/LighterProvider.js +76 -57
- package/dist/cjs/LighterProvider.js.map +1 -1
- package/dist/cjs/accountConfig.d.ts.map +1 -1
- package/dist/cjs/accountConfig.js.map +1 -1
- package/dist/cjs/constants.d.ts +2 -1
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +3 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/signers/LighterKeyStore.d.ts +3 -1
- package/dist/cjs/signers/LighterKeyStore.d.ts.map +1 -1
- package/dist/cjs/signers/LighterKeyStore.js +14 -2
- package/dist/cjs/signers/LighterKeyStore.js.map +1 -1
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts +7 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js +19 -7
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js.map +1 -1
- package/dist/cjs/signers/signActions.d.ts.map +1 -1
- package/dist/cjs/signers/signActions.js +8 -0
- package/dist/cjs/signers/signActions.js.map +1 -1
- package/dist/cjs/types/ws.d.ts +3 -3
- package/dist/cjs/types/ws.d.ts.map +1 -1
- package/dist/cjs/utils/apiClient.d.ts +12 -0
- package/dist/cjs/utils/apiClient.d.ts.map +1 -1
- package/dist/cjs/utils/apiClient.js +62 -7
- package/dist/cjs/utils/apiClient.js.map +1 -1
- package/dist/cjs/utils/mapMarketContext.js +2 -2
- package/dist/cjs/utils/mapMarketContext.js.map +1 -1
- package/dist/esm/LighterProvider.d.ts.map +1 -1
- package/dist/esm/LighterProvider.js +78 -102
- package/dist/esm/LighterProvider.js.map +1 -1
- package/dist/esm/accountConfig.d.ts.map +1 -1
- package/dist/esm/accountConfig.js +2 -4
- package/dist/esm/accountConfig.js.map +1 -1
- package/dist/esm/constants.d.ts +7 -1
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +7 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/signers/LighterKeyStore.d.ts +4 -1
- package/dist/esm/signers/LighterKeyStore.d.ts.map +1 -1
- package/dist/esm/signers/LighterKeyStore.js +15 -3
- package/dist/esm/signers/LighterKeyStore.js.map +1 -1
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts +12 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
- package/dist/esm/signers/LighterReadOnlyTokenManager.js +23 -7
- package/dist/esm/signers/LighterReadOnlyTokenManager.js.map +1 -1
- package/dist/esm/signers/signActions.d.ts.map +1 -1
- package/dist/esm/signers/signActions.js +9 -0
- package/dist/esm/signers/signActions.js.map +1 -1
- package/dist/esm/types/ws.d.ts +6 -5
- package/dist/esm/types/ws.d.ts.map +1 -1
- package/dist/esm/utils/apiClient.d.ts +34 -7
- package/dist/esm/utils/apiClient.d.ts.map +1 -1
- package/dist/esm/utils/apiClient.js +77 -14
- package/dist/esm/utils/apiClient.js.map +1 -1
- package/dist/esm/utils/mapMarketContext.js +2 -2
- package/dist/esm/utils/mapMarketContext.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/constants.d.ts +7 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/signers/LighterKeyStore.d.ts +4 -1
- package/dist/types/signers/LighterKeyStore.d.ts.map +1 -1
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts +12 -0
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
- package/dist/types/signers/signActions.d.ts.map +1 -1
- package/dist/types/types/ws.d.ts +6 -5
- package/dist/types/types/ws.d.ts.map +1 -1
- package/dist/types/utils/apiClient.d.ts +34 -7
- package/dist/types/utils/apiClient.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/LighterProvider.ts +103 -138
- package/src/accountConfig.ts +2 -4
- package/src/constants.ts +8 -0
- package/src/signers/LighterKeyStore.ts +28 -3
- package/src/signers/LighterReadOnlyTokenManager.ts +39 -6
- package/src/signers/signActions.ts +10 -0
- package/src/types/ws.ts +6 -5
- package/src/utils/apiClient.ts +106 -13
- package/src/utils/mapMarketContext.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { fetchWithRetry, PerpsError, } from '@lifi/perps-sdk';
|
|
2
2
|
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
3
|
-
import { LIGHTER_INVALID_AUTH_CODE, LIGHTER_SUCCESS_CODES, } from '../constants.js';
|
|
3
|
+
import { LIGHTER_INVALID_AUTH_CODE, LIGHTER_SUCCESS_CODES, LIGHTER_TOKEN_REVOKED_CODE, } from '../constants.js';
|
|
4
4
|
/**
|
|
5
5
|
* Lighter signals errors on two channels: a non-2xx HTTP status, or an HTTP 200
|
|
6
6
|
* carrying an error `code` in the JSON body. Returns the body error `code` when
|
|
@@ -14,17 +14,23 @@ const lighterBodyErrorCode = (data) => {
|
|
|
14
14
|
return code;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
|
-
* Auth-gated read whose token Lighter rejected.
|
|
18
|
-
*
|
|
19
|
-
* with a freshly-created one. Lighter signals this on either channel: an HTTP
|
|
20
|
-
* 401/403, or an HTTP 200 carrying an error `code` in the body.
|
|
17
|
+
* Auth-gated read whose token format Lighter rejected.
|
|
18
|
+
*
|
|
21
19
|
* @internal
|
|
22
20
|
*/
|
|
23
21
|
export class LighterAuthRejectedError extends PerpsError {
|
|
24
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Auth-gated read whose read-only token Lighter reports as revoked.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export class LighterTokenRevokedError extends PerpsError {
|
|
29
|
+
}
|
|
25
30
|
const isLighterAuthRejection = (status, data) => status === 401 ||
|
|
26
31
|
status === 403 ||
|
|
27
32
|
lighterBodyErrorCode(data) === LIGHTER_INVALID_AUTH_CODE;
|
|
33
|
+
const isLighterTokenRevoked = (data) => lighterBodyErrorCode(data) === LIGHTER_TOKEN_REVOKED_CODE;
|
|
28
34
|
/** @internal */
|
|
29
35
|
export const LIGHTER_RETRY_DEFAULTS = {
|
|
30
36
|
enabled: true,
|
|
@@ -33,9 +39,6 @@ export const LIGHTER_RETRY_DEFAULTS = {
|
|
|
33
39
|
maxDelayMs: 60_000,
|
|
34
40
|
respectRetryAfter: true,
|
|
35
41
|
classify: ({ response }) => {
|
|
36
|
-
if (response.status === 429 || response.status === 405) {
|
|
37
|
-
return 'retry-rate-limit';
|
|
38
|
-
}
|
|
39
42
|
if (response.status === 502 ||
|
|
40
43
|
response.status === 503 ||
|
|
41
44
|
response.status === 504) {
|
|
@@ -44,6 +47,22 @@ export const LIGHTER_RETRY_DEFAULTS = {
|
|
|
44
47
|
return 'fail';
|
|
45
48
|
},
|
|
46
49
|
};
|
|
50
|
+
const LIGHTER_RATE_LIMIT_HOLD_MS = 60_000;
|
|
51
|
+
const LIGHTER_RATE_LIMIT_HOLD_MAX_MS = 300_000;
|
|
52
|
+
const isLighterRateLimit = (status) => status === 429 || status === 405;
|
|
53
|
+
const retryAfterMs = (header, nowMs) => {
|
|
54
|
+
if (header === null) {
|
|
55
|
+
return LIGHTER_RATE_LIMIT_HOLD_MS;
|
|
56
|
+
}
|
|
57
|
+
const seconds = Number(header);
|
|
58
|
+
if (Number.isFinite(seconds) && seconds >= 0) {
|
|
59
|
+
return Math.min(seconds * 1000, LIGHTER_RATE_LIMIT_HOLD_MAX_MS);
|
|
60
|
+
}
|
|
61
|
+
const dateMs = Date.parse(header);
|
|
62
|
+
return Number.isFinite(dateMs)
|
|
63
|
+
? Math.min(Math.max(0, dateMs - nowMs), LIGHTER_RATE_LIMIT_HOLD_MAX_MS)
|
|
64
|
+
: LIGHTER_RATE_LIMIT_HOLD_MS;
|
|
65
|
+
};
|
|
47
66
|
/**
|
|
48
67
|
* HTTP boundary against Lighter's REST API.
|
|
49
68
|
*
|
|
@@ -58,9 +77,10 @@ export const LIGHTER_RETRY_DEFAULTS = {
|
|
|
58
77
|
* `Authorization` header. This matches Lighter's OpenAPI spec and lets the
|
|
59
78
|
* same call work browser-direct and from server-side proxies.
|
|
60
79
|
*
|
|
61
|
-
* Lighter signals rate
|
|
62
|
-
*
|
|
63
|
-
*
|
|
80
|
+
* Lighter signals rate limits through HTTP 429 or HTTP 405. This client never
|
|
81
|
+
* retries such a response. It throws `RateLimitExceeded` and holds all network
|
|
82
|
+
* dispatch until `Retry-After` expires (capped at five minutes), or for 60
|
|
83
|
+
* seconds when the response has no valid header.
|
|
64
84
|
* @public
|
|
65
85
|
*/
|
|
66
86
|
export class LighterApiClient {
|
|
@@ -68,11 +88,45 @@ export class LighterApiClient {
|
|
|
68
88
|
signal;
|
|
69
89
|
policy;
|
|
70
90
|
fetchImpl;
|
|
91
|
+
rateLimitHold;
|
|
92
|
+
fetchWithHold;
|
|
71
93
|
constructor(baseUrl, options) {
|
|
72
94
|
this.baseUrl = baseUrl.replace(/\/$/, '');
|
|
73
95
|
this.signal = options?.signal;
|
|
74
96
|
this.policy = options?.policy ?? LIGHTER_RETRY_DEFAULTS;
|
|
75
97
|
this.fetchImpl = options?.fetchImpl;
|
|
98
|
+
this.rateLimitHold = options?.rateLimitHold ?? { untilMs: 0 };
|
|
99
|
+
this.fetchWithHold = async (input, init) => {
|
|
100
|
+
this.assertRequestAllowed();
|
|
101
|
+
const response = await (this.fetchImpl ?? fetch)(input, init);
|
|
102
|
+
if (isLighterRateLimit(response.status)) {
|
|
103
|
+
const responseNowMs = Date.now();
|
|
104
|
+
this.rateLimitHold.untilMs = Math.max(this.rateLimitHold.untilMs, responseNowMs +
|
|
105
|
+
retryAfterMs(response.headers.get('Retry-After'), responseNowMs));
|
|
106
|
+
}
|
|
107
|
+
return response;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Send a single request through this client's rate-limit hold.
|
|
112
|
+
*
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
request(input, init) {
|
|
116
|
+
return this.fetchWithHold(input, init);
|
|
117
|
+
}
|
|
118
|
+
rateLimitError() {
|
|
119
|
+
return new PerpsError(PerpsErrorCode.RateLimitExceeded, `Lighter API requests are held until ${new Date(this.rateLimitHold.untilMs).toISOString()}`);
|
|
120
|
+
}
|
|
121
|
+
assertRequestAllowed() {
|
|
122
|
+
if (Date.now() < this.rateLimitHold.untilMs) {
|
|
123
|
+
throw this.rateLimitError();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
assertNotRateLimited(response) {
|
|
127
|
+
if (isLighterRateLimit(response.status)) {
|
|
128
|
+
throw this.rateLimitError();
|
|
129
|
+
}
|
|
76
130
|
}
|
|
77
131
|
buildUrl(path, params) {
|
|
78
132
|
const url = `${this.baseUrl}${path}`;
|
|
@@ -97,6 +151,9 @@ export class LighterApiClient {
|
|
|
97
151
|
...params,
|
|
98
152
|
auth: authToken,
|
|
99
153
|
});
|
|
154
|
+
if (isLighterTokenRevoked(data)) {
|
|
155
|
+
throw new LighterTokenRevokedError(PerpsErrorCode.ThirdPartyError, `Lighter reports a revoked auth token for ${path}`);
|
|
156
|
+
}
|
|
100
157
|
if (isLighterAuthRejection(status, data)) {
|
|
101
158
|
throw new LighterAuthRejectedError(PerpsErrorCode.ThirdPartyError, `Lighter rejected the auth token for ${path}`);
|
|
102
159
|
}
|
|
@@ -109,8 +166,14 @@ export class LighterApiClient {
|
|
|
109
166
|
* caller distinguishes specific Lighter error codes from generic failures.
|
|
110
167
|
*/
|
|
111
168
|
async getWithStatus(path, params) {
|
|
169
|
+
this.assertRequestAllowed();
|
|
112
170
|
const url = this.buildUrl(path, params);
|
|
113
|
-
const response = await fetchWithRetry(url, {}, {
|
|
171
|
+
const response = await fetchWithRetry(url, {}, {
|
|
172
|
+
policy: this.policy,
|
|
173
|
+
fetchImpl: this.fetchWithHold,
|
|
174
|
+
signal: this.signal,
|
|
175
|
+
});
|
|
176
|
+
this.assertNotRateLimited(response);
|
|
114
177
|
const data = (await response.json().catch(() => undefined));
|
|
115
178
|
return { status: response.status, data };
|
|
116
179
|
}
|
|
@@ -125,13 +188,13 @@ export class LighterApiClient {
|
|
|
125
188
|
for (const [k, v] of Object.entries(params)) {
|
|
126
189
|
body.set(k, String(v));
|
|
127
190
|
}
|
|
128
|
-
const
|
|
129
|
-
const response = await fetchImpl(`${this.baseUrl}${path}`, {
|
|
191
|
+
const response = await this.fetchWithHold(`${this.baseUrl}${path}`, {
|
|
130
192
|
method: 'POST',
|
|
131
193
|
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
132
194
|
body: body.toString(),
|
|
133
195
|
signal: this.signal,
|
|
134
196
|
});
|
|
197
|
+
this.assertNotRateLimited(response);
|
|
135
198
|
const data = (await response.json().catch(() => undefined));
|
|
136
199
|
return { status: response.status, data };
|
|
137
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/utils/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,GAEX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/utils/apiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ export const mapMarketContext = (stats) => {
|
|
|
14
14
|
midPrice: stats.mid_price,
|
|
15
15
|
markPrice: stats.mark_price,
|
|
16
16
|
oraclePrice: stats.index_price,
|
|
17
|
-
priceChange24h: stats.daily_price_change,
|
|
18
|
-
volume24h: stats.daily_quote_token_volume,
|
|
17
|
+
priceChange24h: String(stats.daily_price_change),
|
|
18
|
+
volume24h: String(stats.daily_quote_token_volume),
|
|
19
19
|
openInterest: stats.open_interest,
|
|
20
20
|
funding: {
|
|
21
21
|
rate: stats.current_funding_rate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapMarketContext.js","sourceRoot":"","sources":["../../../src/utils/mapMarketContext.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,GAAG,CAClB,KAA4C,EAClB,EAAE,CAAC,YAAY,IAAI,KAAK,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAA4C,EAC7B,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACxC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,QAAQ;YACR,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,cAAc,EAAE,KAAK,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"mapMarketContext.js","sourceRoot":"","sources":["../../../src/utils/mapMarketContext.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,GAAG,CAClB,KAA4C,EAClB,EAAE,CAAC,YAAY,IAAI,KAAK,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAA4C,EAC7B,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACxC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,QAAQ;YACR,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAChD,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC;YACjD,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK,CAAC,oBAAoB;gBAChC,eAAe,EAAE,KAAK,CAAC,iBAAiB;aACzC;SACF,CAAA;IACH,CAAC;IACD,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,KAAK,CAAC,SAAS;QACzB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAChD,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC;KAClD,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LighterProvider.d.ts","sourceRoot":"","sources":["../../src/LighterProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,mBAAmB,EAoBxB,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAA;AA+BxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EASL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"LighterProvider.d.ts","sourceRoot":"","sources":["../../src/LighterProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,mBAAmB,EAoBxB,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAA;AA+BxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EASL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAA;AAiIvB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACrD,4FAA4F;IAC5F,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,4FAA4F;IAC5F,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC;AAQD;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CAChE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,YAAY,iBAAiB,EAC7B,UAAS,sBAA2B,KACnC,oBAwrCF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAS,sBAA2B,KACnC,oBACyD,CAAA;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAS,sBAA2B,KACnC,oBAA6E,CAAA;AAEhF;;;;GAIG;AACH,eAAO,MAAM,OAAO,aA7BT,sBAAsB,KAC9B,oBA4BmC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACf,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACf,MAAM,mBAAmB,CAAA;AAgL1B;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,cAAc,EAAE,GACxB,oBAAoB,EAAE,CAIxB"}
|
|
@@ -178,6 +178,12 @@ declare const LIGHTER_CODE_ACCOUNT_NOT_FOUND = 21100;
|
|
|
178
178
|
* @internal
|
|
179
179
|
*/
|
|
180
180
|
declare const LIGHTER_INVALID_AUTH_CODE = 20013;
|
|
181
|
+
/**
|
|
182
|
+
* Lighter body `code` for a read-only auth token revoked at the venue.
|
|
183
|
+
*
|
|
184
|
+
* @internal
|
|
185
|
+
*/
|
|
186
|
+
declare const LIGHTER_TOKEN_REVOKED_CODE = 61006;
|
|
181
187
|
/**
|
|
182
188
|
* Lighter body `code` values that mean success. Lighter is inconsistent per
|
|
183
189
|
* endpoint: `/api/v1/account` returns `code: 200`, most others return `code: 0`.
|
|
@@ -194,5 +200,5 @@ declare const LIGHTER_SUCCESS_CODES: Set<number>;
|
|
|
194
200
|
* @internal
|
|
195
201
|
*/
|
|
196
202
|
declare const LIGHTER_MUTATION_SUCCESS_CODE = 200;
|
|
197
|
-
export { LIGHTER_CODE_ACCOUNT_NOT_FOUND, LIGHTER_INVALID_AUTH_CODE, LIGHTER_MUTATION_SUCCESS_CODE, LIGHTER_SUCCESS_CODES, };
|
|
203
|
+
export { LIGHTER_CODE_ACCOUNT_NOT_FOUND, LIGHTER_INVALID_AUTH_CODE, LIGHTER_MUTATION_SUCCESS_CODE, LIGHTER_SUCCESS_CODES, LIGHTER_TOKEN_REVOKED_CODE, };
|
|
198
204
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGpE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,SAAS,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wCAAwC,CAAA;AAC7E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,6CAA6C,CAAA;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAA;AAElD;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,2CACP,CAAA;AAE1C;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,kBAAkB,EAClB,sBAAsB,CAUvB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,UAAU,EAAE,sBAAsB,CAAA;IAClC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAOvC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,+BAA+B,CAAA;AAC/D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,oCAAoC,CAAA;AAElE;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,SAAS,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAOlC,CAAA;AAEF,gBAAgB;AAChB,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,UAAY,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAAoC,CAAA;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C,gBAAgB;AAChB,QAAA,MAAM,8BAA8B,QAAQ,CAAA;AAE5C;;;;GAIG;AACH,QAAA,MAAM,yBAAyB,QAAQ,CAAA;AAEvC;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,aAAoB,CAAA;AAE/C;;;;;;GAMG;AACH,QAAA,MAAM,6BAA6B,MAAM,CAAA;AAEzC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGpE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,SAAS,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wCAAwC,CAAA;AAC7E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,6CAA6C,CAAA;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAA;AAElD;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,2CACP,CAAA;AAE1C;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,kBAAkB,EAClB,sBAAsB,CAUvB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,UAAU,EAAE,sBAAsB,CAAA;IAClC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAOvC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,+BAA+B,CAAA;AAC/D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,oCAAoC,CAAA;AAElE;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,SAAS,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAOlC,CAAA;AAEF,gBAAgB;AAChB,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,UAAY,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAAoC,CAAA;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C,gBAAgB;AAChB,QAAA,MAAM,8BAA8B,QAAQ,CAAA;AAE5C;;;;GAIG;AACH,QAAA,MAAM,yBAAyB,QAAQ,CAAA;AAEvC;;;;GAIG;AACH,QAAA,MAAM,0BAA0B,QAAQ,CAAA;AAExC;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,aAAoB,CAAA;AAE/C;;;;;;GAMG;AACH,QAAA,MAAM,6BAA6B,MAAM,CAAA;AAEzC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,EACrB,0BAA0B,GAC3B,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type StorageAdapter } from '@lifi/perps-sdk';
|
|
2
|
-
import type
|
|
2
|
+
import { type LighterProviderKey } from '@lifi/perps-types';
|
|
3
3
|
import type { Address } from 'viem';
|
|
4
4
|
/**
|
|
5
5
|
* Persisted Lighter API-key material associated with one L2 account.
|
|
@@ -23,6 +23,8 @@ export interface LighterApiKey {
|
|
|
23
23
|
apiKeyPrivateKey: string;
|
|
24
24
|
/** Corresponding public key, registered via ChangePubKey. */
|
|
25
25
|
apiKeyPublicKey: string;
|
|
26
|
+
/** Referral code confirmed by the standard-token SET_REFERRAL action. */
|
|
27
|
+
appliedReferralCode?: string;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* Storage-backed cache for Lighter API keys. Records are namespaced by L1
|
|
@@ -61,6 +63,7 @@ export declare class LighterKeyStore {
|
|
|
61
63
|
* key, so callers never name the instance themselves.
|
|
62
64
|
*/
|
|
63
65
|
set(address: Address, value: Omit<LighterApiKey, 'providerKey'>): Promise<void>;
|
|
66
|
+
markReferralApplied(address: Address, appliedReferralCode: string): Promise<void>;
|
|
64
67
|
/**
|
|
65
68
|
* Remove the persisted API key for an L1 address and clear its in-memory
|
|
66
69
|
* cache entry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LighterKeyStore.d.ts","sourceRoot":"","sources":["../../../src/signers/LighterKeyStore.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LighterKeyStore.d.ts","sourceRoot":"","sources":["../../../src/signers/LighterKeyStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,kBAAkB,EAAkB,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAQnC;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,WAAW,EAAE,kBAAkB,CAAA;IAC/B,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAA;IACnB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAgCD;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IACzD,OAAO,CAAC,WAAW,CAAoB;IAEvC;;;;OAIG;gBAED,OAAO,EAAE,cAAc,EACvB,WAAW,GAAE,kBAAyC;IAMxD;;;;;OAKG;IACH,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAMtD,OAAO,CAAC,UAAU;IAOlB;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkB1D;;;;OAIG;IACG,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC;IAOV,mBAAmB,CACvB,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAK9C"}
|
|
@@ -60,6 +60,7 @@ export type LighterTokenFetcher = (params: {
|
|
|
60
60
|
expiry: number;
|
|
61
61
|
subAccountAccess: boolean;
|
|
62
62
|
scopes: string;
|
|
63
|
+
fetchImpl?: typeof fetch;
|
|
63
64
|
}) => Promise<LighterCreateTokenResponse>;
|
|
64
65
|
/**
|
|
65
66
|
* One row of Lighter's read-only token registry, matching Lighter's
|
|
@@ -108,6 +109,7 @@ export type LighterTokenListFetcher = (params: {
|
|
|
108
109
|
url: string;
|
|
109
110
|
authorization: string;
|
|
110
111
|
accountIndex: number;
|
|
112
|
+
fetchImpl?: typeof fetch;
|
|
111
113
|
}) => Promise<LighterListTokensResponse>;
|
|
112
114
|
/**
|
|
113
115
|
* Function injected for the HTTP boundary against Lighter's
|
|
@@ -119,6 +121,7 @@ export type LighterTokenRevokeFetcher = (params: {
|
|
|
119
121
|
authorization: string;
|
|
120
122
|
tokenId: number;
|
|
121
123
|
accountIndex: number;
|
|
124
|
+
fetchImpl?: typeof fetch;
|
|
122
125
|
}) => Promise<LighterRevokeTokenResponse>;
|
|
123
126
|
/**
|
|
124
127
|
* Dependencies and overrides for {@link LighterReadOnlyTokenManager}.
|
|
@@ -144,6 +147,8 @@ export interface LighterReadOnlyTokenManagerOptions {
|
|
|
144
147
|
listFetcher?: LighterTokenListFetcher;
|
|
145
148
|
/** Override the revoke POST. Defaults to a `fetch`-based implementation. */
|
|
146
149
|
revokeFetcher?: LighterTokenRevokeFetcher;
|
|
150
|
+
/** Transport used by the default endpoint fetchers. Defaults to `fetch`. */
|
|
151
|
+
fetchImpl?: typeof fetch;
|
|
147
152
|
/** Clock injection for testing expiry logic. Defaults to `Date.now`. */
|
|
148
153
|
now?: () => number;
|
|
149
154
|
}
|
|
@@ -194,6 +199,7 @@ export declare class LighterReadOnlyTokenManager {
|
|
|
194
199
|
private readonly fetcher;
|
|
195
200
|
private readonly listFetcher;
|
|
196
201
|
private readonly revokeFetcher;
|
|
202
|
+
private readonly fetchImpl;
|
|
197
203
|
private readonly now;
|
|
198
204
|
private readonly cache;
|
|
199
205
|
constructor(options?: LighterReadOnlyTokenManagerOptions);
|
|
@@ -253,6 +259,12 @@ export declare class LighterReadOnlyTokenManager {
|
|
|
253
259
|
* @param inputs Token-create parameters plus the owning `address`.
|
|
254
260
|
*/
|
|
255
261
|
approve(authorization: string, inputs: ApproveReadOnlyTokenInputs): Promise<ApproveReadOnlyTokenResult>;
|
|
262
|
+
/**
|
|
263
|
+
* Replace a token that Lighter explicitly reports as revoked.
|
|
264
|
+
* The venue already revoked the row, so this path skips registry cleanup.
|
|
265
|
+
*/
|
|
266
|
+
replaceRevoked(authorization: string, inputs: ApproveReadOnlyTokenInputs): Promise<ApproveReadOnlyTokenResult>;
|
|
267
|
+
private createAndPersist;
|
|
256
268
|
/**
|
|
257
269
|
* Revoke the registry rows this SDK owns and no longer needs. Lighter's
|
|
258
270
|
* `tokens/create` appends a row on every call, so without this pass the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LighterReadOnlyTokenManager.d.ts","sourceRoot":"","sources":["../../../src/signers/LighterReadOnlyTokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,gBAAgB,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAA;IACvB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"LighterReadOnlyTokenManager.d.ts","sourceRoot":"","sources":["../../../src/signers/LighterReadOnlyTokenManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAOxE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,eAAe,CAAA;IACzB;;qCAEiC;IACjC,SAAS,EAAE,gBAAgB,CAAA;IAC3B;;;OAGG;IACH,eAAe,EAAE,sBAAsB,CAAA;IACvC;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACvD;AAyBD;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,CACnB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAAO,sBA6D/C,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,sBAAsB,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EAAE,EAC3B,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAkCrC;
|
|
1
|
+
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAOxE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,eAAe,CAAA;IACzB;;qCAEiC;IACjC,SAAS,EAAE,gBAAgB,CAAA;IAC3B;;;OAGG;IACH,eAAe,EAAE,sBAAsB,CAAA;IACvC;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACvD;AAyBD;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,CACnB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAAO,sBA6D/C,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,sBAAsB,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EAAE,EAC3B,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAkCrC;AAkXD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EAAE,EACxB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA6ElC;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAsB7B"}
|
package/dist/types/types/ws.d.ts
CHANGED
|
@@ -20,8 +20,9 @@ export type LtWsPingMessage = LtWsMessage & {
|
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* Perpetual-market statistics pushed by Lighter's `market_stats` channels.
|
|
23
|
-
* Price, interest,
|
|
24
|
-
* timestamp is a Unix
|
|
23
|
+
* Price, interest, and funding values are decimal strings; the daily volume
|
|
24
|
+
* and change figures are JSON numbers and the funding timestamp is a Unix
|
|
25
|
+
* timestamp in milliseconds.
|
|
25
26
|
*
|
|
26
27
|
* @public
|
|
27
28
|
*/
|
|
@@ -35,9 +36,9 @@ export type LtWsMarketStats = {
|
|
|
35
36
|
current_funding_rate: string;
|
|
36
37
|
funding_rate: string;
|
|
37
38
|
funding_timestamp: number;
|
|
38
|
-
daily_base_token_volume:
|
|
39
|
-
daily_quote_token_volume:
|
|
40
|
-
daily_price_change:
|
|
39
|
+
daily_base_token_volume: number;
|
|
40
|
+
daily_quote_token_volume: number;
|
|
41
|
+
daily_price_change: number;
|
|
41
42
|
};
|
|
42
43
|
/**
|
|
43
44
|
* `market_stats/all` pushes one record per known market each tick. We map them
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"AAYA;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5D
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,21 +2,36 @@ import { PerpsError, type ResolvedRetryPolicy } from '@lifi/perps-sdk';
|
|
|
2
2
|
/** @internal */
|
|
3
3
|
export type ApiParams = Record<string, string | number | boolean>;
|
|
4
4
|
/**
|
|
5
|
-
* Auth-gated read whose token Lighter rejected.
|
|
6
|
-
*
|
|
7
|
-
* with a freshly-created one. Lighter signals this on either channel: an HTTP
|
|
8
|
-
* 401/403, or an HTTP 200 carrying an error `code` in the body.
|
|
5
|
+
* Auth-gated read whose token format Lighter rejected.
|
|
6
|
+
*
|
|
9
7
|
* @internal
|
|
10
8
|
*/
|
|
11
9
|
export declare class LighterAuthRejectedError extends PerpsError {
|
|
12
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Auth-gated read whose read-only token Lighter reports as revoked.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare class LighterTokenRevokedError extends PerpsError {
|
|
17
|
+
}
|
|
13
18
|
/** @internal */
|
|
14
19
|
export declare const LIGHTER_RETRY_DEFAULTS: ResolvedRetryPolicy;
|
|
20
|
+
/**
|
|
21
|
+
* Mutable rate-limit deadline shared by the request clients for one provider
|
|
22
|
+
* instance. A client creates an isolated hold when the caller omits this.
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export interface LighterRateLimitHold {
|
|
27
|
+
untilMs: number;
|
|
28
|
+
}
|
|
15
29
|
/** @internal */
|
|
16
30
|
export interface LighterApiClientOptions {
|
|
17
31
|
signal?: AbortSignal;
|
|
18
32
|
policy?: ResolvedRetryPolicy;
|
|
19
33
|
fetchImpl?: typeof fetch;
|
|
34
|
+
rateLimitHold?: LighterRateLimitHold;
|
|
20
35
|
}
|
|
21
36
|
/**
|
|
22
37
|
* HTTP boundary against Lighter's REST API.
|
|
@@ -32,9 +47,10 @@ export interface LighterApiClientOptions {
|
|
|
32
47
|
* `Authorization` header. This matches Lighter's OpenAPI spec and lets the
|
|
33
48
|
* same call work browser-direct and from server-side proxies.
|
|
34
49
|
*
|
|
35
|
-
* Lighter signals rate
|
|
36
|
-
*
|
|
37
|
-
*
|
|
50
|
+
* Lighter signals rate limits through HTTP 429 or HTTP 405. This client never
|
|
51
|
+
* retries such a response. It throws `RateLimitExceeded` and holds all network
|
|
52
|
+
* dispatch until `Retry-After` expires (capped at five minutes), or for 60
|
|
53
|
+
* seconds when the response has no valid header.
|
|
38
54
|
* @public
|
|
39
55
|
*/
|
|
40
56
|
export declare class LighterApiClient {
|
|
@@ -42,7 +58,18 @@ export declare class LighterApiClient {
|
|
|
42
58
|
private readonly signal;
|
|
43
59
|
private readonly policy;
|
|
44
60
|
private readonly fetchImpl;
|
|
61
|
+
private readonly rateLimitHold;
|
|
62
|
+
private readonly fetchWithHold;
|
|
45
63
|
constructor(baseUrl: string, options?: LighterApiClientOptions);
|
|
64
|
+
/**
|
|
65
|
+
* Send a single request through this client's rate-limit hold.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
request(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
70
|
+
private rateLimitError;
|
|
71
|
+
private assertRequestAllowed;
|
|
72
|
+
private assertNotRateLimited;
|
|
46
73
|
private buildUrl;
|
|
47
74
|
get<T>(path: string, params?: ApiParams): Promise<T>;
|
|
48
75
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../../src/utils/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../../src/utils/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAA;AAQxB,gBAAgB;AAChB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;AAejE;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;CAAG;AAE3D;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;CAAG;AAU3D,gBAAgB;AAChB,eAAO,MAAM,sBAAsB,EAAE,mBAgBpC,CAAA;AAsBD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,aAAa,CAAC,EAAE,oBAAoB,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;gBAEhC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAqB9D;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIxE,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,QAAQ;IAaV,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;;;OAIG;IACG,SAAS,CAAC,CAAC,EACf,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,SAAc,GACrB,OAAO,CAAC,CAAC,CAAC;IAqBb;;;;OAIG;IACG,aAAa,CAAC,CAAC,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAiBvC;;;;;OAKG;IACG,QAAQ,CAAC,CAAC,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;YAgBzB,UAAU;IAMxB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CAejB"}
|