@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/README.md
CHANGED
|
@@ -12,8 +12,10 @@ TypeScript SDK for the Lightcone impact market protocol on Solana.
|
|
|
12
12
|
- [Step 4: Monitor](#step-4-monitor)
|
|
13
13
|
- [Step 5: Cancel an Order](#step-5-cancel-an-order)
|
|
14
14
|
- [Step 6: Exit a Position](#step-6-exit-a-position)
|
|
15
|
-
- [
|
|
15
|
+
- [Step 7: Withdraw](#step-7-withdraw)
|
|
16
16
|
- [Authentication](#authentication)
|
|
17
|
+
- [Environment Configuration](#environment-configuration)
|
|
18
|
+
- [Examples](#examples)
|
|
17
19
|
- [Error Handling](#error-handling)
|
|
18
20
|
- [Retry Strategy](#retry-strategy)
|
|
19
21
|
|
|
@@ -35,29 +37,39 @@ import {
|
|
|
35
37
|
|
|
36
38
|
async function main() {
|
|
37
39
|
const client = LightconeClient.builder()
|
|
38
|
-
.rpcUrl("https://api.devnet.solana.com")
|
|
39
40
|
.depositSource(DepositSource.Market)
|
|
40
41
|
.build();
|
|
41
42
|
const keypair = Keypair.generate();
|
|
42
43
|
|
|
43
44
|
// 1. Authenticate
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
);
|
|
52
|
-
}
|
|
45
|
+
const nonce = await client.auth().getNonce();
|
|
46
|
+
const signed = auth.signLoginMessage(keypair, nonce);
|
|
47
|
+
await client.auth().loginWithMessage(
|
|
48
|
+
signed.message,
|
|
49
|
+
signed.signature_bs58,
|
|
50
|
+
signed.pubkey_bytes
|
|
51
|
+
);
|
|
53
52
|
|
|
54
53
|
// 2. Find a market
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
const market = (await client.markets().get(undefined, 1)).markets[0];
|
|
55
|
+
if (!market) {
|
|
56
|
+
throw new Error("No markets returned by the API");
|
|
57
|
+
}
|
|
58
|
+
const orderbook =
|
|
59
|
+
market.orderbookPairs.find((pair) => pair.active) ?? market.orderbookPairs[0];
|
|
60
|
+
if (!orderbook) {
|
|
61
|
+
throw new Error("Selected market has no orderbooks");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// 3. Deposit collateral to the global pool
|
|
65
|
+
const depositMint = new PublicKey(market.depositAssets[0].pubkey);
|
|
66
|
+
const depositIx = client.positions().deposit()
|
|
67
|
+
.user(keypair.publicKey)
|
|
68
|
+
.mint(depositMint)
|
|
69
|
+
.amount(1_000_000n)
|
|
70
|
+
.buildIx();
|
|
58
71
|
|
|
59
|
-
//
|
|
60
|
-
// market, baseMint, quoteMint, and nonce are auto-filled from the orderbook.
|
|
72
|
+
// 4. Build, sign, and submit a limit order
|
|
61
73
|
const response = await client.orders().limitOrder()
|
|
62
74
|
.maker(keypair.publicKey)
|
|
63
75
|
.bid()
|
|
@@ -66,7 +78,14 @@ async function main() {
|
|
|
66
78
|
.submit(client, orderbook);
|
|
67
79
|
console.log("Order submitted:", response);
|
|
68
80
|
|
|
69
|
-
// 5.
|
|
81
|
+
// 5. Withdraw from the global pool
|
|
82
|
+
const withdrawIx = client.positions().withdraw()
|
|
83
|
+
.user(keypair.publicKey)
|
|
84
|
+
.mint(depositMint)
|
|
85
|
+
.amount(1_000_000n)
|
|
86
|
+
.buildIx();
|
|
87
|
+
|
|
88
|
+
// 6. Stream real-time updates
|
|
70
89
|
const ws = client.ws();
|
|
71
90
|
await ws.connect();
|
|
72
91
|
ws.subscribe({ type: "book_update", orderbook_ids: [orderbook.orderbookId] });
|
|
@@ -79,13 +98,17 @@ main().catch(console.error);
|
|
|
79
98
|
|
|
80
99
|
```typescript
|
|
81
100
|
import * as fs from "fs";
|
|
101
|
+
import * as os from "os";
|
|
82
102
|
import * as path from "path";
|
|
83
103
|
import { Keypair, PublicKey } from "@solana/web3.js";
|
|
84
|
-
import {
|
|
104
|
+
import {
|
|
105
|
+
LightconeClient,
|
|
106
|
+
DepositSource,
|
|
107
|
+
} from "@lightconexyz/lightcone-sdk";
|
|
85
108
|
|
|
86
109
|
function readKeypairFile(filePath: string): Keypair {
|
|
87
|
-
const resolved = filePath.startsWith("
|
|
88
|
-
? path.join(
|
|
110
|
+
const resolved = filePath.startsWith("~/")
|
|
111
|
+
? path.join(os.homedir(), filePath.slice(2))
|
|
89
112
|
: filePath;
|
|
90
113
|
const secret = JSON.parse(fs.readFileSync(resolved, "utf-8"));
|
|
91
114
|
return Keypair.fromSecretKey(Uint8Array.from(secret));
|
|
@@ -93,19 +116,26 @@ function readKeypairFile(filePath: string): Keypair {
|
|
|
93
116
|
|
|
94
117
|
const keypair = readKeypairFile("~/.config/solana/id.json");
|
|
95
118
|
|
|
119
|
+
// Defaults to Prod. Use .env(LightconeEnv.Staging) for staging.
|
|
96
120
|
const client = LightconeClient.builder()
|
|
97
|
-
.rpcUrl("https://api.devnet.solana.com")
|
|
98
121
|
.nativeSigner(keypair)
|
|
122
|
+
.depositSource(DepositSource.Market)
|
|
99
123
|
.build();
|
|
100
124
|
```
|
|
101
125
|
|
|
102
126
|
### Step 1: Find a Market
|
|
103
127
|
|
|
104
128
|
```typescript
|
|
105
|
-
const
|
|
106
|
-
|
|
129
|
+
const market = (await client.markets().get(undefined, 1)).markets[0];
|
|
130
|
+
if (!market) {
|
|
131
|
+
throw new Error("No markets returned by the API");
|
|
132
|
+
}
|
|
133
|
+
|
|
107
134
|
const orderbook =
|
|
108
135
|
market.orderbookPairs.find((pair) => pair.active) ?? market.orderbookPairs[0];
|
|
136
|
+
if (!orderbook) {
|
|
137
|
+
throw new Error("Selected market has no orderbooks");
|
|
138
|
+
}
|
|
109
139
|
```
|
|
110
140
|
|
|
111
141
|
### Step 2: Deposit Collateral
|
|
@@ -116,7 +146,6 @@ const depositIx = client.positions().deposit()
|
|
|
116
146
|
.user(keypair.publicKey)
|
|
117
147
|
.mint(depositMint)
|
|
118
148
|
.amount(1_000_000n)
|
|
119
|
-
.withMarketDepositSource(market)
|
|
120
149
|
.buildIx();
|
|
121
150
|
```
|
|
122
151
|
|
|
@@ -173,11 +202,49 @@ const txHash = await client.positions().merge()
|
|
|
173
202
|
.signAndSubmit();
|
|
174
203
|
```
|
|
175
204
|
|
|
205
|
+
### Step 7: Withdraw
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
const withdrawIx = client.positions().withdraw()
|
|
209
|
+
.user(keypair.publicKey)
|
|
210
|
+
.mint(depositMint)
|
|
211
|
+
.amount(1_000_000n)
|
|
212
|
+
.buildIx();
|
|
213
|
+
```
|
|
214
|
+
|
|
176
215
|
## Authentication
|
|
177
|
-
|
|
216
|
+
|
|
217
|
+
Authentication is only required for user-specific endpoints. Authentication is session-based using ED25519 signed messages. The flow is: request a nonce, sign it with your wallet, and exchange it for a session cookie.
|
|
218
|
+
|
|
219
|
+
## Environment Configuration
|
|
220
|
+
|
|
221
|
+
The SDK defaults to the **production** environment. Use `LightconeEnv` to target a different deployment:
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
import {
|
|
225
|
+
LightconeClient,
|
|
226
|
+
LightconeEnv,
|
|
227
|
+
} from "@lightconexyz/lightcone-sdk";
|
|
228
|
+
|
|
229
|
+
// Production (default — no .env() call needed)
|
|
230
|
+
const prodClient = LightconeClient.builder().build();
|
|
231
|
+
|
|
232
|
+
// Staging
|
|
233
|
+
const stagingClient = LightconeClient.builder()
|
|
234
|
+
.env(LightconeEnv.Staging)
|
|
235
|
+
.build();
|
|
236
|
+
|
|
237
|
+
// Local development
|
|
238
|
+
const localClient = LightconeClient.builder()
|
|
239
|
+
.env(LightconeEnv.Local)
|
|
240
|
+
.build();
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Each environment configures the API URL, WebSocket URL, Solana RPC URL, and on-chain program ID automatically. Individual URL overrides (`.baseUrl()`, `.wsUrl()`, `.rpcUrl()`) take precedence when called after `.env()`.
|
|
178
244
|
|
|
179
245
|
## Examples
|
|
180
|
-
|
|
246
|
+
|
|
247
|
+
All examples are runnable with `npx tsx examples/<name>.ts`. Examples default to the production environment and read the wallet keypair from `~/.config/solana/id.json`.
|
|
181
248
|
|
|
182
249
|
### Setup & Authentication
|
|
183
250
|
|
|
@@ -213,7 +280,7 @@ All examples are runnable with `npx tsx examples/<name>.ts`. Set environment var
|
|
|
213
280
|
| Example | Description |
|
|
214
281
|
|---------|-------------|
|
|
215
282
|
| [`read_onchain`](examples/read_onchain.ts) | Read exchange state, market state, user nonce, and PDA derivations via RPC |
|
|
216
|
-
| [`onchain_transactions`](examples/onchain_transactions.ts) | Build, sign, and submit
|
|
283
|
+
| [`onchain_transactions`](examples/onchain_transactions.ts) | Build, sign, and submit mint/merge complete set and increment nonce on-chain |
|
|
217
284
|
| [`global_deposit_withdrawal`](examples/global_deposit_withdrawal.ts) | Init position tokens, deposit to global pool, move capital into a market, extend an existing ALT, and withdraw from global |
|
|
218
285
|
|
|
219
286
|
### WebSocket Streaming
|
|
@@ -226,32 +293,94 @@ All examples are runnable with `npx tsx examples/<name>.ts`. Set environment var
|
|
|
226
293
|
|
|
227
294
|
## Error Handling
|
|
228
295
|
|
|
229
|
-
All SDK operations
|
|
296
|
+
All SDK operations reject with `SdkError`:
|
|
230
297
|
|
|
231
298
|
| Variant | When |
|
|
232
299
|
|---------|------|
|
|
233
|
-
| `
|
|
234
|
-
| `
|
|
235
|
-
| `
|
|
236
|
-
| `
|
|
237
|
-
| `
|
|
238
|
-
| `
|
|
239
|
-
| `
|
|
240
|
-
| `
|
|
241
|
-
| `
|
|
300
|
+
| `Http` | REST request failures |
|
|
301
|
+
| `Ws` | WebSocket connection/protocol errors |
|
|
302
|
+
| `Auth` | Authentication failures |
|
|
303
|
+
| `Validation` | Domain type conversion failures |
|
|
304
|
+
| `Serde` | Serialization errors |
|
|
305
|
+
| `MissingMarketContext` | Market context not provided for an operation requiring `DepositSource.Market` |
|
|
306
|
+
| `Signing` | Signing operation failures |
|
|
307
|
+
| `UserCancelled` | User cancelled wallet signing prompt |
|
|
308
|
+
| `ApiRejected` | Backend rejected the request (see [API Rejections](#api-rejections)) |
|
|
309
|
+
| `Program` | On-chain program errors (RPC, account parsing) |
|
|
310
|
+
| `Other` | Catch-all |
|
|
311
|
+
|
|
312
|
+
### API Rejections
|
|
313
|
+
|
|
314
|
+
When the backend rejects a request (insufficient balance, expired order, etc.), the SDK throws `SdkError` with `variant === "ApiRejected"`. The structured details are available on `error.apiRejectedDetails`:
|
|
315
|
+
|
|
316
|
+
| Field | Type | Description |
|
|
317
|
+
|-------|------|-------------|
|
|
318
|
+
| `reason` | `string` | Human-readable error message |
|
|
319
|
+
| `rejectionCode` | `RejectionCode \| undefined` | Machine-readable rejection code (see below) |
|
|
320
|
+
| `errorCode` | `string \| undefined` | API-level error code (for example `"NOT_FOUND"` or `"INVALID_ARGUMENT"`) |
|
|
321
|
+
| `errorLogId` | `string \| undefined` | Backend support correlation ID (`LCERR_*`) |
|
|
322
|
+
| `requestId` | `string \| undefined` | SDK-generated `x-request-id` for cross-service tracing |
|
|
323
|
+
|
|
324
|
+
`ApiRejectedDetails.toString()` formats all present fields as a multi-line report for logs or support tickets.
|
|
325
|
+
|
|
326
|
+
#### `RejectionCode`
|
|
327
|
+
|
|
328
|
+
Machine-readable rejection codes expose a human-readable `.label()` method. Unrecognized codes from the backend are preserved as-is for forward compatibility.
|
|
329
|
+
|
|
330
|
+
| Wire Code | Label | When |
|
|
331
|
+
|-----------|-------|------|
|
|
332
|
+
| `INSUFFICIENT_BALANCE` | "Insufficient Balance" | Not enough funds to fill the order |
|
|
333
|
+
| `EXPIRED` | "Expired" | Order expiration time has passed |
|
|
334
|
+
| `NONCE_MISMATCH` | "Nonce Mismatch" | Order nonce does not match the current user nonce |
|
|
335
|
+
| `SELF_TRADE` | "Self Trade" | Order would match against the maker's own order |
|
|
336
|
+
| `MARKET_INACTIVE` | "Market Inactive" | Market is not accepting orders |
|
|
337
|
+
| `BELOW_MIN_ORDER_SIZE` | "Below Min Order Size" | Order size is below the minimum |
|
|
338
|
+
| `INVALID_NONCE` | "Invalid Nonce" | Nonce is invalid |
|
|
339
|
+
| `BROADCAST_FAILURE` | "Broadcast Failure" | Failed to broadcast to the network |
|
|
340
|
+
| `ORDER_NOT_FOUND` | "Order Not Found" | Order does not exist |
|
|
341
|
+
| `NOT_ORDER_MAKER` | "Not Order Maker" | Caller is not the order maker |
|
|
342
|
+
| `ORDER_ALREADY_FILLED` | "Order Already Filled" | Order has already been fully filled |
|
|
343
|
+
| `ORDER_ALREADY_CANCELLED` | "Order Already Cancelled" | Order was already cancelled |
|
|
344
|
+
|
|
345
|
+
```typescript
|
|
346
|
+
import { SdkError } from "@lightconexyz/lightcone-sdk";
|
|
347
|
+
|
|
348
|
+
try {
|
|
349
|
+
const response = await client.orders().submit(request);
|
|
350
|
+
console.log("Order placed:", response.order_hash);
|
|
351
|
+
} catch (error) {
|
|
352
|
+
if (error instanceof SdkError && error.variant === "ApiRejected") {
|
|
353
|
+
const details = error.apiRejectedDetails;
|
|
354
|
+
if (details?.rejectionCode) {
|
|
355
|
+
console.log(
|
|
356
|
+
`Rejected (${details.rejectionCode.label()}): ${details.reason}`
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
if (details?.errorLogId) {
|
|
360
|
+
console.log(`Support code: ${details.errorLogId}`);
|
|
361
|
+
}
|
|
362
|
+
} else {
|
|
363
|
+
console.error(error);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Request Correlation
|
|
369
|
+
|
|
370
|
+
The SDK generates a UUID v4 `x-request-id` header on every HTTP request. On rejection, this ID is attached to `ApiRejectedDetails.requestId` for cross-service tracing. The same ID is sent to the backend for correlation in logs and error events.
|
|
242
371
|
|
|
243
372
|
`HttpError` variants:
|
|
244
373
|
|
|
245
374
|
| Variant | Meaning |
|
|
246
375
|
|---------|---------|
|
|
247
|
-
| `Request
|
|
248
|
-
| `ServerError
|
|
249
|
-
| `RateLimited
|
|
376
|
+
| `Request` | Network or transport failure |
|
|
377
|
+
| `ServerError` | Non-2xx response from the backend |
|
|
378
|
+
| `RateLimited` | 429 - back off and retry |
|
|
250
379
|
| `Unauthorized` | 401 - session expired or missing |
|
|
251
|
-
| `NotFound
|
|
252
|
-
| `BadRequest
|
|
380
|
+
| `NotFound` | 404 - resource not found |
|
|
381
|
+
| `BadRequest` | 400 - invalid request |
|
|
253
382
|
| `Timeout` | Request timed out |
|
|
254
|
-
| `MaxRetriesExceeded
|
|
383
|
+
| `MaxRetriesExceeded` | All retry attempts exhausted |
|
|
255
384
|
|
|
256
385
|
## Retry Strategy
|
|
257
386
|
|
package/dist/auth/client.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare class Auth {
|
|
|
17
17
|
checkSession(): Promise<User>;
|
|
18
18
|
logout(): Promise<void>;
|
|
19
19
|
disconnectX(): Promise<void>;
|
|
20
|
-
|
|
20
|
+
connectXUrl(): string;
|
|
21
21
|
credentials(): AuthCredentials | undefined;
|
|
22
22
|
isAuthenticated(): boolean;
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAA0D,IAAI,EAAE,MAAM,SAAS,CAAC;AAE7G,UAAU,SAAS;IACjB,cAAc,IAAI,eAAe,GAAG,SAAS,CAAC;IAC9C,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,IAAI;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAM3B,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,UAAU,EACvB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,IAAI,CAAC;IAmCV,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAavB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAA0D,IAAI,EAAE,MAAM,SAAS,CAAC;AAE7G,UAAU,SAAS;IACjB,cAAc,IAAI,eAAe,GAAG,SAAS,CAAC;IAC9C,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,IAAI;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAM3B,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,UAAU,EACvB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,IAAI,CAAC;IAmCV,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAavB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC,WAAW,IAAI,MAAM;IAIrB,WAAW,IAAI,eAAe,GAAG,SAAS;IAI1C,eAAe,IAAI,OAAO;CAO3B"}
|
package/dist/auth/client.js
CHANGED
|
@@ -84,13 +84,8 @@ class Auth {
|
|
|
84
84
|
const url = `${this.client.http.baseUrl()}/api/auth/disconnect_x`;
|
|
85
85
|
await this.client.http.post(url, {}, http_1.RetryPolicy.None);
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
await this.client.http.post(url, {
|
|
90
|
-
x_user_id: xUserId,
|
|
91
|
-
x_username: xUsername,
|
|
92
|
-
x_display_name: xDisplayName,
|
|
93
|
-
}, http_1.RetryPolicy.None);
|
|
87
|
+
connectXUrl() {
|
|
88
|
+
return `${this.client.http.baseUrl()}/api/auth/oauth/link/x`;
|
|
94
89
|
}
|
|
95
90
|
credentials() {
|
|
96
91
|
return this.client.authState.getCredentials();
|
package/dist/auth/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { SdkError } from \"../error\";\nimport { RetryPolicy, type LightconeHttp } from \"../http\";\nimport { asPubkeyStr } from \"../shared\";\nimport type { AuthCredentials, LoginRequest, LoginResponse, MeResponse, NonceResponse, User } from \"./index\";\n\ninterface AuthState {\n getCredentials(): AuthCredentials | undefined;\n setCredentials(credentials: AuthCredentials | undefined): void;\n clearCaches(): Promise<void>;\n}\n\ninterface ClientContext {\n http: LightconeHttp;\n authState: AuthState;\n}\n\nexport class Auth {\n constructor(private readonly client: ClientContext) {}\n\n async getNonce(): Promise<string> {\n const url = `${this.client.http.baseUrl()}/api/auth/nonce`;\n const response = await this.client.http.get<NonceResponse>(url, RetryPolicy.None);\n return response.nonce;\n }\n\n async loginWithMessage(\n message: string,\n signatureBs58: string,\n pubkeyBytes: Uint8Array,\n useEmbeddedWallet?: boolean\n ): Promise<User> {\n const url = `${this.client.http.baseUrl()}/api/auth/login_or_register_with_message`;\n const body: LoginRequest = {\n message,\n signature_bs58: signatureBs58,\n pubkey_bytes: Array.from(pubkeyBytes),\n use_embedded_wallet: useEmbeddedWallet,\n };\n\n const response = await this.client.http.post<LoginResponse, LoginRequest>(\n url,\n body,\n RetryPolicy.None\n );\n\n const credentials: AuthCredentials = {\n user_id: response.user_id,\n wallet_address: asPubkeyStr(response.wallet_address),\n expires_at: parseExpiry(response.expires_at),\n };\n this.client.authState.setCredentials(credentials);\n\n return {\n id: response.user_id,\n wallet_address: response.wallet_address,\n linked_account: response.linked_account,\n privy_id: response.privy_id,\n embedded_wallet: response.embedded_wallet,\n x_username: response.x_username,\n x_user_id: response.x_user_id,\n x_display_name: response.x_display_name,\n google_email: response.google_email,\n };\n }\n\n async checkSession(): Promise<User> {\n const url = `${this.client.http.baseUrl()}/api/auth/me`;\n\n let response: MeResponse;\n try {\n response = await this.client.http.get<MeResponse>(url, RetryPolicy.Idempotent);\n } catch (error) {\n this.client.authState.setCredentials(undefined);\n throw SdkError.from(error);\n }\n\n this.client.authState.setCredentials({\n user_id: response.user_id,\n wallet_address: asPubkeyStr(response.wallet_address),\n expires_at: parseExpiry(response.expires_at),\n });\n\n return {\n id: response.user_id,\n wallet_address: response.wallet_address,\n linked_account: response.linked_account,\n privy_id: response.privy_id,\n embedded_wallet: response.embedded_wallet,\n x_username: response.x_username,\n x_user_id: response.x_user_id,\n x_display_name: response.x_display_name,\n google_email: response.google_email,\n };\n }\n\n async logout(): Promise<void> {\n const url = `${this.client.http.baseUrl()}/api/auth/logout`;\n try {\n await this.client.http.post<{ success: boolean }, Record<string, never>>(url, {}, RetryPolicy.None);\n } catch {\n // Backend cookie clear can fail in local/dev setups; still clear local state.\n }\n\n await this.client.http.clearAuthToken();\n this.client.authState.setCredentials(undefined);\n await this.client.authState.clearCaches();\n }\n\n async disconnectX(): Promise<void> {\n const url = `${this.client.http.baseUrl()}/api/auth/disconnect_x`;\n await this.client.http.post<{ success: boolean }, Record<string, never>>(url, {}, RetryPolicy.None);\n }\n\n connectXUrl(): string {\n return `${this.client.http.baseUrl()}/api/auth/oauth/link/x`;\n }\n\n credentials(): AuthCredentials | undefined {\n return this.client.authState.getCredentials();\n }\n\n isAuthenticated(): boolean {\n const credentials = this.credentials();\n if (!credentials) {\n return false;\n }\n return Date.now() < credentials.expires_at.getTime();\n }\n}\n\nfunction parseExpiry(timestamp: number): Date {\n if (timestamp > 1_000_000_000_000) {\n return new Date(timestamp);\n }\n return new Date(timestamp * 1000);\n}\n"]}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { Transaction, type PublicKey, type TransactionInstruction } from "@solana/web3.js";
|
|
2
2
|
import type { ClientContext } from "../../context";
|
|
3
3
|
import type { CreateMarketParams, AddDepositMintParams, ActivateMarketParams, SettleMarketParams, SetAuthorityParams, WhitelistDepositTokenParams, CreateOrderbookParams, MatchOrdersMultiParams, DepositAndSwapParams } from "../../program/types";
|
|
4
|
-
import type {
|
|
4
|
+
import type { AdminLoginRequest, AdminLoginResponse, AdminNonceResponse } from "./index";
|
|
5
5
|
import type { AllocateCodesRequest, AllocateCodesResponse, CreateNotificationRequest, CreateNotificationResponse, DismissNotificationRequest, DismissNotificationResponse, RevokeRequest, RevokeResponse, UnifiedMetadataRequest, UnifiedMetadataResponse, UnrevokeRequest, UnrevokeResponse, WhitelistRequest, WhitelistResponse } from "./wire";
|
|
6
6
|
export declare class Admin {
|
|
7
7
|
private readonly client;
|
|
8
8
|
constructor(client: ClientContext);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
getAdminNonce(): Promise<AdminNonceResponse>;
|
|
10
|
+
adminLogin(request: AdminLoginRequest): Promise<AdminLoginResponse>;
|
|
11
|
+
adminLogout(): Promise<void>;
|
|
12
|
+
upsertMetadata(request: UnifiedMetadataRequest): Promise<UnifiedMetadataResponse>;
|
|
13
|
+
allocateCodes(request: AllocateCodesRequest): Promise<AllocateCodesResponse>;
|
|
14
|
+
whitelist(request: WhitelistRequest): Promise<WhitelistResponse>;
|
|
15
|
+
revoke(request: RevokeRequest): Promise<RevokeResponse>;
|
|
16
|
+
unrevoke(request: UnrevokeRequest): Promise<UnrevokeResponse>;
|
|
17
|
+
createNotification(request: CreateNotificationRequest): Promise<CreateNotificationResponse>;
|
|
18
|
+
dismissNotification(request: DismissNotificationRequest): Promise<DismissNotificationResponse>;
|
|
16
19
|
initializeIx(authority: PublicKey): TransactionInstruction;
|
|
17
20
|
createMarketIx(params: CreateMarketParams, marketId: bigint): TransactionInstruction;
|
|
18
21
|
addDepositMintIx(params: AddDepositMintParams, market: PublicKey, numOutcomes: number): TransactionInstruction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/admin/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgBnD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/admin/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,34 +9,53 @@ class Admin {
|
|
|
9
9
|
constructor(client) {
|
|
10
10
|
this.client = client;
|
|
11
11
|
}
|
|
12
|
+
// ── Admin auth ───────────────────────────────────────────────────────
|
|
13
|
+
async getAdminNonce() {
|
|
14
|
+
const url = `${this.client.http.baseUrl()}/api/admin/nonce`;
|
|
15
|
+
return this.client.http.get(url, http_1.RetryPolicy.None);
|
|
16
|
+
}
|
|
17
|
+
async adminLogin(request) {
|
|
18
|
+
const url = `${this.client.http.baseUrl()}/api/admin/login`;
|
|
19
|
+
return this.client.http.post(url, request, http_1.RetryPolicy.None);
|
|
20
|
+
}
|
|
21
|
+
async adminLogout() {
|
|
22
|
+
const url = `${this.client.http.baseUrl()}/api/admin/logout`;
|
|
23
|
+
try {
|
|
24
|
+
await this.client.http.adminPost(url, {}, http_1.RetryPolicy.None);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Backend cookie clear can fail in local/dev setups; still clear local state.
|
|
28
|
+
}
|
|
29
|
+
this.client.http.clearAdminToken();
|
|
30
|
+
}
|
|
12
31
|
// ── HTTP methods ─────────────────────────────────────────────────────
|
|
13
|
-
async upsertMetadata(
|
|
32
|
+
async upsertMetadata(request) {
|
|
14
33
|
const url = `${this.client.http.baseUrl()}/api/admin/metadata`;
|
|
15
|
-
return this.client.http.
|
|
34
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
16
35
|
}
|
|
17
|
-
async allocateCodes(
|
|
36
|
+
async allocateCodes(request) {
|
|
18
37
|
const url = `${this.client.http.baseUrl()}/api/admin/referral/allocate`;
|
|
19
|
-
return this.client.http.
|
|
38
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
20
39
|
}
|
|
21
|
-
async whitelist(
|
|
40
|
+
async whitelist(request) {
|
|
22
41
|
const url = `${this.client.http.baseUrl()}/api/admin/referral/whitelist`;
|
|
23
|
-
return this.client.http.
|
|
42
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
24
43
|
}
|
|
25
|
-
async revoke(
|
|
44
|
+
async revoke(request) {
|
|
26
45
|
const url = `${this.client.http.baseUrl()}/api/admin/referral/revoke`;
|
|
27
|
-
return this.client.http.
|
|
46
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
28
47
|
}
|
|
29
|
-
async unrevoke(
|
|
48
|
+
async unrevoke(request) {
|
|
30
49
|
const url = `${this.client.http.baseUrl()}/api/admin/referral/unrevoke`;
|
|
31
|
-
return this.client.http.
|
|
50
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
32
51
|
}
|
|
33
|
-
async createNotification(
|
|
52
|
+
async createNotification(request) {
|
|
34
53
|
const url = `${this.client.http.baseUrl()}/api/admin/notifications`;
|
|
35
|
-
return this.client.http.
|
|
54
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
36
55
|
}
|
|
37
|
-
async dismissNotification(
|
|
56
|
+
async dismissNotification(request) {
|
|
38
57
|
const url = `${this.client.http.baseUrl()}/api/admin/notifications/dismiss`;
|
|
39
|
-
return this.client.http.
|
|
58
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
40
59
|
}
|
|
41
60
|
// ── On-chain transaction builders ────────────────────────────────────
|
|
42
61
|
initializeIx(authority) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/admin/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { RetryPolicy } from \"../../http\";\nimport {\n buildInitializeIx,\n buildCreateMarketIx,\n buildAddDepositMintIx,\n buildActivateMarketIx,\n buildSettleMarketIx,\n buildSetPausedIx,\n buildSetOperatorIx,\n buildSetAuthorityIx,\n buildWhitelistDepositTokenIx,\n buildCreateOrderbookIx,\n buildMatchOrdersMultiIx,\n buildDepositAndSwapIx,\n} from \"../../program/instructions\";\nimport type {\n CreateMarketParams,\n AddDepositMintParams,\n ActivateMarketParams,\n SettleMarketParams,\n SetAuthorityParams,\n WhitelistDepositTokenParams,\n CreateOrderbookParams,\n MatchOrdersMultiParams,\n DepositAndSwapParams,\n} from \"../../program/types\";\nimport type { AdminEnvelope } from \"./index\";\nimport type {\n AllocateCodesRequest,\n AllocateCodesResponse,\n CreateNotificationRequest,\n CreateNotificationResponse,\n DismissNotificationRequest,\n DismissNotificationResponse,\n RevokeRequest,\n RevokeResponse,\n UnifiedMetadataRequest,\n UnifiedMetadataResponse,\n UnrevokeRequest,\n UnrevokeResponse,\n WhitelistRequest,\n WhitelistResponse,\n} from \"./wire\";\n\nexport class Admin {\n constructor(private readonly client: ClientContext) {}\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async upsertMetadata(\n envelope: AdminEnvelope<UnifiedMetadataRequest>\n ): Promise<UnifiedMetadataResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/metadata`;\n return this.client.http.post<UnifiedMetadataResponse, AdminEnvelope<UnifiedMetadataRequest>>(\n url,\n envelope,\n RetryPolicy.None\n );\n }\n\n async allocateCodes(\n envelope: AdminEnvelope<AllocateCodesRequest>\n ): Promise<AllocateCodesResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/allocate`;\n return this.client.http.post<AllocateCodesResponse, AdminEnvelope<AllocateCodesRequest>>(\n url,\n envelope,\n RetryPolicy.None\n );\n }\n\n async whitelist(envelope: AdminEnvelope<WhitelistRequest>): Promise<WhitelistResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/whitelist`;\n return this.client.http.post<WhitelistResponse, AdminEnvelope<WhitelistRequest>>(\n url,\n envelope,\n RetryPolicy.None\n );\n }\n\n async revoke(envelope: AdminEnvelope<RevokeRequest>): Promise<RevokeResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/revoke`;\n return this.client.http.post<RevokeResponse, AdminEnvelope<RevokeRequest>>(\n url,\n envelope,\n RetryPolicy.None\n );\n }\n\n async unrevoke(envelope: AdminEnvelope<UnrevokeRequest>): Promise<UnrevokeResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/unrevoke`;\n return this.client.http.post<UnrevokeResponse, AdminEnvelope<UnrevokeRequest>>(\n url,\n envelope,\n RetryPolicy.None\n );\n }\n\n async createNotification(\n envelope: AdminEnvelope<CreateNotificationRequest>\n ): Promise<CreateNotificationResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/notifications`;\n return this.client.http.post<CreateNotificationResponse, AdminEnvelope<CreateNotificationRequest>>(\n url,\n envelope,\n RetryPolicy.None\n );\n }\n\n async dismissNotification(\n envelope: AdminEnvelope<DismissNotificationRequest>\n ): Promise<DismissNotificationResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/notifications/dismiss`;\n return this.client.http.post<DismissNotificationResponse, AdminEnvelope<DismissNotificationRequest>>(\n url,\n envelope,\n RetryPolicy.None\n );\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n initializeIx(authority: PublicKey): TransactionInstruction {\n return buildInitializeIx({ authority }, this.client.programId);\n }\n\n createMarketIx(params: CreateMarketParams, marketId: bigint): TransactionInstruction {\n return buildCreateMarketIx(params, marketId, this.client.programId);\n }\n\n addDepositMintIx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number\n ): TransactionInstruction {\n return buildAddDepositMintIx(params, market, numOutcomes, this.client.programId);\n }\n\n activateMarketIx(params: ActivateMarketParams): TransactionInstruction {\n return buildActivateMarketIx(params, this.client.programId);\n }\n\n settleMarketIx(params: SettleMarketParams): TransactionInstruction {\n return buildSettleMarketIx(params, this.client.programId);\n }\n\n setPausedIx(authority: PublicKey, paused: boolean): TransactionInstruction {\n return buildSetPausedIx(authority, paused, this.client.programId);\n }\n\n setOperatorIx(authority: PublicKey, newOperator: PublicKey): TransactionInstruction {\n return buildSetOperatorIx(authority, newOperator, this.client.programId);\n }\n\n setAuthorityIx(params: SetAuthorityParams): TransactionInstruction {\n return buildSetAuthorityIx(params, this.client.programId);\n }\n\n whitelistDepositTokenIx(params: WhitelistDepositTokenParams): TransactionInstruction {\n return buildWhitelistDepositTokenIx(params, this.client.programId);\n }\n\n createOrderbookIx(params: CreateOrderbookParams): TransactionInstruction {\n return buildCreateOrderbookIx(params, this.client.programId);\n }\n\n matchOrdersMultiIx(params: MatchOrdersMultiParams): TransactionInstruction {\n return buildMatchOrdersMultiIx(params, this.client.programId);\n }\n\n depositAndSwapIx(params: DepositAndSwapParams): TransactionInstruction {\n return buildDepositAndSwapIx(params, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n initializeTx(authority: PublicKey): Transaction {\n const ix = this.initializeIx(authority);\n return new Transaction({ feePayer: authority }).add(ix);\n }\n\n createMarketTx(params: CreateMarketParams, marketId: bigint): Transaction {\n const ix = this.createMarketIx(params, marketId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n addDepositMintTx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number\n ): Transaction {\n const ix = this.addDepositMintIx(params, market, numOutcomes);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n activateMarketTx(params: ActivateMarketParams): Transaction {\n const ix = this.activateMarketIx(params);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n settleMarketTx(params: SettleMarketParams): Transaction {\n const ix = this.settleMarketIx(params);\n return new Transaction({ feePayer: params.oracle }).add(ix);\n }\n\n setPausedTx(authority: PublicKey, paused: boolean): Transaction {\n const ix = this.setPausedIx(authority, paused);\n return new Transaction({ feePayer: authority }).add(ix);\n }\n\n setOperatorTx(authority: PublicKey, newOperator: PublicKey): Transaction {\n const ix = this.setOperatorIx(authority, newOperator);\n return new Transaction({ feePayer: authority }).add(ix);\n }\n\n setAuthorityTx(params: SetAuthorityParams): Transaction {\n const ix = this.setAuthorityIx(params);\n return new Transaction({ feePayer: params.currentAuthority }).add(ix);\n }\n\n whitelistDepositTokenTx(params: WhitelistDepositTokenParams): Transaction {\n const ix = this.whitelistDepositTokenIx(params);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n createOrderbookTx(params: CreateOrderbookParams): Transaction {\n const ix = this.createOrderbookIx(params);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n matchOrdersMultiTx(params: MatchOrdersMultiParams): Transaction {\n const ix = this.matchOrdersMultiIx(params);\n return new Transaction({ feePayer: params.operator }).add(ix);\n }\n\n depositAndSwapTx(params: DepositAndSwapParams): Transaction {\n const ix = this.depositAndSwapIx(params);\n return new Transaction({ feePayer: params.operator }).add(ix);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/admin/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { RetryPolicy } from \"../../http\";\nimport {\n buildInitializeIx,\n buildCreateMarketIx,\n buildAddDepositMintIx,\n buildActivateMarketIx,\n buildSettleMarketIx,\n buildSetPausedIx,\n buildSetOperatorIx,\n buildSetAuthorityIx,\n buildWhitelistDepositTokenIx,\n buildCreateOrderbookIx,\n buildMatchOrdersMultiIx,\n buildDepositAndSwapIx,\n} from \"../../program/instructions\";\nimport type {\n CreateMarketParams,\n AddDepositMintParams,\n ActivateMarketParams,\n SettleMarketParams,\n SetAuthorityParams,\n WhitelistDepositTokenParams,\n CreateOrderbookParams,\n MatchOrdersMultiParams,\n DepositAndSwapParams,\n} from \"../../program/types\";\nimport type {\n AdminLoginRequest,\n AdminLoginResponse,\n AdminNonceResponse,\n} from \"./index\";\nimport type {\n AllocateCodesRequest,\n AllocateCodesResponse,\n CreateNotificationRequest,\n CreateNotificationResponse,\n DismissNotificationRequest,\n DismissNotificationResponse,\n RevokeRequest,\n RevokeResponse,\n UnifiedMetadataRequest,\n UnifiedMetadataResponse,\n UnrevokeRequest,\n UnrevokeResponse,\n WhitelistRequest,\n WhitelistResponse,\n} from \"./wire\";\n\nexport class Admin {\n constructor(private readonly client: ClientContext) {}\n\n // ── Admin auth ───────────────────────────────────────────────────────\n\n async getAdminNonce(): Promise<AdminNonceResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/nonce`;\n return this.client.http.get<AdminNonceResponse>(url, RetryPolicy.None);\n }\n\n async adminLogin(request: AdminLoginRequest): Promise<AdminLoginResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/login`;\n return this.client.http.post<AdminLoginResponse, AdminLoginRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async adminLogout(): Promise<void> {\n const url = `${this.client.http.baseUrl()}/api/admin/logout`;\n try {\n await this.client.http.adminPost(url, {}, RetryPolicy.None);\n } catch {\n // Backend cookie clear can fail in local/dev setups; still clear local state.\n }\n this.client.http.clearAdminToken();\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async upsertMetadata(\n request: UnifiedMetadataRequest\n ): Promise<UnifiedMetadataResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/metadata`;\n return this.client.http.adminPost<UnifiedMetadataResponse, UnifiedMetadataRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async allocateCodes(\n request: AllocateCodesRequest\n ): Promise<AllocateCodesResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/allocate`;\n return this.client.http.adminPost<AllocateCodesResponse, AllocateCodesRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async whitelist(request: WhitelistRequest): Promise<WhitelistResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/whitelist`;\n return this.client.http.adminPost<WhitelistResponse, WhitelistRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async revoke(request: RevokeRequest): Promise<RevokeResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/revoke`;\n return this.client.http.adminPost<RevokeResponse, RevokeRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async unrevoke(request: UnrevokeRequest): Promise<UnrevokeResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/unrevoke`;\n return this.client.http.adminPost<UnrevokeResponse, UnrevokeRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async createNotification(\n request: CreateNotificationRequest\n ): Promise<CreateNotificationResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/notifications`;\n return this.client.http.adminPost<CreateNotificationResponse, CreateNotificationRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async dismissNotification(\n request: DismissNotificationRequest\n ): Promise<DismissNotificationResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/notifications/dismiss`;\n return this.client.http.adminPost<DismissNotificationResponse, DismissNotificationRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n initializeIx(authority: PublicKey): TransactionInstruction {\n return buildInitializeIx({ authority }, this.client.programId);\n }\n\n createMarketIx(params: CreateMarketParams, marketId: bigint): TransactionInstruction {\n return buildCreateMarketIx(params, marketId, this.client.programId);\n }\n\n addDepositMintIx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number\n ): TransactionInstruction {\n return buildAddDepositMintIx(params, market, numOutcomes, this.client.programId);\n }\n\n activateMarketIx(params: ActivateMarketParams): TransactionInstruction {\n return buildActivateMarketIx(params, this.client.programId);\n }\n\n settleMarketIx(params: SettleMarketParams): TransactionInstruction {\n return buildSettleMarketIx(params, this.client.programId);\n }\n\n setPausedIx(authority: PublicKey, paused: boolean): TransactionInstruction {\n return buildSetPausedIx(authority, paused, this.client.programId);\n }\n\n setOperatorIx(authority: PublicKey, newOperator: PublicKey): TransactionInstruction {\n return buildSetOperatorIx(authority, newOperator, this.client.programId);\n }\n\n setAuthorityIx(params: SetAuthorityParams): TransactionInstruction {\n return buildSetAuthorityIx(params, this.client.programId);\n }\n\n whitelistDepositTokenIx(params: WhitelistDepositTokenParams): TransactionInstruction {\n return buildWhitelistDepositTokenIx(params, this.client.programId);\n }\n\n createOrderbookIx(params: CreateOrderbookParams): TransactionInstruction {\n return buildCreateOrderbookIx(params, this.client.programId);\n }\n\n matchOrdersMultiIx(params: MatchOrdersMultiParams): TransactionInstruction {\n return buildMatchOrdersMultiIx(params, this.client.programId);\n }\n\n depositAndSwapIx(params: DepositAndSwapParams): TransactionInstruction {\n return buildDepositAndSwapIx(params, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n initializeTx(authority: PublicKey): Transaction {\n const ix = this.initializeIx(authority);\n return new Transaction({ feePayer: authority }).add(ix);\n }\n\n createMarketTx(params: CreateMarketParams, marketId: bigint): Transaction {\n const ix = this.createMarketIx(params, marketId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n addDepositMintTx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number\n ): Transaction {\n const ix = this.addDepositMintIx(params, market, numOutcomes);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n activateMarketTx(params: ActivateMarketParams): Transaction {\n const ix = this.activateMarketIx(params);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n settleMarketTx(params: SettleMarketParams): Transaction {\n const ix = this.settleMarketIx(params);\n return new Transaction({ feePayer: params.oracle }).add(ix);\n }\n\n setPausedTx(authority: PublicKey, paused: boolean): Transaction {\n const ix = this.setPausedIx(authority, paused);\n return new Transaction({ feePayer: authority }).add(ix);\n }\n\n setOperatorTx(authority: PublicKey, newOperator: PublicKey): Transaction {\n const ix = this.setOperatorIx(authority, newOperator);\n return new Transaction({ feePayer: authority }).add(ix);\n }\n\n setAuthorityTx(params: SetAuthorityParams): Transaction {\n const ix = this.setAuthorityIx(params);\n return new Transaction({ feePayer: params.currentAuthority }).add(ix);\n }\n\n whitelistDepositTokenTx(params: WhitelistDepositTokenParams): Transaction {\n const ix = this.whitelistDepositTokenIx(params);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n createOrderbookTx(params: CreateOrderbookParams): Transaction {\n const ix = this.createOrderbookIx(params);\n return new Transaction({ feePayer: params.authority }).add(ix);\n }\n\n matchOrdersMultiTx(params: MatchOrdersMultiParams): Transaction {\n const ix = this.matchOrdersMultiIx(params);\n return new Transaction({ feePayer: params.operator }).add(ix);\n }\n\n depositAndSwapTx(params: DepositAndSwapParams): Transaction {\n const ix = this.depositAndSwapIx(params);\n return new Transaction({ feePayer: params.operator }).add(ix);\n }\n}\n"]}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
export * from "./client";
|
|
2
2
|
export * from "./wire";
|
|
3
|
-
export interface
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export interface AdminNonceResponse {
|
|
4
|
+
nonce: string;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AdminLoginRequest {
|
|
8
|
+
message: string;
|
|
9
|
+
signature_bs58: string;
|
|
10
|
+
pubkey_bytes: number[];
|
|
11
|
+
}
|
|
12
|
+
export interface AdminLoginResponse {
|
|
13
|
+
wallet_address: string;
|
|
14
|
+
expires_at: number;
|
|
6
15
|
}
|
|
7
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/admin/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAEvB,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/admin/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/admin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB","sourcesContent":["export * from \"./client\";\nexport * from \"./wire\";\n\nexport interface
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/admin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB","sourcesContent":["export * from \"./client\";\nexport * from \"./wire\";\n\nexport interface AdminNonceResponse {\n nonce: string;\n message: string;\n}\n\nexport interface AdminLoginRequest {\n message: string;\n signature_bs58: string;\n pubkey_bytes: number[];\n}\n\nexport interface AdminLoginResponse {\n wallet_address: string;\n expires_at: number;\n}\n"]}
|
|
@@ -35,10 +35,9 @@ export interface OutcomeMetadataPayload {
|
|
|
35
35
|
export interface ConditionalTokenMetadataPayload {
|
|
36
36
|
conditional_mint_id: number;
|
|
37
37
|
outcome_index?: number;
|
|
38
|
-
display_name?: string;
|
|
39
38
|
outcome?: string;
|
|
40
39
|
deposit_symbol?: string;
|
|
41
|
-
|
|
40
|
+
short_symbol?: string;
|
|
42
41
|
description?: string;
|
|
43
42
|
icon_url?: string;
|
|
44
43
|
metadata_uri?: string;
|