@lightconexyz/lightcone-sdk 0.4.15 → 0.5.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 +172 -43
- package/dist/auth/client.d.ts +1 -1
- package/dist/auth/client.d.ts.map +1 -1
- package/dist/auth/client.js +2 -7
- package/dist/auth/client.js.map +1 -1
- package/dist/domain/admin/client.d.ts +11 -8
- package/dist/domain/admin/client.d.ts.map +1 -1
- package/dist/domain/admin/client.js +33 -14
- package/dist/domain/admin/client.js.map +1 -1
- package/dist/domain/admin/index.d.ts +12 -3
- package/dist/domain/admin/index.d.ts.map +1 -1
- package/dist/domain/admin/index.js.map +1 -1
- package/dist/domain/admin/wire.d.ts +1 -2
- package/dist/domain/admin/wire.d.ts.map +1 -1
- package/dist/domain/admin/wire.js.map +1 -1
- package/dist/domain/market/tokens.js +4 -6
- package/dist/domain/market/tokens.js.map +1 -1
- package/dist/domain/market/wire.d.ts +1 -3
- package/dist/domain/market/wire.d.ts.map +1 -1
- package/dist/domain/market/wire.js.map +1 -1
- package/dist/domain/order/client.d.ts +1 -115
- package/dist/domain/order/client.d.ts.map +1 -1
- package/dist/domain/order/client.js +12 -71
- package/dist/domain/order/client.js.map +1 -1
- package/dist/domain/order/index.d.ts +2 -9
- package/dist/domain/order/index.d.ts.map +1 -1
- package/dist/domain/order/index.js +2 -9
- package/dist/domain/order/index.js.map +1 -1
- package/dist/domain/order/wire.d.ts +80 -2
- package/dist/domain/order/wire.d.ts.map +1 -1
- package/dist/domain/order/wire.js +141 -0
- package/dist/domain/order/wire.js.map +1 -1
- package/dist/error.d.ts +5 -2
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +10 -1
- package/dist/error.js.map +1 -1
- package/dist/http/client.d.ts +9 -1
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +126 -31
- package/dist/http/client.js.map +1 -1
- package/dist/prelude.d.ts +1 -1
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js +4 -1
- package/dist/prelude.js.map +1 -1
- package/dist/privy/client.d.ts +3 -3
- package/dist/privy/client.d.ts.map +1 -1
- package/dist/privy/client.js.map +1 -1
- package/dist/privy/index.d.ts +1 -6
- package/dist/privy/index.d.ts.map +1 -1
- package/dist/privy/index.js.map +1 -1
- package/dist/program/accounts.d.ts +2 -1
- package/dist/program/accounts.d.ts.map +1 -1
- package/dist/program/accounts.js +6 -2
- package/dist/program/accounts.js.map +1 -1
- package/dist/program/instructions.d.ts +1 -1
- package/dist/program/instructions.d.ts.map +1 -1
- package/dist/program/instructions.js +2 -1
- package/dist/program/instructions.js.map +1 -1
- package/dist/program/types.d.ts +2 -0
- package/dist/program/types.d.ts.map +1 -1
- package/dist/program/types.js.map +1 -1
- package/dist/shared/api_response.d.ts +32 -0
- package/dist/shared/api_response.d.ts.map +1 -0
- package/dist/shared/api_response.js +61 -0
- package/dist/shared/api_response.js.map +1 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +6 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/rejection.d.ts +9 -0
- package/dist/shared/rejection.d.ts.map +1 -0
- package/dist/shared/rejection.js +48 -0
- package/dist/shared/rejection.js.map +1 -0
- package/dist/ws/client.browser.d.ts +2 -1
- package/dist/ws/client.browser.d.ts.map +1 -1
- package/dist/ws/client.browser.js +9 -3
- package/dist/ws/client.browser.js.map +1 -1
- package/dist/ws/client.node.d.ts +2 -1
- package/dist/ws/client.node.d.ts.map +1 -1
- package/dist/ws/client.node.js +9 -3
- package/dist/ws/client.node.js.map +1 -1
- package/dist/ws/index.d.ts +1 -1
- package/dist/ws/index.d.ts.map +1 -1
- package/dist/ws/index.js +9 -1
- package/dist/ws/index.js.map +1 -1
- package/package.json +1 -1
package/dist/http/client.js
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LightconeHttp = void 0;
|
|
4
4
|
const error_1 = require("../error");
|
|
5
|
+
const api_response_1 = require("../shared/api_response");
|
|
5
6
|
const retry_1 = require("./retry");
|
|
6
7
|
class LightconeHttp {
|
|
7
8
|
normalizedBaseUrl;
|
|
8
9
|
authToken;
|
|
10
|
+
adminToken;
|
|
9
11
|
constructor(baseUrl) {
|
|
10
12
|
this.normalizedBaseUrl = baseUrl.replace(/\/+$/, "");
|
|
11
13
|
}
|
|
@@ -18,27 +20,37 @@ class LightconeHttp {
|
|
|
18
20
|
authTokenRef() {
|
|
19
21
|
return async () => this.authToken;
|
|
20
22
|
}
|
|
23
|
+
clearAdminToken() {
|
|
24
|
+
this.adminToken = undefined;
|
|
25
|
+
}
|
|
26
|
+
async adminGet(url, retry) {
|
|
27
|
+
return this.requestWithRetry("GET", url, undefined, retry, "adminCookie");
|
|
28
|
+
}
|
|
29
|
+
async adminPost(url, body, retry) {
|
|
30
|
+
return this.requestWithRetry("POST", url, body, retry, "adminCookie");
|
|
31
|
+
}
|
|
21
32
|
async get(url, retry) {
|
|
22
|
-
return this.requestWithRetry("GET", url, undefined, retry);
|
|
33
|
+
return this.requestWithRetry("GET", url, undefined, retry, "cookie");
|
|
23
34
|
}
|
|
24
35
|
async post(url, body, retry) {
|
|
25
|
-
return this.requestWithRetry("POST", url, body, retry);
|
|
36
|
+
return this.requestWithRetry("POST", url, body, retry, "cookie");
|
|
26
37
|
}
|
|
27
|
-
async requestWithRetry(method, url, body, policy) {
|
|
38
|
+
async requestWithRetry(method, url, body, policy, authMode) {
|
|
28
39
|
const config = (0, retry_1.retryConfigForPolicy)(policy);
|
|
29
40
|
if (!config) {
|
|
30
|
-
return this.
|
|
41
|
+
return this.sendAndParse(method, url, body, authMode);
|
|
31
42
|
}
|
|
32
43
|
let lastError;
|
|
33
44
|
for (let attempt = 0; attempt <= config.maxRetries; attempt += 1) {
|
|
34
45
|
try {
|
|
35
|
-
|
|
46
|
+
const [apiResponse, requestId] = await this.sendRequest(method, url, body, authMode);
|
|
47
|
+
return parseApiResponse(apiResponse, requestId);
|
|
36
48
|
}
|
|
37
49
|
catch (error) {
|
|
38
50
|
if (!(error instanceof error_1.HttpError)) {
|
|
39
51
|
throw error;
|
|
40
52
|
}
|
|
41
|
-
const shouldRetry = this.shouldRetry(error, config.retryableStatuses);
|
|
53
|
+
const shouldRetry = await this.shouldRetry(error, config.retryableStatuses);
|
|
42
54
|
if (!shouldRetry || attempt >= config.maxRetries) {
|
|
43
55
|
throw error;
|
|
44
56
|
}
|
|
@@ -49,11 +61,15 @@ class LightconeHttp {
|
|
|
49
61
|
}
|
|
50
62
|
throw error_1.HttpError.maxRetriesExceeded(config.maxRetries + 1, lastError?.message ?? "unknown");
|
|
51
63
|
}
|
|
52
|
-
shouldRetry(error, retryableStatuses) {
|
|
64
|
+
async shouldRetry(error, retryableStatuses) {
|
|
53
65
|
switch (error.variant) {
|
|
54
66
|
case "Timeout":
|
|
55
67
|
case "Request":
|
|
68
|
+
return true;
|
|
56
69
|
case "RateLimited":
|
|
70
|
+
if (error.retryAfterMs !== undefined) {
|
|
71
|
+
await sleep(error.retryAfterMs);
|
|
72
|
+
}
|
|
57
73
|
return true;
|
|
58
74
|
case "ServerError":
|
|
59
75
|
return error.status !== undefined && retryableStatuses.includes(error.status);
|
|
@@ -61,13 +77,22 @@ class LightconeHttp {
|
|
|
61
77
|
return false;
|
|
62
78
|
}
|
|
63
79
|
}
|
|
64
|
-
async
|
|
80
|
+
async sendAndParse(method, url, body, authMode = "cookie") {
|
|
81
|
+
const [apiResponse, requestId] = await this.sendRequest(method, url, body, authMode);
|
|
82
|
+
return parseApiResponse(apiResponse, requestId);
|
|
83
|
+
}
|
|
84
|
+
async sendRequest(method, url, body, authMode = "cookie") {
|
|
85
|
+
const requestId = generateRequestId();
|
|
65
86
|
const headers = {};
|
|
66
87
|
if (body) {
|
|
67
88
|
headers["Content-Type"] = "application/json";
|
|
68
89
|
}
|
|
69
|
-
|
|
70
|
-
|
|
90
|
+
headers["x-request-id"] = requestId;
|
|
91
|
+
if (!hasBrowserWindow()) {
|
|
92
|
+
const cookie = this.cookieHeader(authMode);
|
|
93
|
+
if (cookie) {
|
|
94
|
+
headers.Cookie = cookie;
|
|
95
|
+
}
|
|
71
96
|
}
|
|
72
97
|
const controller = new AbortController();
|
|
73
98
|
const timeoutId = setTimeout(() => controller.abort(), 30_000);
|
|
@@ -93,36 +118,56 @@ class LightconeHttp {
|
|
|
93
118
|
}
|
|
94
119
|
if (response.ok) {
|
|
95
120
|
if (!hasBrowserWindow()) {
|
|
96
|
-
|
|
97
|
-
for (const part of cookieHeader.split(",")) {
|
|
98
|
-
const trimmed = part.trim();
|
|
99
|
-
if (trimmed.startsWith("auth_token=")) {
|
|
100
|
-
const token = trimmed.slice("auth_token=".length).split(";")[0];
|
|
101
|
-
if (token) {
|
|
102
|
-
this.authToken = token;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
121
|
+
this.captureCookies(response);
|
|
106
122
|
}
|
|
107
123
|
const text = await response.text();
|
|
124
|
+
let payload;
|
|
108
125
|
try {
|
|
109
|
-
|
|
126
|
+
payload = JSON.parse(text);
|
|
110
127
|
}
|
|
111
128
|
catch (e) {
|
|
112
129
|
throw error_1.HttpError.request(e instanceof Error ? e.message : "JSON parse failed");
|
|
113
130
|
}
|
|
131
|
+
return [payload, requestId];
|
|
114
132
|
}
|
|
115
133
|
const bodyText = await response.text().catch(() => "");
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
134
|
+
throw this.mapStatusError(response.status, bodyText, response.headers);
|
|
135
|
+
}
|
|
136
|
+
captureCookies(response) {
|
|
137
|
+
for (const cookieHeader of getSetCookieHeaders(response.headers)) {
|
|
138
|
+
const authToken = extractCookieValue(cookieHeader, "auth_token");
|
|
139
|
+
if (authToken) {
|
|
140
|
+
this.authToken = authToken;
|
|
141
|
+
}
|
|
142
|
+
const adminToken = extractCookieValue(cookieHeader, "admin_token");
|
|
143
|
+
if (adminToken) {
|
|
144
|
+
this.adminToken = adminToken;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
cookieHeader(authMode) {
|
|
149
|
+
if (hasBrowserWindow()) {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
if (authMode === "adminCookie") {
|
|
153
|
+
return this.adminToken ? `admin_token=${this.adminToken}` : undefined;
|
|
154
|
+
}
|
|
155
|
+
return this.authToken ? `auth_token=${this.authToken}` : undefined;
|
|
156
|
+
}
|
|
157
|
+
mapStatusError(statusCode, bodyText, headers) {
|
|
158
|
+
if (statusCode === 401) {
|
|
159
|
+
return error_1.HttpError.unauthorized();
|
|
160
|
+
}
|
|
161
|
+
if (statusCode === 404) {
|
|
162
|
+
return error_1.HttpError.notFound(bodyText);
|
|
163
|
+
}
|
|
164
|
+
if (statusCode === 429) {
|
|
165
|
+
return error_1.HttpError.rateLimited(retryAfterMs(headers));
|
|
166
|
+
}
|
|
167
|
+
if (statusCode >= 400 && statusCode < 500) {
|
|
168
|
+
return error_1.HttpError.badRequest(bodyText);
|
|
169
|
+
}
|
|
170
|
+
return error_1.HttpError.serverError(statusCode, bodyText);
|
|
126
171
|
}
|
|
127
172
|
}
|
|
128
173
|
exports.LightconeHttp = LightconeHttp;
|
|
@@ -131,6 +176,56 @@ function sleep(ms) {
|
|
|
131
176
|
setTimeout(resolve, ms);
|
|
132
177
|
});
|
|
133
178
|
}
|
|
179
|
+
function parseApiResponse(payload, requestId) {
|
|
180
|
+
if (!(0, api_response_1.isApiResponse)(payload)) {
|
|
181
|
+
throw error_1.SdkError.serde("Invalid ApiResponse envelope");
|
|
182
|
+
}
|
|
183
|
+
if (payload.status === "success") {
|
|
184
|
+
return payload.body;
|
|
185
|
+
}
|
|
186
|
+
throw error_1.SdkError.apiRejected(api_response_1.ApiRejectedDetails.fromWire(payload.error_details, requestId));
|
|
187
|
+
}
|
|
188
|
+
function generateRequestId() {
|
|
189
|
+
if (typeof globalThis.crypto?.randomUUID === "function") {
|
|
190
|
+
return globalThis.crypto.randomUUID();
|
|
191
|
+
}
|
|
192
|
+
return `lc-${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
193
|
+
}
|
|
194
|
+
function getSetCookieHeaders(headers) {
|
|
195
|
+
const headersWithCookies = headers;
|
|
196
|
+
if (typeof headersWithCookies.getSetCookie === "function") {
|
|
197
|
+
const values = headersWithCookies.getSetCookie();
|
|
198
|
+
if (values.length > 0) {
|
|
199
|
+
return values;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const combined = headers.get("set-cookie");
|
|
203
|
+
return combined ? [combined] : [];
|
|
204
|
+
}
|
|
205
|
+
function retryAfterMs(headers) {
|
|
206
|
+
const retryAfterMsValue = headers.get("retry-after-ms");
|
|
207
|
+
if (retryAfterMsValue) {
|
|
208
|
+
const parsed = Number.parseInt(retryAfterMsValue, 10);
|
|
209
|
+
if (Number.isFinite(parsed)) {
|
|
210
|
+
return parsed;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
const retryAfterValue = headers.get("retry-after");
|
|
214
|
+
if (retryAfterValue) {
|
|
215
|
+
const parsed = Number.parseFloat(retryAfterValue);
|
|
216
|
+
if (Number.isFinite(parsed)) {
|
|
217
|
+
return Math.round(parsed * 1000);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
function extractCookieValue(header, name) {
|
|
223
|
+
const match = header.match(new RegExp(`(?:^|,\\s*)${escapeRegExp(name)}=([^;,]+)`));
|
|
224
|
+
return match?.[1];
|
|
225
|
+
}
|
|
226
|
+
function escapeRegExp(value) {
|
|
227
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
228
|
+
}
|
|
134
229
|
function hasBrowserWindow() {
|
|
135
230
|
return typeof globalThis !== "undefined" && "window" in globalThis;
|
|
136
231
|
}
|
package/dist/http/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { HttpError } from \"../error\";\nimport { delayForAttempt, retryConfigForPolicy, type RetryPolicy } from \"./retry\";\n\nexport class LightconeHttp {\n private readonly normalizedBaseUrl: string;\n private authToken: string | undefined;\n\n constructor(baseUrl: string) {\n this.normalizedBaseUrl = baseUrl.replace(/\\/+$/, \"\");\n }\n\n baseUrl(): string {\n return this.normalizedBaseUrl;\n }\n\n async clearAuthToken(): Promise<void> {\n this.authToken = undefined;\n }\n\n authTokenRef(): () => Promise<string | undefined> {\n return async () => this.authToken;\n }\n\n async get<T>(url: string, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\"GET\", url, undefined, retry);\n }\n\n async post<T, B extends object>(url: string, body: B, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\"POST\", url, body, retry);\n }\n\n private async requestWithRetry<T>(\n method: \"GET\" | \"POST\",\n url: string,\n body: object | undefined,\n policy: RetryPolicy\n ): Promise<T> {\n const config = retryConfigForPolicy(policy);\n if (!config) {\n return this.doRequest<T>(method, url, body);\n }\n\n let lastError: HttpError | undefined;\n\n for (let attempt = 0; attempt <= config.maxRetries; attempt += 1) {\n try {\n return await this.doRequest<T>(method, url, body);\n } catch (error) {\n if (!(error instanceof HttpError)) {\n throw error;\n }\n\n const shouldRetry = this.shouldRetry(error, config.retryableStatuses);\n if (!shouldRetry || attempt >= config.maxRetries) {\n throw error;\n }\n\n lastError = error;\n const delay = delayForAttempt(config, attempt);\n\n await sleep(delay);\n }\n }\n\n throw HttpError.maxRetriesExceeded(config.maxRetries + 1, lastError?.message ?? \"unknown\");\n }\n\n private shouldRetry(error: HttpError, retryableStatuses: readonly number[]): boolean {\n switch (error.variant) {\n case \"Timeout\":\n case \"Request\":\n case \"RateLimited\":\n return true;\n case \"ServerError\":\n return error.status !== undefined && retryableStatuses.includes(error.status);\n default:\n return false;\n }\n }\n\n private async doRequest<T>(method: \"GET\" | \"POST\", url: string, body?: object): Promise<T> {\n const headers: Record<string, string> = {};\n\n if (body) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n if (this.authToken && !hasBrowserWindow()) {\n headers.Cookie = `auth_token=${this.authToken}`;\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 30_000);\n\n let response: Response;\n\n try {\n response = await fetch(url, {\n method,\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n ...(hasBrowserWindow() ? { credentials: \"include\" as RequestCredentials } : {}),\n });\n } catch (error) {\n clearTimeout(timeoutId);\n if (error instanceof Error && error.name === \"AbortError\") {\n throw HttpError.timeout();\n }\n throw HttpError.request(error instanceof Error ? error.message : String(error));\n } finally {\n clearTimeout(timeoutId);\n }\n\n if (response.ok) {\n if (!hasBrowserWindow()) {\n const cookieHeader = response.headers.get(\"set-cookie\") ?? \"\";\n for (const part of cookieHeader.split(\",\")) {\n const trimmed = part.trim();\n if (trimmed.startsWith(\"auth_token=\")) {\n const token = trimmed.slice(\"auth_token=\".length).split(\";\")[0];\n if (token) {\n this.authToken = token;\n }\n }\n }\n }\n\n const text = await response.text();\n try {\n return JSON.parse(text) as T;\n } catch (e) {\n throw HttpError.request(e instanceof Error ? e.message : \"JSON parse failed\");\n }\n }\n\n const bodyText = await response.text().catch(() => \"\");\n\n const statusCode = response.status;\n if (statusCode === 401) throw HttpError.unauthorized();\n if (statusCode === 404) throw HttpError.notFound(bodyText);\n if (statusCode === 429) throw HttpError.rateLimited();\n if (statusCode >= 400 && statusCode < 500) throw HttpError.badRequest(bodyText);\n throw HttpError.serverError(statusCode, bodyText);\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\nfunction hasBrowserWindow(): boolean {\n return typeof globalThis !== \"undefined\" && \"window\" in globalThis;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { HttpError, SdkError } from \"../error\";\nimport {\n ApiRejectedDetails,\n isApiResponse,\n type ApiResponse,\n} from \"../shared/api_response\";\nimport { delayForAttempt, retryConfigForPolicy, type RetryPolicy } from \"./retry\";\n\ntype AuthMode = \"cookie\" | \"adminCookie\";\n\nexport class LightconeHttp {\n private readonly normalizedBaseUrl: string;\n private authToken: string | undefined;\n private adminToken: string | undefined;\n\n constructor(baseUrl: string) {\n this.normalizedBaseUrl = baseUrl.replace(/\\/+$/, \"\");\n }\n\n baseUrl(): string {\n return this.normalizedBaseUrl;\n }\n\n async clearAuthToken(): Promise<void> {\n this.authToken = undefined;\n }\n\n authTokenRef(): () => Promise<string | undefined> {\n return async () => this.authToken;\n }\n\n clearAdminToken(): void {\n this.adminToken = undefined;\n }\n\n async adminGet<T>(url: string, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\n \"GET\",\n url,\n undefined,\n retry,\n \"adminCookie\"\n );\n }\n\n async adminPost<T, B extends object>(url: string, body: B, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\"POST\", url, body, retry, \"adminCookie\");\n }\n\n async get<T>(url: string, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\"GET\", url, undefined, retry, \"cookie\");\n }\n\n async post<T, B extends object>(url: string, body: B, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\"POST\", url, body, retry, \"cookie\");\n }\n\n private async requestWithRetry<T>(\n method: \"GET\" | \"POST\",\n url: string,\n body: object | undefined,\n policy: RetryPolicy,\n authMode: AuthMode\n ): Promise<T> {\n const config = retryConfigForPolicy(policy);\n if (!config) {\n return this.sendAndParse<T>(method, url, body, authMode);\n }\n\n let lastError: HttpError | undefined;\n\n for (let attempt = 0; attempt <= config.maxRetries; attempt += 1) {\n try {\n const [apiResponse, requestId] = await this.sendRequest<ApiResponse<T>>(\n method,\n url,\n body,\n authMode\n );\n return parseApiResponse<T>(apiResponse, requestId);\n } catch (error) {\n if (!(error instanceof HttpError)) {\n throw error;\n }\n\n const shouldRetry = await this.shouldRetry(\n error,\n config.retryableStatuses\n );\n if (!shouldRetry || attempt >= config.maxRetries) {\n throw error;\n }\n\n lastError = error;\n const delay = delayForAttempt(config, attempt);\n\n await sleep(delay);\n }\n }\n\n throw HttpError.maxRetriesExceeded(config.maxRetries + 1, lastError?.message ?? \"unknown\");\n }\n\n private async shouldRetry(\n error: HttpError,\n retryableStatuses: readonly number[]\n ): Promise<boolean> {\n switch (error.variant) {\n case \"Timeout\":\n case \"Request\":\n return true;\n case \"RateLimited\":\n if (error.retryAfterMs !== undefined) {\n await sleep(error.retryAfterMs);\n }\n return true;\n case \"ServerError\":\n return error.status !== undefined && retryableStatuses.includes(error.status);\n default:\n return false;\n }\n }\n\n private async sendAndParse<T>(\n method: \"GET\" | \"POST\",\n url: string,\n body?: object,\n authMode: AuthMode = \"cookie\"\n ): Promise<T> {\n const [apiResponse, requestId] = await this.sendRequest<ApiResponse<T>>(\n method,\n url,\n body,\n authMode\n );\n return parseApiResponse<T>(apiResponse, requestId);\n }\n\n private async sendRequest<T>(\n method: \"GET\" | \"POST\",\n url: string,\n body?: object,\n authMode: AuthMode = \"cookie\"\n ): Promise<[T, string]> {\n const requestId = generateRequestId();\n const headers: Record<string, string> = {};\n\n if (body) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n headers[\"x-request-id\"] = requestId;\n\n if (!hasBrowserWindow()) {\n const cookie = this.cookieHeader(authMode);\n if (cookie) {\n headers.Cookie = cookie;\n }\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 30_000);\n\n let response: Response;\n\n try {\n response = await fetch(url, {\n method,\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n ...(hasBrowserWindow() ? { credentials: \"include\" as RequestCredentials } : {}),\n });\n } catch (error) {\n clearTimeout(timeoutId);\n if (error instanceof Error && error.name === \"AbortError\") {\n throw HttpError.timeout();\n }\n throw HttpError.request(error instanceof Error ? error.message : String(error));\n } finally {\n clearTimeout(timeoutId);\n }\n\n if (response.ok) {\n if (!hasBrowserWindow()) {\n this.captureCookies(response);\n }\n\n const text = await response.text();\n let payload: T;\n try {\n payload = JSON.parse(text) as T;\n } catch (e) {\n throw HttpError.request(e instanceof Error ? e.message : \"JSON parse failed\");\n }\n\n return [payload, requestId];\n }\n\n const bodyText = await response.text().catch(() => \"\");\n throw this.mapStatusError(response.status, bodyText, response.headers);\n }\n\n private captureCookies(response: Response): void {\n for (const cookieHeader of getSetCookieHeaders(response.headers)) {\n const authToken = extractCookieValue(cookieHeader, \"auth_token\");\n if (authToken) {\n this.authToken = authToken;\n }\n\n const adminToken = extractCookieValue(cookieHeader, \"admin_token\");\n if (adminToken) {\n this.adminToken = adminToken;\n }\n }\n }\n\n private cookieHeader(authMode: AuthMode): string | undefined {\n if (hasBrowserWindow()) {\n return undefined;\n }\n\n if (authMode === \"adminCookie\") {\n return this.adminToken ? `admin_token=${this.adminToken}` : undefined;\n }\n\n return this.authToken ? `auth_token=${this.authToken}` : undefined;\n }\n\n private mapStatusError(statusCode: number, bodyText: string, headers: Headers): HttpError {\n if (statusCode === 401) {\n return HttpError.unauthorized();\n }\n if (statusCode === 404) {\n return HttpError.notFound(bodyText);\n }\n if (statusCode === 429) {\n return HttpError.rateLimited(retryAfterMs(headers));\n }\n if (statusCode >= 400 && statusCode < 500) {\n return HttpError.badRequest(bodyText);\n }\n return HttpError.serverError(statusCode, bodyText);\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\nfunction parseApiResponse<T>(payload: unknown, requestId: string): T {\n if (!isApiResponse<T>(payload)) {\n throw SdkError.serde(\"Invalid ApiResponse envelope\");\n }\n\n if (payload.status === \"success\") {\n return payload.body;\n }\n\n throw SdkError.apiRejected(\n ApiRejectedDetails.fromWire(payload.error_details, requestId)\n );\n}\n\nfunction generateRequestId(): string {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n\n return `lc-${Date.now()}-${Math.random().toString(16).slice(2)}`;\n}\n\nfunction getSetCookieHeaders(headers: Headers): string[] {\n const headersWithCookies = headers as Headers & {\n getSetCookie?: () => string[];\n };\n\n if (typeof headersWithCookies.getSetCookie === \"function\") {\n const values = headersWithCookies.getSetCookie();\n if (values.length > 0) {\n return values;\n }\n }\n\n const combined = headers.get(\"set-cookie\");\n return combined ? [combined] : [];\n}\n\nfunction retryAfterMs(headers: Headers): number | undefined {\n const retryAfterMsValue = headers.get(\"retry-after-ms\");\n if (retryAfterMsValue) {\n const parsed = Number.parseInt(retryAfterMsValue, 10);\n if (Number.isFinite(parsed)) {\n return parsed;\n }\n }\n\n const retryAfterValue = headers.get(\"retry-after\");\n if (retryAfterValue) {\n const parsed = Number.parseFloat(retryAfterValue);\n if (Number.isFinite(parsed)) {\n return Math.round(parsed * 1000);\n }\n }\n\n return undefined;\n}\n\nfunction extractCookieValue(header: string, name: string): string | undefined {\n const match = header.match(\n new RegExp(`(?:^|,\\\\s*)${escapeRegExp(name)}=([^;,]+)`)\n );\n return match?.[1];\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction hasBrowserWindow(): boolean {\n return typeof globalThis !== \"undefined\" && \"window\" in globalThis;\n}\n"]}
|
package/dist/prelude.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { asOrderBookId, asPubkeyStr, DepositSource, deriveOrderbookId, OrderUpdateType, Resolution, Side, TimeInForce, TriggerResultStatus, TriggerStatus, TriggerType, TriggerUpdateType, type OrderBookId, type PubkeyStr, type SubmitOrderRequest, } from "./shared";
|
|
1
|
+
export { ApiRejectedDetails, RejectionCode, asOrderBookId, asPubkeyStr, DepositSource, deriveOrderbookId, OrderUpdateType, Resolution, Side, TimeInForce, TriggerResultStatus, TriggerStatus, TriggerType, TriggerUpdateType, type ApiResponse, type OrderBookId, type PubkeyStr, type SubmitOrderRequest, } from "./shared";
|
|
2
2
|
export { SdkError } from "./error";
|
|
3
3
|
export { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId } from "./env";
|
|
4
4
|
export { LightconeClient, LightconeClientBuilder, } from "./client";
|
package/dist/prelude.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"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"}
|
package/dist/prelude.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isUserCancellation = exports.TriggerOrderEnvelope = exports.LimitOrderEnvelope = exports.PriceHistoryState = exports.DepositPriceState = exports.TradeHistory = exports.GlobalToMarketDepositBuilder = exports.WithdrawFromGlobalBuilder = exports.DepositToGlobalBuilder = exports.ExtendPositionTokensBuilder = exports.InitPositionTokensBuilder = exports.WithdrawFromPositionBuilder = exports.RedeemWinningsBuilder = exports.WithdrawBuilder = exports.DepositBuilder = exports.OrderbookSnapshot = exports.OrderBookValidationError = exports.Referrals = exports.Notifications = exports.PriceHistoryClient = exports.Trades = exports.Positions = exports.Orders = exports.Orderbooks = exports.Markets = exports.Admin = exports.Auth = exports.Rpc = exports.LightconeClientBuilder = exports.LightconeClient = exports.programId = exports.rpcUrl = exports.wsUrl = exports.apiUrl = exports.LightconeEnv = exports.SdkError = exports.TriggerUpdateType = exports.TriggerType = exports.TriggerStatus = exports.TriggerResultStatus = exports.TimeInForce = exports.Side = exports.Resolution = exports.OrderUpdateType = exports.deriveOrderbookId = exports.DepositSource = exports.asPubkeyStr = exports.asOrderBookId = exports.RejectionCode = exports.ApiRejectedDetails = void 0;
|
|
4
|
+
exports.RetryPolicy = exports.MergeBuilder = void 0;
|
|
4
5
|
var shared_1 = require("./shared");
|
|
6
|
+
Object.defineProperty(exports, "ApiRejectedDetails", { enumerable: true, get: function () { return shared_1.ApiRejectedDetails; } });
|
|
7
|
+
Object.defineProperty(exports, "RejectionCode", { enumerable: true, get: function () { return shared_1.RejectionCode; } });
|
|
5
8
|
Object.defineProperty(exports, "asOrderBookId", { enumerable: true, get: function () { return shared_1.asOrderBookId; } });
|
|
6
9
|
Object.defineProperty(exports, "asPubkeyStr", { enumerable: true, get: function () { return shared_1.asPubkeyStr; } });
|
|
7
10
|
Object.defineProperty(exports, "DepositSource", { enumerable: true, get: function () { return shared_1.DepositSource; } });
|
package/dist/prelude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":";;;;AAAA,mCAmBkB;AAlBhB,4GAAA,kBAAkB,OAAA;AAClB,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA;AACb,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,2GAAA,iBAAiB,OAAA;AACjB,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AACV,8FAAA,IAAI,OAAA;AACJ,qGAAA,WAAW,OAAA;AACX,6GAAA,mBAAmB,OAAA;AACnB,uGAAA,aAAa,OAAA;AACb,qGAAA,WAAW,OAAA;AACX,2GAAA,iBAAiB,OAAA;AAOnB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AACjB,6BAAuE;AAA9D,mGAAA,YAAY,OAAA;AAAE,6FAAA,MAAM,OAAA;AAAE,4FAAA,KAAK,OAAA;AAAE,6FAAA,MAAM,OAAA;AAAE,gGAAA,SAAS,OAAA;AAEvD,mCAGkB;AAFhB,yGAAA,eAAe,OAAA;AACf,gHAAA,sBAAsB,OAAA;AAGxB,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AAGZ,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,wCAAuC;AAA9B,8FAAA,KAAK,OAAA;AACd,0CAA0C;AAAjC,iGAAA,OAAO,OAAA;AAChB,gDAAgD;AAAvC,uGAAA,UAAU,OAAA;AACnB,wCAAwC;AAA/B,+FAAA,MAAM,OAAA;AACf,8CAA8C;AAArC,qGAAA,SAAS,OAAA;AAClB,wCAAwC;AAA/B,+FAAA,MAAM,OAAA;AACf,wDAA4D;AAAnD,mHAAA,kBAAkB,OAAA;AAC3B,sDAAsD;AAA7C,6GAAA,aAAa,OAAA;AACtB,8CAA8C;AAArC,qGAAA,SAAS,OAAA;AAoBlB,gDAA8D;AAArD,qHAAA,wBAAwB,OAAA;AACjC,kDAA6D;AAApD,0GAAA,iBAAiB,OAAA;AAuC1B,8CAU2B;AATzB,0GAAA,cAAc,OAAA;AACd,2GAAA,eAAe,OAAA;AACf,iHAAA,qBAAqB,OAAA;AACrB,uHAAA,2BAA2B,OAAA;AAC3B,qHAAA,yBAAyB,OAAA;AACzB,uHAAA,2BAA2B,OAAA;AAC3B,kHAAA,sBAAsB,OAAA;AACtB,qHAAA,yBAAyB,OAAA;AACzB,wHAAA,4BAA4B,OAAA;AAI9B,8CAAoD;AAA3C,qGAAA,YAAY,OAAA;AAqBrB,wDAA8E;AAArE,kHAAA,iBAAiB,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAW7C,qCAKmB;AAJjB,6GAAA,kBAAkB,OAAA;AAClB,+GAAA,oBAAoB,OAAA;AActB,4CAI0B;AAHxB,6GAAA,kBAAkB,OAAA;AAKpB,8CAE2B;AADzB,wGAAA,YAAY,OAAA;AAiBd,+BAGgB;AAFd,mGAAA,WAAW,OAAA","sourcesContent":["export {\n ApiRejectedDetails,\n RejectionCode,\n asOrderBookId,\n asPubkeyStr,\n DepositSource,\n deriveOrderbookId,\n OrderUpdateType,\n Resolution,\n Side,\n TimeInForce,\n TriggerResultStatus,\n TriggerStatus,\n TriggerType,\n TriggerUpdateType,\n type ApiResponse,\n type OrderBookId,\n type PubkeyStr,\n type SubmitOrderRequest,\n} from \"./shared\";\n\nexport { SdkError } from \"./error\";\nexport { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId } from \"./env\";\n\nexport {\n LightconeClient,\n LightconeClientBuilder,\n} from \"./client\";\n\nexport { Rpc } from \"./rpc\";\nexport type { ClientContext } from \"./context\";\n\nexport { Auth } from \"./auth\";\nexport { Admin } from \"./domain/admin\";\nexport { Markets } from \"./domain/market\";\nexport { Orderbooks } from \"./domain/orderbook\";\nexport { Orders } from \"./domain/order\";\nexport { Positions } from \"./domain/position\";\nexport { Trades } from \"./domain/trade\";\nexport { PriceHistoryClient } from \"./domain/price_history\";\nexport { Notifications } from \"./domain/notification\";\nexport { Referrals } from \"./domain/referral\";\n\nexport type {\n Market,\n Status,\n Outcome,\n ConditionalToken,\n DepositAsset,\n Token,\n TokenMetadata,\n ValidatedTokens,\n} from \"./domain/market\";\n\nexport type {\n OrderBook,\n OrderBookPair,\n OutcomeImpact,\n TickerData,\n WsBookLevel,\n} from \"./domain/orderbook\";\nexport { OrderBookValidationError } from \"./domain/orderbook\";\nexport { OrderbookSnapshot } from \"./domain/orderbook/state\";\n\nexport type {\n CancelAllBody,\n CancelAllSuccess,\n CancelBody,\n CancelSuccess,\n CancelTriggerBody,\n CancelTriggerSuccess,\n ConditionalBalance,\n FillInfo,\n GlobalDepositUpdate,\n NonceUpdate,\n Order,\n OrderEvent,\n OrderStatus,\n OrderType,\n SubmitOrderResponse,\n TriggerOrder,\n TriggerOrderResponse,\n TriggerOrderUpdate,\n UserSnapshotBalance,\n UserSnapshotOrder,\n UserOrdersResponse,\n} from \"./domain/order\";\nexport type { UserOpenOrders, UserTriggerOrders } from \"./domain/order/state\";\n\nexport type {\n Portfolio,\n Position,\n PositionOutcome,\n WalletHolding,\n TokenBalance,\n TokenBalanceComputedBase,\n TokenBalanceTokenType,\n DepositAssetMetadata,\n DepositTokenBalance,\n} from \"./domain/position\";\n\nexport {\n DepositBuilder,\n WithdrawBuilder,\n RedeemWinningsBuilder,\n WithdrawFromPositionBuilder,\n InitPositionTokensBuilder,\n ExtendPositionTokensBuilder,\n DepositToGlobalBuilder,\n WithdrawFromGlobalBuilder,\n GlobalToMarketDepositBuilder,\n} from \"./domain/position\";\n\nexport type { Trade, WsTrade } from \"./domain/trade\";\nexport { TradeHistory } from \"./domain/trade/state\";\nexport type {\n DepositPrice,\n DepositPriceCandleUpdate,\n DepositPriceHistoryQuery,\n DepositPriceKey,\n DepositPriceSnapshot,\n DepositPriceTick,\n DepositTokenCandle,\n DepositTokenPriceHistoryResponse,\n LineData,\n MidpointPriceCandle,\n OhlcvPriceCandle,\n OrderbookPriceHistoryQuery,\n OrderbookPriceHistoryResponse,\n PriceCandle,\n PriceHistory,\n PriceHistoryRestResponse,\n PriceHistorySnapshot,\n PriceHistoryUpdate,\n} from \"./domain/price_history\";\nexport { DepositPriceState, PriceHistoryState } from \"./domain/price_history\";\n\nexport type {\n AuthCredentials,\n ChainType,\n EmbeddedWallet,\n LinkedAccount,\n LinkedAccountType,\n User,\n} from \"./auth\";\n\nexport {\n LimitOrderEnvelope,\n TriggerOrderEnvelope,\n type OrderEnvelope,\n type OrderPayload,\n} from \"./program\";\n\nexport type {\n ExportWalletRequest,\n ExportWalletResponse,\n PrivyOrderEnvelope,\n SignAndSendOrderRequest,\n SignAndSendTxRequest,\n SignAndSendTxResponse,\n} from \"./privy\";\n\nexport {\n isUserCancellation,\n type ExternalSigner,\n type SigningStrategy,\n} from \"./shared/signing\";\n\nexport {\n MergeBuilder,\n} from \"./domain/position\";\n\nexport type {\n Notification,\n NotificationKind,\n MarketResolvedData,\n OrderFilledData,\n MarketData,\n} from \"./domain/notification\";\n\nexport type {\n RedeemResult,\n ReferralCodeInfo,\n ReferralStatus,\n} from \"./domain/referral\";\n\nexport {\n RetryPolicy,\n type RetryConfig,\n} from \"./http\";\n\nexport type {\n IWsClient,\n Kind,\n MessageIn,\n MessageOut,\n SubscribeParams,\n UnsubscribeParams,\n WsConfig,\n WsEvent,\n} from \"./ws\";\n\nexport type AuthClient = import(\"./auth\").Auth;\nexport type AdminClient = import(\"./domain/admin\").Admin;\nexport type MarketsClient = import(\"./domain/market\").Markets;\nexport type MarketsResult = import(\"./domain/market\").MarketsResult;\nexport type OrderbooksClient = import(\"./domain/orderbook\").Orderbooks;\nexport type OrdersClient = import(\"./domain/order\").Orders;\nexport type PositionsClient = import(\"./domain/position\").Positions;\nexport type TradesClient = import(\"./domain/trade\").Trades;\nexport type PriceHistorySubClient = import(\"./domain/price_history\").PriceHistoryClient;\nexport type NotificationsClient = import(\"./domain/notification\").Notifications;\nexport type ReferralsClient = import(\"./domain/referral\").Referrals;\nexport type RpcClient = import(\"./rpc\").Rpc;\n"]}
|
package/dist/privy/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type LightconeHttp } from "../http";
|
|
2
|
-
import type { ExportWalletResponse, PrivyOrderEnvelope, SignAndCancelAllResponse,
|
|
2
|
+
import type { ExportWalletResponse, LimitCancelResponse, PrivyOrderEnvelope, SignAndCancelAllResponse, TriggerCancelResponse, SignAndSendOrderResponse, SignAndSendTxResponse } from "./index";
|
|
3
3
|
interface ClientContext {
|
|
4
4
|
http: LightconeHttp;
|
|
5
5
|
}
|
|
@@ -8,8 +8,8 @@ export declare class Privy {
|
|
|
8
8
|
constructor(client: ClientContext);
|
|
9
9
|
signAndSendTx(walletId: string, base64Tx: string): Promise<SignAndSendTxResponse>;
|
|
10
10
|
signAndSendOrder(walletId: string, order: PrivyOrderEnvelope): Promise<SignAndSendOrderResponse>;
|
|
11
|
-
signAndCancelOrder(walletId: string, orderHash: string, maker: string): Promise<
|
|
12
|
-
signAndCancelTriggerOrder(walletId: string, triggerOrderId: string, maker: string): Promise<
|
|
11
|
+
signAndCancelOrder(walletId: string, orderHash: string, maker: string): Promise<LimitCancelResponse>;
|
|
12
|
+
signAndCancelTriggerOrder(walletId: string, triggerOrderId: string, maker: string): Promise<TriggerCancelResponse>;
|
|
13
13
|
signAndCancelAllOrders(walletId: string, userPubkey: string, orderbookId: string, timestamp: number, salt: string): Promise<SignAndCancelAllResponse>;
|
|
14
14
|
exportWallet(walletId: string, decodePubkeyBase64: string): Promise<ExportWalletResponse>;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/privy/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAEV,oBAAoB,EACpB,kBAAkB,EAElB,wBAAwB,EAExB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/privy/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAElB,wBAAwB,EAExB,qBAAqB,EAErB,wBAAwB,EAExB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAajF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAepG,yBAAyB,CAC7B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,qBAAqB,CAAC;IAe3B,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,wBAAwB,CAAC;IAY9B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAYhG"}
|
package/dist/privy/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/privy/client.ts"],"names":[],"mappings":";;;AAAA,kCAA0D;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/privy/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { RetryPolicy, type LightconeHttp } from \"../http\";\nimport type {\n ExportWalletRequest,\n ExportWalletResponse,\n LimitCancelResponse,\n PrivyOrderEnvelope,\n SignAndCancelAllRequest,\n SignAndCancelAllResponse,\n SignAndCancelOrderRequest,\n TriggerCancelResponse,\n SignAndSendOrderRequest,\n SignAndSendOrderResponse,\n SignAndSendTxRequest,\n SignAndSendTxResponse,\n} from \"./index\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class Privy {\n constructor(private readonly client: ClientContext) {}\n\n async signAndSendTx(walletId: string, base64Tx: string): Promise<SignAndSendTxResponse> {\n const url = `${this.client.http.baseUrl()}/api/privy/sign_and_send_tx`;\n const body: SignAndSendTxRequest = {\n wallet_id: walletId,\n base64_tx: base64Tx,\n };\n return this.client.http.post<SignAndSendTxResponse, SignAndSendTxRequest>(\n url,\n body,\n RetryPolicy.None\n );\n }\n\n async signAndSendOrder(walletId: string, order: PrivyOrderEnvelope): Promise<SignAndSendOrderResponse> {\n const url = `${this.client.http.baseUrl()}/api/privy/sign_and_send_order`;\n const body: SignAndSendOrderRequest = {\n wallet_id: walletId,\n order,\n };\n return this.client.http.post<SignAndSendOrderResponse, SignAndSendOrderRequest>(url, body, RetryPolicy.None);\n }\n\n async signAndCancelOrder(walletId: string, orderHash: string, maker: string): Promise<LimitCancelResponse> {\n const url = `${this.client.http.baseUrl()}/api/privy/sign_and_cancel_order`;\n const body: SignAndCancelOrderRequest = {\n wallet_id: walletId,\n maker,\n cancel_type: \"limit\",\n order_hash: orderHash,\n };\n return this.client.http.post<LimitCancelResponse, SignAndCancelOrderRequest>(\n url,\n body,\n RetryPolicy.None\n );\n }\n\n async signAndCancelTriggerOrder(\n walletId: string,\n triggerOrderId: string,\n maker: string\n ): Promise<TriggerCancelResponse> {\n const url = `${this.client.http.baseUrl()}/api/privy/sign_and_cancel_order`;\n const body: SignAndCancelOrderRequest = {\n wallet_id: walletId,\n maker,\n cancel_type: \"trigger\",\n trigger_order_id: triggerOrderId,\n };\n return this.client.http.post<TriggerCancelResponse, SignAndCancelOrderRequest>(\n url,\n body,\n RetryPolicy.None\n );\n }\n\n async signAndCancelAllOrders(\n walletId: string,\n userPubkey: string,\n orderbookId: string,\n timestamp: number,\n salt: string\n ): Promise<SignAndCancelAllResponse> {\n const url = `${this.client.http.baseUrl()}/api/privy/sign_and_cancel_all_orders`;\n const body: SignAndCancelAllRequest = {\n wallet_id: walletId,\n user_pubkey: userPubkey,\n orderbook_id: orderbookId,\n timestamp,\n salt,\n };\n return this.client.http.post<SignAndCancelAllResponse, SignAndCancelAllRequest>(url, body, RetryPolicy.None);\n }\n\n async exportWallet(walletId: string, decodePubkeyBase64: string): Promise<ExportWalletResponse> {\n const url = `${this.client.http.baseUrl()}/api/privy/wallet/export`;\n const body: ExportWalletRequest = {\n wallet_id: walletId,\n decode_pubkey_base64: decodePubkeyBase64,\n };\n return this.client.http.post<ExportWalletResponse, ExportWalletRequest>(\n url,\n body,\n RetryPolicy.None\n );\n }\n}\n"]}
|
package/dist/privy/index.d.ts
CHANGED
|
@@ -64,7 +64,6 @@ export interface OrderFill {
|
|
|
64
64
|
}
|
|
65
65
|
export interface LimitOrderResponse {
|
|
66
66
|
order_hash: string;
|
|
67
|
-
status: string;
|
|
68
67
|
remaining: string;
|
|
69
68
|
filled: string;
|
|
70
69
|
fills: OrderFill[];
|
|
@@ -72,21 +71,17 @@ export interface LimitOrderResponse {
|
|
|
72
71
|
export interface TriggerOrderResponse {
|
|
73
72
|
trigger_order_id: string;
|
|
74
73
|
order_hash: string;
|
|
75
|
-
status: string;
|
|
76
74
|
}
|
|
77
75
|
export type SignAndSendOrderResponse = LimitOrderResponse | TriggerOrderResponse;
|
|
78
76
|
export interface LimitCancelResponse {
|
|
79
|
-
status: string;
|
|
80
77
|
order_hash: string;
|
|
81
|
-
remaining:
|
|
78
|
+
remaining: number;
|
|
82
79
|
}
|
|
83
80
|
export interface TriggerCancelResponse {
|
|
84
|
-
status: string;
|
|
85
81
|
trigger_order_id: string;
|
|
86
82
|
}
|
|
87
83
|
export type SignAndCancelOrderResponse = LimitCancelResponse | TriggerCancelResponse;
|
|
88
84
|
export interface SignAndCancelAllResponse {
|
|
89
|
-
status: string;
|
|
90
85
|
user_pubkey: string;
|
|
91
86
|
orderbook_id: string;
|
|
92
87
|
cancelled_order_hashes: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,WAAW,EAAE,WAAW,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,WAAW,EAAE,WAAW,CAAC;IAC/C,cAAc,CAAC,EAAE,OAAO,WAAW,EAAE,aAAa,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,WAAW,EAAE,SAAS,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,YAAY,CAAC;AAEjB,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":"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"}
|
package/dist/privy/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from \"./client\";\nimport { SdkError } from \"../error\";\nimport type { LimitOrderEnvelope, TriggerOrderEnvelope } from \"../program/envelope\";\n\nexport interface SignAndSendTxRequest {\n wallet_id: string;\n base64_tx: string;\n}\n\nexport interface SignAndSendTxResponse {\n hash: string;\n}\n\nexport interface PrivyOrderEnvelope {\n maker: string;\n nonce: number;\n salt: number;\n market_pubkey: string;\n base_token: string;\n quote_token: string;\n side: number;\n amount_in: number;\n amount_out: number;\n expiration?: number;\n orderbook_id: string;\n tif?: import(\"../shared\").TimeInForce;\n trigger_price?: number;\n trigger_type?: import(\"../shared\").TriggerType;\n deposit_source?: import(\"../shared\").DepositSource;\n}\n\nexport interface SignAndSendOrderRequest {\n wallet_id: string;\n order: PrivyOrderEnvelope;\n}\n\nexport type CancelTarget =\n | { cancel_type: \"limit\"; order_hash: string }\n | { cancel_type: \"trigger\"; trigger_order_id: string };\n\nexport type SignAndCancelOrderRequest = {\n wallet_id: string;\n maker: string;\n} & CancelTarget;\n\nexport interface SignAndCancelAllRequest {\n wallet_id: string;\n user_pubkey: string;\n orderbook_id: string;\n timestamp: number;\n salt: string;\n}\n\nexport interface ExportWalletRequest {\n wallet_id: string;\n decode_pubkey_base64: string;\n}\n\nexport interface ExportWalletResponse {\n encryption_type: string;\n ciphertext: string;\n encapsulated_key: string;\n}\n\nexport interface OrderFill {\n counterparty: string;\n counterparty_order_hash: string;\n fill_amount: string;\n price: string;\n is_maker: boolean;\n}\n\nexport interface LimitOrderResponse {\n order_hash: string;\n remaining: string;\n filled: string;\n fills: OrderFill[];\n}\n\nexport interface TriggerOrderResponse {\n trigger_order_id: string;\n order_hash: string;\n}\n\nexport type SignAndSendOrderResponse = LimitOrderResponse | TriggerOrderResponse;\n\nexport interface LimitCancelResponse {\n order_hash: string;\n remaining: number;\n}\n\nexport interface TriggerCancelResponse {\n trigger_order_id: string;\n}\n\nexport type SignAndCancelOrderResponse = LimitCancelResponse | TriggerCancelResponse;\n\nexport interface SignAndCancelAllResponse {\n user_pubkey: string;\n orderbook_id: string;\n cancelled_order_hashes: string[];\n count: number;\n message: string;\n}\n\nfunction requireDefined<T>(\n value: T | undefined,\n field: string\n): T {\n if (value === undefined) {\n throw SdkError.validation(`Missing required field: ${field}`);\n }\n return value;\n}\n\nfunction bigintToSafeNumber(value: bigint, field: string): number {\n const max = BigInt(Number.MAX_SAFE_INTEGER);\n if (value > max || value < -max) {\n throw SdkError.validation(`${field} exceeds Number.MAX_SAFE_INTEGER`);\n }\n return Number(value);\n}\n\nexport function privyOrderFromLimitEnvelope(\n envelope: LimitOrderEnvelope,\n orderbookId: string\n): PrivyOrderEnvelope {\n const maker = requireDefined(envelope.getMaker(), \"maker\");\n const nonce = requireDefined(envelope.getNonce(), \"nonce\");\n const salt = requireDefined(envelope.getSalt(), \"salt\");\n const market = requireDefined(envelope.getMarket(), \"market\");\n const baseMint = requireDefined(envelope.getBaseMint(), \"base_mint\");\n const quoteMint = requireDefined(envelope.getQuoteMint(), \"quote_mint\");\n const side = requireDefined(envelope.getSide(), \"side\");\n const amountIn = requireDefined(envelope.getAmountIn(), \"amount_in\");\n const amountOut = requireDefined(envelope.getAmountOut(), \"amount_out\");\n\n return {\n maker: maker.toBase58(),\n nonce,\n salt: bigintToSafeNumber(salt, \"salt\"),\n market_pubkey: market.toBase58(),\n base_token: baseMint.toBase58(),\n quote_token: quoteMint.toBase58(),\n side,\n amount_in: bigintToSafeNumber(amountIn, \"amount_in\"),\n amount_out: bigintToSafeNumber(amountOut, \"amount_out\"),\n expiration: bigintToSafeNumber(envelope.getExpiration(), \"expiration\"),\n orderbook_id: orderbookId,\n deposit_source: envelope.getDepositSource(),\n };\n}\n\nexport function privyOrderFromTriggerEnvelope(\n envelope: TriggerOrderEnvelope,\n orderbookId: string\n): PrivyOrderEnvelope {\n const maker = requireDefined(envelope.getMaker(), \"maker\");\n const nonce = requireDefined(envelope.getNonce(), \"nonce\");\n const salt = requireDefined(envelope.getSalt(), \"salt\");\n const market = requireDefined(envelope.getMarket(), \"market\");\n const baseMint = requireDefined(envelope.getBaseMint(), \"base_mint\");\n const quoteMint = requireDefined(envelope.getQuoteMint(), \"quote_mint\");\n const side = requireDefined(envelope.getSide(), \"side\");\n const amountIn = requireDefined(envelope.getAmountIn(), \"amount_in\");\n const amountOut = requireDefined(envelope.getAmountOut(), \"amount_out\");\n\n return {\n maker: maker.toBase58(),\n nonce,\n salt: bigintToSafeNumber(salt, \"salt\"),\n market_pubkey: market.toBase58(),\n base_token: baseMint.toBase58(),\n quote_token: quoteMint.toBase58(),\n side,\n amount_in: bigintToSafeNumber(amountIn, \"amount_in\"),\n amount_out: bigintToSafeNumber(amountOut, \"amount_out\"),\n expiration: bigintToSafeNumber(envelope.getExpiration(), \"expiration\"),\n orderbook_id: orderbookId,\n tif: envelope.getTimeInForce(),\n trigger_price: envelope.getTriggerPrice(),\n trigger_type: envelope.getTriggerType(),\n deposit_source: envelope.getDepositSource(),\n };\n}\n"]}
|
|
@@ -96,8 +96,9 @@ export declare function deserializePosition(data: Buffer): Position;
|
|
|
96
96
|
* - mint_a: Pubkey (32 bytes)
|
|
97
97
|
* - mint_b: Pubkey (32 bytes)
|
|
98
98
|
* - lookup_table: Pubkey (32 bytes)
|
|
99
|
+
* - base_index: u8 (1 byte)
|
|
99
100
|
* - bump: u8 (1 byte)
|
|
100
|
-
* - _padding: [u8;
|
|
101
|
+
* - _padding: [u8; 6]
|
|
101
102
|
*/
|
|
102
103
|
export declare function deserializeOrderbook(data: Buffer): Orderbook;
|
|
103
104
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,MAAM,EAEN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACV,MAAM,SAAS,CAAC;AAyBjB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjE;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAyC1D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAyBhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAmB5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CA6B1D;AAED
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,MAAM,EAEN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACV,MAAM,SAAS,CAAC;AAyBjB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjE;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAyC1D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAyBhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAmB5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CA6B1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAyC5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA8B9E"}
|
package/dist/program/accounts.js
CHANGED
|
@@ -300,8 +300,9 @@ function deserializePosition(data) {
|
|
|
300
300
|
* - mint_a: Pubkey (32 bytes)
|
|
301
301
|
* - mint_b: Pubkey (32 bytes)
|
|
302
302
|
* - lookup_table: Pubkey (32 bytes)
|
|
303
|
+
* - base_index: u8 (1 byte)
|
|
303
304
|
* - bump: u8 (1 byte)
|
|
304
|
-
* - _padding: [u8;
|
|
305
|
+
* - _padding: [u8; 6]
|
|
305
306
|
*/
|
|
306
307
|
function deserializeOrderbook(data) {
|
|
307
308
|
if (data.length < constants_1.ACCOUNT_SIZE.ORDERBOOK) {
|
|
@@ -319,15 +320,18 @@ function deserializeOrderbook(data) {
|
|
|
319
320
|
offset += 32;
|
|
320
321
|
const lookupTable = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
|
|
321
322
|
offset += 32;
|
|
323
|
+
const baseIndex = data[offset];
|
|
324
|
+
offset += 1;
|
|
322
325
|
const bump = data[offset];
|
|
323
326
|
offset += 1;
|
|
324
|
-
// Skip padding:
|
|
327
|
+
// Skip padding: 6 bytes
|
|
325
328
|
return {
|
|
326
329
|
discriminator,
|
|
327
330
|
market,
|
|
328
331
|
mintA,
|
|
329
332
|
mintB,
|
|
330
333
|
lookupTable,
|
|
334
|
+
baseIndex,
|
|
331
335
|
bump,
|
|
332
336
|
};
|
|
333
337
|
}
|