@lightconexyz/lightcone-sdk 0.5.1 → 0.6.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 +35 -5
- package/dist/client.d.ts +30 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +38 -0
- package/dist/client.js.map +1 -1
- package/dist/domain/admin/client.d.ts +10 -1
- package/dist/domain/admin/client.d.ts.map +1 -1
- package/dist/domain/admin/client.js +51 -0
- package/dist/domain/admin/client.js.map +1 -1
- package/dist/domain/admin/wire.d.ts +267 -7
- package/dist/domain/admin/wire.d.ts.map +1 -1
- package/dist/domain/admin/wire.js.map +1 -1
- package/dist/domain/faucet.d.ts +25 -0
- package/dist/domain/faucet.d.ts.map +1 -0
- package/dist/domain/faucet.js +3 -0
- package/dist/domain/faucet.js.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +3 -1
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/market/client.d.ts +23 -2
- package/dist/domain/market/client.d.ts.map +1 -1
- package/dist/domain/market/client.js +30 -0
- package/dist/domain/market/client.js.map +1 -1
- package/dist/domain/market/convert.d.ts +10 -0
- package/dist/domain/market/convert.d.ts.map +1 -1
- package/dist/domain/market/convert.js +43 -4
- package/dist/domain/market/convert.js.map +1 -1
- package/dist/domain/market/icon.d.ts +17 -0
- package/dist/domain/market/icon.d.ts.map +1 -0
- package/dist/domain/market/icon.js +25 -0
- package/dist/domain/market/icon.js.map +1 -0
- package/dist/domain/market/index.d.ts +13 -4
- package/dist/domain/market/index.d.ts.map +1 -1
- package/dist/domain/market/index.js +3 -1
- package/dist/domain/market/index.js.map +1 -1
- package/dist/domain/market/outcome.d.ts +3 -1
- package/dist/domain/market/outcome.d.ts.map +1 -1
- package/dist/domain/market/outcome.js +7 -7
- package/dist/domain/market/outcome.js.map +1 -1
- package/dist/domain/market/tokens.d.ts +53 -3
- package/dist/domain/market/tokens.d.ts.map +1 -1
- package/dist/domain/market/tokens.js +99 -8
- package/dist/domain/market/tokens.js.map +1 -1
- package/dist/domain/market/wire.d.ts +46 -8
- package/dist/domain/market/wire.d.ts.map +1 -1
- package/dist/domain/market/wire.js.map +1 -1
- package/dist/domain/metrics/client.d.ts +66 -0
- package/dist/domain/metrics/client.d.ts.map +1 -0
- package/dist/domain/metrics/client.js +124 -0
- package/dist/domain/metrics/client.js.map +1 -0
- package/dist/domain/metrics/index.d.ts +3 -0
- package/dist/domain/metrics/index.d.ts.map +1 -0
- package/dist/domain/metrics/index.js +19 -0
- package/dist/domain/metrics/index.js.map +1 -0
- package/dist/domain/metrics/wire.d.ts +342 -0
- package/dist/domain/metrics/wire.d.ts.map +1 -0
- package/dist/domain/metrics/wire.js +3 -0
- package/dist/domain/metrics/wire.js.map +1 -0
- package/dist/domain/notification/client.d.ts +6 -0
- package/dist/domain/notification/client.d.ts.map +1 -1
- package/dist/domain/notification/client.js +10 -0
- package/dist/domain/notification/client.js.map +1 -1
- package/dist/domain/notification/index.d.ts +3 -1
- package/dist/domain/notification/index.d.ts.map +1 -1
- package/dist/domain/notification/index.js.map +1 -1
- package/dist/domain/order/client.d.ts +28 -2
- package/dist/domain/order/client.d.ts.map +1 -1
- package/dist/domain/order/client.js +76 -16
- package/dist/domain/order/client.js.map +1 -1
- package/dist/domain/order/convert.d.ts +5 -5
- package/dist/domain/order/convert.d.ts.map +1 -1
- package/dist/domain/order/convert.js +1 -1
- package/dist/domain/order/convert.js.map +1 -1
- package/dist/domain/order/index.d.ts +1 -1
- package/dist/domain/order/index.d.ts.map +1 -1
- package/dist/domain/order/index.js.map +1 -1
- package/dist/domain/order/state.d.ts +9 -7
- package/dist/domain/order/state.d.ts.map +1 -1
- package/dist/domain/order/state.js +81 -28
- package/dist/domain/order/state.js.map +1 -1
- package/dist/domain/orderbook/index.d.ts +1 -1
- package/dist/domain/orderbook/index.d.ts.map +1 -1
- package/dist/domain/orderbook/index.js +3 -8
- package/dist/domain/orderbook/index.js.map +1 -1
- package/dist/domain/orderbook/state.d.ts +44 -2
- package/dist/domain/orderbook/state.d.ts.map +1 -1
- package/dist/domain/orderbook/state.js +67 -4
- package/dist/domain/orderbook/state.js.map +1 -1
- package/dist/domain/orderbook/wire.d.ts +1 -0
- package/dist/domain/orderbook/wire.d.ts.map +1 -1
- package/dist/domain/orderbook/wire.js.map +1 -1
- package/dist/domain/position/client.d.ts +55 -0
- package/dist/domain/position/client.d.ts.map +1 -1
- package/dist/domain/position/client.js +71 -0
- package/dist/domain/position/client.js.map +1 -1
- package/dist/domain/position/index.d.ts +3 -2
- package/dist/domain/position/index.d.ts.map +1 -1
- package/dist/domain/position/index.js.map +1 -1
- package/dist/domain/price_history/client.d.ts +12 -1
- package/dist/domain/price_history/client.d.ts.map +1 -1
- package/dist/domain/price_history/client.js +14 -0
- package/dist/domain/price_history/client.js.map +1 -1
- package/dist/domain/price_history/wire.d.ts +27 -0
- package/dist/domain/price_history/wire.d.ts.map +1 -1
- package/dist/domain/price_history/wire.js.map +1 -1
- package/dist/domain/referral/client.d.ts +6 -0
- package/dist/domain/referral/client.d.ts.map +1 -1
- package/dist/domain/referral/client.js +22 -9
- package/dist/domain/referral/client.js.map +1 -1
- package/dist/domain/trade/convert.d.ts.map +1 -1
- package/dist/domain/trade/convert.js +5 -1
- package/dist/domain/trade/convert.js.map +1 -1
- package/dist/domain/trade/index.d.ts +4 -0
- package/dist/domain/trade/index.d.ts.map +1 -1
- package/dist/domain/trade/index.js.map +1 -1
- package/dist/domain/trade/state.d.ts +7 -0
- package/dist/domain/trade/state.d.ts.map +1 -1
- package/dist/domain/trade/state.js +36 -1
- package/dist/domain/trade/state.js.map +1 -1
- package/dist/domain/trade/wire.d.ts +3 -0
- package/dist/domain/trade/wire.d.ts.map +1 -1
- package/dist/domain/trade/wire.js.map +1 -1
- package/dist/http/client.d.ts +9 -0
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +24 -9
- package/dist/http/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/prelude.d.ts +13 -5
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js +5 -3
- package/dist/prelude.js.map +1 -1
- package/dist/shared/fmt/decimal.js +4 -4
- package/dist/shared/fmt/decimal.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +2 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/types.d.ts +5 -2
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +21 -0
- package/dist/shared/types.js.map +1 -1
- package/dist/ws/index.d.ts +12 -1
- package/dist/ws/index.d.ts.map +1 -1
- package/dist/ws/index.js +20 -0
- package/dist/ws/index.js.map +1 -1
- package/dist/ws/subscriptions.d.ts +6 -0
- package/dist/ws/subscriptions.d.ts.map +1 -1
- package/dist/ws/subscriptions.js +4 -0
- package/dist/ws/subscriptions.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -216,6 +216,35 @@ const withdrawIx = client.positions().withdraw()
|
|
|
216
216
|
|
|
217
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
218
|
|
|
219
|
+
### Cookie handling
|
|
220
|
+
|
|
221
|
+
After login succeeds, the SDK stores the session token internally and attaches it as `Cookie: auth_token=…` on every authenticated request. Behaviour depends on the runtime:
|
|
222
|
+
|
|
223
|
+
- **Node / non-browser**: token is stored on the `LightconeHttp` instance and added as a `Cookie` header per request.
|
|
224
|
+
- **Browser**: requests use `credentials: "include"` and the runtime supplies the cookie automatically — the SDK's internal store is unused.
|
|
225
|
+
|
|
226
|
+
### Server-side cookie forwarding (`*WithAuth` variants)
|
|
227
|
+
|
|
228
|
+
> **Naming note.** The `WithAuth` suffix does **not** mean other methods are unauthed — most SDK methods that talk to authed endpoints (e.g. `positions().positions()`, `metrics().user()`) read auth from the SDK's process-wide token store / browser cookie automatically; that's the typical client-side path. The `*WithAuth(authToken: string)` siblings exist for **server-side rendering (SSR) and route-handler callers** where the per-request browser cookie can't propagate to the shared client. Those callers extract the token from the incoming request and pass it explicitly. Same wire contract, different credentials path.
|
|
229
|
+
|
|
230
|
+
When the SDK runs on a server (SSR, an Express / Next.js route handler, etc.) and the *user's* `auth_token` cookie arrives on an incoming HTTP request, the SDK's process-wide token store is the wrong place to route it through — the store is shared across all users of that server process.
|
|
231
|
+
|
|
232
|
+
For these cases, authed methods that need per-call forwarding ship a `*WithAuth(authToken)` sibling that injects the cookie just for that one call:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
// Inside a server route, after extracting the auth_token cookie
|
|
236
|
+
// from the incoming request:
|
|
237
|
+
const balances = await client
|
|
238
|
+
.positions()
|
|
239
|
+
.depositTokenBalancesWithAuth(authToken);
|
|
240
|
+
|
|
241
|
+
const positions = await client
|
|
242
|
+
.positions()
|
|
243
|
+
.positionsWithAuth(authToken);
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
In a browser context these methods are equivalent to their non-`WithAuth` counterparts because the runtime is already attaching the cookie via `credentials: "include"`.
|
|
247
|
+
|
|
219
248
|
## Environment Configuration
|
|
220
249
|
|
|
221
250
|
The SDK defaults to the **production** environment. Use `LightconeEnv` to target a different deployment:
|
|
@@ -251,12 +280,13 @@ All examples are runnable with `npx tsx examples/<name>.ts`. Examples default to
|
|
|
251
280
|
| Example | Description |
|
|
252
281
|
|---------|-------------|
|
|
253
282
|
| [`login`](examples/login.ts) | Full auth lifecycle: sign message, login, check session, logout |
|
|
283
|
+
| [`with_auth`](examples/with_auth.ts) | Per-call auth-token forwarding for SSR / route-handler consumers — logs in, captures the token via `client.authToken()`, clears the SDK's internal store, and exercises every `*WithAuth` variant |
|
|
254
284
|
|
|
255
285
|
### Market Discovery & Data
|
|
256
286
|
|
|
257
287
|
| Example | Description |
|
|
258
288
|
|---------|-------------|
|
|
259
|
-
| [`markets`](examples/markets.ts) | Featured markets, paginated listing, fetch by pubkey, search |
|
|
289
|
+
| [`markets`](examples/markets.ts) | Featured markets, paginated listing, fetch by pubkey, search, platform deposit assets via `globalDepositAssets()` |
|
|
260
290
|
| [`orderbook`](examples/orderbook.ts) | Fetch orderbook depth (bids/asks) and decimal precision metadata |
|
|
261
291
|
| [`trades`](examples/trades.ts) | Recent trade history with cursor-based pagination |
|
|
262
292
|
| [`price_history`](examples/price_history.ts) | Historical candlestick data (OHLCV) at various resolutions |
|
|
@@ -266,13 +296,13 @@ All examples are runnable with `npx tsx examples/<name>.ts`. Examples default to
|
|
|
266
296
|
|
|
267
297
|
| Example | Description |
|
|
268
298
|
|---------|-------------|
|
|
269
|
-
| [`submit_order`](examples/submit_order.ts) |
|
|
299
|
+
| [`submit_order`](examples/submit_order.ts) | Deposit the quote amount into the global pool, then place a limit order via `client.orders().limitOrder()` with human-readable price/size, auto-scaling, and fill tracking. Companion `cancel_order` cancels it and withdraws to stay net-neutral |
|
|
270
300
|
|
|
271
301
|
### Cancelling Orders
|
|
272
302
|
|
|
273
303
|
| Example | Description |
|
|
274
304
|
|---------|-------------|
|
|
275
|
-
| [`cancel_order`](examples/cancel_order.ts) | Cancel a single order by hash
|
|
305
|
+
| [`cancel_order`](examples/cancel_order.ts) | Cancel a single order by hash, cancel all orders in an orderbook, and withdraw the released collateral from the global pool |
|
|
276
306
|
| [`user_orders`](examples/user_orders.ts) | Fetch open orders for an authenticated user |
|
|
277
307
|
|
|
278
308
|
### On-Chain Operations
|
|
@@ -281,13 +311,13 @@ All examples are runnable with `npx tsx examples/<name>.ts`. Examples default to
|
|
|
281
311
|
|---------|-------------|
|
|
282
312
|
| [`read_onchain`](examples/read_onchain.ts) | Read exchange state, market state, user nonce, and PDA derivations via RPC |
|
|
283
313
|
| [`onchain_transactions`](examples/onchain_transactions.ts) | Build, sign, and submit mint/merge complete set and increment nonce on-chain |
|
|
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,
|
|
314
|
+
| [`global_deposit_withdrawal`](examples/global_deposit_withdrawal.ts) | Init position tokens, deposit to global pool, move capital into a market, extend an existing ALT, withdraw from global, and merge back to keep the run net-neutral |
|
|
285
315
|
|
|
286
316
|
### WebSocket Streaming
|
|
287
317
|
|
|
288
318
|
| Example | Description |
|
|
289
319
|
|---------|-------------|
|
|
290
|
-
| [`ws_book_and_trades`](examples/ws_book_and_trades.ts) | Live orderbook depth with `
|
|
320
|
+
| [`ws_book_and_trades`](examples/ws_book_and_trades.ts) | Live orderbook depth with `OrderbookState` state + rolling `TradeHistory` buffer |
|
|
291
321
|
| [`ws_ticker_and_prices`](examples/ws_ticker_and_prices.ts) | Best bid/ask ticker + price history candles with `PriceHistoryState` |
|
|
292
322
|
| [`ws_user_and_market`](examples/ws_user_and_market.ts) | Authenticated user stream (orders, balances) + market lifecycle events |
|
|
293
323
|
|
package/dist/client.d.ts
CHANGED
|
@@ -2,7 +2,9 @@ import { Connection, Keypair, PublicKey, Transaction } from "@solana/web3.js";
|
|
|
2
2
|
import { Auth, type AuthCredentials } from "./auth";
|
|
3
3
|
import type { ClientContext } from "./context";
|
|
4
4
|
import { Admin } from "./domain/admin";
|
|
5
|
+
import type { FaucetResponse } from "./domain/faucet";
|
|
5
6
|
import { Markets } from "./domain/market";
|
|
7
|
+
import { Metrics } from "./domain/metrics";
|
|
6
8
|
import { Notifications } from "./domain/notification";
|
|
7
9
|
import { Orders } from "./domain/order";
|
|
8
10
|
import { Orderbooks } from "./domain/orderbook";
|
|
@@ -14,7 +16,7 @@ import { LightconeHttp } from "./http";
|
|
|
14
16
|
import { LightconeEnv } from "./env";
|
|
15
17
|
import { Privy } from "./privy";
|
|
16
18
|
import { Rpc } from "./rpc";
|
|
17
|
-
import { DepositSource } from "./shared";
|
|
19
|
+
import { DepositSource, type PubkeyStr } from "./shared";
|
|
18
20
|
import { type ExternalSigner, type SigningStrategy } from "./shared/signing";
|
|
19
21
|
import { WsClient, type WsConfig } from "./ws";
|
|
20
22
|
declare class AuthState {
|
|
@@ -52,6 +54,19 @@ export declare class LightconeClient implements ClientContext {
|
|
|
52
54
|
orderNonce(): number | undefined;
|
|
53
55
|
setOrderNonce(nonce: number): void;
|
|
54
56
|
clearOrderNonce(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get the current `auth_token` cookie value, if any. Populated by the SDK
|
|
59
|
+
* after a successful login, then attached on every authed request. Useful
|
|
60
|
+
* for forwarding the token through the `*WithAuth` methods, or
|
|
61
|
+
* persisting the session across processes.
|
|
62
|
+
*/
|
|
63
|
+
authToken(): Promise<string | undefined>;
|
|
64
|
+
/**
|
|
65
|
+
* Clear the cached `auth_token`. Subsequent authed calls will go out
|
|
66
|
+
* without a `Cookie` header (and 401) unless they use a
|
|
67
|
+
* `*WithAuth` variant.
|
|
68
|
+
*/
|
|
69
|
+
clearAuthToken(): Promise<void>;
|
|
55
70
|
signAndSubmitTx(tx: Transaction): Promise<string>;
|
|
56
71
|
static builder(): LightconeClientBuilder;
|
|
57
72
|
markets(): Markets;
|
|
@@ -61,6 +76,20 @@ export declare class LightconeClient implements ClientContext {
|
|
|
61
76
|
trades(): Trades;
|
|
62
77
|
priceHistory(): PriceHistoryClient;
|
|
63
78
|
notifications(): Notifications;
|
|
79
|
+
/**
|
|
80
|
+
* Metrics sub-client — platform / market / orderbook / category / deposit-token
|
|
81
|
+
* volume metrics, market leaderboard, and time-series history.
|
|
82
|
+
*/
|
|
83
|
+
metrics(): Metrics;
|
|
84
|
+
/**
|
|
85
|
+
* Request testnet SOL and whitelisted deposit tokens for a wallet.
|
|
86
|
+
*
|
|
87
|
+
* Only active on environments whose backend has the faucet enabled (typically
|
|
88
|
+
* local and staging).
|
|
89
|
+
*
|
|
90
|
+
* `POST /api/claim`
|
|
91
|
+
*/
|
|
92
|
+
claim(walletAddress: PubkeyStr): Promise<FaucetResponse>;
|
|
64
93
|
admin(): Admin;
|
|
65
94
|
auth(): Auth;
|
|
66
95
|
privy(): Privy;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -6,6 +6,7 @@ const auth_1 = require("./auth");
|
|
|
6
6
|
const context_1 = require("./context");
|
|
7
7
|
const admin_1 = require("./domain/admin");
|
|
8
8
|
const market_1 = require("./domain/market");
|
|
9
|
+
const metrics_1 = require("./domain/metrics");
|
|
9
10
|
const notification_1 = require("./domain/notification");
|
|
10
11
|
const order_1 = require("./domain/order");
|
|
11
12
|
const orderbook_1 = require("./domain/orderbook");
|
|
@@ -82,6 +83,24 @@ class LightconeClient {
|
|
|
82
83
|
clearOrderNonce() {
|
|
83
84
|
this.orderNonceValue = undefined;
|
|
84
85
|
}
|
|
86
|
+
// ── Auth token (cookie) ─────────────────────────────────────────────
|
|
87
|
+
/**
|
|
88
|
+
* Get the current `auth_token` cookie value, if any. Populated by the SDK
|
|
89
|
+
* after a successful login, then attached on every authed request. Useful
|
|
90
|
+
* for forwarding the token through the `*WithAuth` methods, or
|
|
91
|
+
* persisting the session across processes.
|
|
92
|
+
*/
|
|
93
|
+
async authToken() {
|
|
94
|
+
return this.http.authTokenRef()();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Clear the cached `auth_token`. Subsequent authed calls will go out
|
|
98
|
+
* without a `Cookie` header (and 401) unless they use a
|
|
99
|
+
* `*WithAuth` variant.
|
|
100
|
+
*/
|
|
101
|
+
async clearAuthToken() {
|
|
102
|
+
await this.http.clearAuthToken();
|
|
103
|
+
}
|
|
85
104
|
// ── Transaction signing + submission ────────────────────────────────
|
|
86
105
|
async signAndSubmitTx(tx) {
|
|
87
106
|
return (0, context_1.signAndSubmitTx)(this, tx);
|
|
@@ -111,6 +130,25 @@ class LightconeClient {
|
|
|
111
130
|
notifications() {
|
|
112
131
|
return new notification_1.Notifications(this);
|
|
113
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Metrics sub-client — platform / market / orderbook / category / deposit-token
|
|
135
|
+
* volume metrics, market leaderboard, and time-series history.
|
|
136
|
+
*/
|
|
137
|
+
metrics() {
|
|
138
|
+
return new metrics_1.Metrics(this);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Request testnet SOL and whitelisted deposit tokens for a wallet.
|
|
142
|
+
*
|
|
143
|
+
* Only active on environments whose backend has the faucet enabled (typically
|
|
144
|
+
* local and staging).
|
|
145
|
+
*
|
|
146
|
+
* `POST /api/claim`
|
|
147
|
+
*/
|
|
148
|
+
async claim(walletAddress) {
|
|
149
|
+
const url = `${this.http.baseUrl()}/api/claim`;
|
|
150
|
+
return this.http.post(url, { wallet_address: walletAddress }, http_1.RetryPolicy.None);
|
|
151
|
+
}
|
|
114
152
|
admin() {
|
|
115
153
|
return new admin_1.Admin(this);
|
|
116
154
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Connection, Keypair, PublicKey, Transaction } from \"@solana/web3.js\";\nimport { Auth, type AuthCredentials } from \"./auth\";\nimport type { ClientContext } from \"./context\";\nimport { signAndSubmitTx as signAndSubmitTxFn } from \"./context\";\nimport { Admin } from \"./domain/admin\";\nimport { Markets } from \"./domain/market\";\nimport { Notifications } from \"./domain/notification\";\nimport { Orders } from \"./domain/order\";\nimport { Orderbooks } from \"./domain/orderbook\";\nimport { Positions } from \"./domain/position\";\nimport { PriceHistoryClient } from \"./domain/price_history\";\nimport { Referrals } from \"./domain/referral\";\nimport { Trades } from \"./domain/trade\";\nimport { LightconeHttp } from \"./http\";\nimport { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId as envProgramId } from \"./env\";\nimport { Privy } from \"./privy\";\nimport { Rpc } from \"./rpc\";\nimport { DepositSource } from \"./shared\";\nimport { type ExternalSigner, type SigningStrategy } from \"./shared/signing\";\nimport { WsClient, type WsConfig } from \"./ws\";\n\nclass AuthState {\n private credentialsValue: AuthCredentials | undefined;\n\n constructor(initial?: AuthCredentials) {\n this.credentialsValue = initial;\n }\n\n getCredentials(): AuthCredentials | undefined {\n return this.credentialsValue;\n }\n\n setCredentials(credentials: AuthCredentials | undefined): void {\n this.credentialsValue = credentials;\n }\n\n async clearCaches(): Promise<void> {\n // No caches to clear — decimals are derived locally from orderbook metadata.\n }\n}\n\nexport class LightconeClient implements ClientContext {\n readonly http: LightconeHttp;\n readonly programId: PublicKey;\n readonly connection?: Connection;\n private depositSourceValue: DepositSource;\n private signingStrategyValue?: SigningStrategy;\n private orderNonceValue: number | undefined;\n private readonly wsConfigValue: WsConfig;\n private readonly authStateStore: AuthState;\n\n constructor(params: {\n http: LightconeHttp;\n wsConfig: WsConfig;\n programId?: PublicKey;\n connection?: Connection;\n depositSource?: DepositSource;\n signingStrategy?: SigningStrategy;\n orderNonce?: number;\n authCredentials?: AuthCredentials;\n authState?: AuthState;\n }) {\n this.http = params.http;\n this.programId = params.programId ?? envProgramId(LightconeEnv.Prod);\n this.connection = params.connection;\n this.depositSourceValue = params.depositSource ?? DepositSource.Global;\n this.signingStrategyValue = params.signingStrategy;\n this.orderNonceValue = params.orderNonce;\n this.wsConfigValue = params.wsConfig;\n this.authStateStore =\n params.authState ??\n new AuthState(params.authCredentials);\n }\n\n // ── Deposit source ──────────────────────────────────────────────────\n\n get depositSource(): DepositSource {\n return this.depositSourceValue;\n }\n\n setDepositSource(source: DepositSource): void {\n this.depositSourceValue = source;\n }\n\n // ── Signing strategy ────────────────────────────────────────────────\n\n get signingStrategy(): SigningStrategy | undefined {\n return this.signingStrategyValue;\n }\n\n setSigningStrategy(strategy: SigningStrategy): void {\n this.signingStrategyValue = strategy;\n }\n\n clearSigningStrategy(): void {\n this.signingStrategyValue = undefined;\n }\n\n // ── Nonce cache ──────────────────────────────────────────────────────\n\n orderNonce(): number | undefined {\n return this.orderNonceValue;\n }\n\n setOrderNonce(nonce: number): void {\n this.orderNonceValue = nonce;\n }\n\n clearOrderNonce(): void {\n this.orderNonceValue = undefined;\n }\n\n // ── Transaction signing + submission ────────────────────────────────\n\n async signAndSubmitTx(tx: Transaction): Promise<string> {\n return signAndSubmitTxFn(this, tx);\n }\n\n static builder(): LightconeClientBuilder {\n return new LightconeClientBuilder();\n }\n\n // ── Sub-client accessors ─────────────────────────────────────────────\n\n markets(): Markets {\n return new Markets(this);\n }\n\n orderbooks(): Orderbooks {\n return new Orderbooks(this);\n }\n\n orders(): Orders {\n return new Orders(this);\n }\n\n positions(): Positions {\n return new Positions(this);\n }\n\n trades(): Trades {\n return new Trades(this);\n }\n\n priceHistory(): PriceHistoryClient {\n return new PriceHistoryClient(this);\n }\n\n notifications(): Notifications {\n return new Notifications(this);\n }\n\n admin(): Admin {\n return new Admin(this);\n }\n\n auth(): Auth {\n return new Auth({\n http: this.http,\n authState: this.authStateStore,\n });\n }\n\n privy(): Privy {\n return new Privy(this);\n }\n\n referrals(): Referrals {\n return new Referrals(this);\n }\n\n rpc(): Rpc {\n return new Rpc(this);\n }\n\n wsConfig(): WsConfig {\n return this.wsConfigValue;\n }\n\n ws(): WsClient {\n return new WsClient(this.wsConfigValue, this.http.authTokenRef());\n }\n\n clone(): LightconeClient {\n return new LightconeClient({\n http: this.http,\n wsConfig: { ...this.wsConfigValue },\n programId: this.programId,\n connection: this.connection\n ? new Connection(this.connection.rpcEndpoint)\n : undefined,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n orderNonce: this.orderNonceValue,\n authState: this.authStateStore,\n });\n }\n}\n\nexport class LightconeClientBuilder {\n private baseUrlValue: string = apiUrl(LightconeEnv.Prod);\n private wsUrlValue: string = wsUrl(LightconeEnv.Prod);\n private authCredentials?: AuthCredentials;\n private programIdValue: PublicKey = envProgramId(LightconeEnv.Prod);\n private depositSourceValue: DepositSource = DepositSource.Global;\n private signingStrategyValue?: SigningStrategy;\n private rpcUrlValue?: string = rpcUrl(LightconeEnv.Prod);\n\n /**\n * Set the deployment environment. Configures the API URL, WebSocket URL,\n * RPC URL, and program ID for the given environment.\n *\n * Individual URL overrides (e.g. `.baseUrl()`) take precedence when\n * called **after** `.env()`.\n */\n env(environment: LightconeEnv): LightconeClientBuilder {\n this.baseUrlValue = apiUrl(environment);\n this.wsUrlValue = wsUrl(environment);\n this.programIdValue = envProgramId(environment);\n this.rpcUrlValue = rpcUrl(environment);\n return this;\n }\n\n baseUrl(url: string): LightconeClientBuilder {\n return this.withBaseUrl(url);\n }\n\n withBaseUrl(url: string): LightconeClientBuilder {\n this.baseUrlValue = url;\n return this;\n }\n\n wsUrl(url: string): LightconeClientBuilder {\n return this.withWsUrl(url);\n }\n\n withWsUrl(url: string): LightconeClientBuilder {\n this.wsUrlValue = url;\n return this;\n }\n\n auth(credentials: AuthCredentials): LightconeClientBuilder {\n return this.withAuth(credentials);\n }\n\n withAuth(credentials: AuthCredentials): LightconeClientBuilder {\n this.authCredentials = credentials;\n return this;\n }\n\n programId(id: PublicKey): LightconeClientBuilder {\n this.programIdValue = id;\n return this;\n }\n\n depositSource(source: DepositSource): LightconeClientBuilder {\n this.depositSourceValue = source;\n return this;\n }\n\n nativeSigner(keypair: Keypair): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"native\", keypair };\n return this;\n }\n\n externalSigner(signer: ExternalSigner): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"walletAdapter\", signer };\n return this;\n }\n\n privyWalletId(walletId: string): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"privy\", walletId };\n return this;\n }\n\n rpcUrl(url: string): LightconeClientBuilder {\n this.rpcUrlValue = url;\n return this;\n }\n\n build(): LightconeClient {\n return new LightconeClient({\n http: new LightconeHttp(this.baseUrlValue),\n wsConfig: {\n url: this.wsUrlValue,\n reconnect: true,\n maxReconnectAttempts: 10,\n baseReconnectDelayMs: 1_000,\n pingIntervalMs: 30_000,\n pongTimeoutMs: 10_000,\n },\n programId: this.programIdValue,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n connection: this.rpcUrlValue\n ? new Connection(this.rpcUrlValue)\n : undefined,\n authCredentials: this.authCredentials,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Connection, Keypair, PublicKey, Transaction } from \"@solana/web3.js\";\nimport { Auth, type AuthCredentials } from \"./auth\";\nimport type { ClientContext } from \"./context\";\nimport { signAndSubmitTx as signAndSubmitTxFn } from \"./context\";\nimport { Admin } from \"./domain/admin\";\nimport type { FaucetRequest, FaucetResponse } from \"./domain/faucet\";\nimport { Markets } from \"./domain/market\";\nimport { Metrics } from \"./domain/metrics\";\nimport { Notifications } from \"./domain/notification\";\nimport { Orders } from \"./domain/order\";\nimport { Orderbooks } from \"./domain/orderbook\";\nimport { Positions } from \"./domain/position\";\nimport { PriceHistoryClient } from \"./domain/price_history\";\nimport { Referrals } from \"./domain/referral\";\nimport { Trades } from \"./domain/trade\";\nimport { LightconeHttp, RetryPolicy } from \"./http\";\nimport { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId as envProgramId } from \"./env\";\nimport { Privy } from \"./privy\";\nimport { Rpc } from \"./rpc\";\nimport { DepositSource, type PubkeyStr } from \"./shared\";\nimport { type ExternalSigner, type SigningStrategy } from \"./shared/signing\";\nimport { WsClient, type WsConfig } from \"./ws\";\n\nclass AuthState {\n private credentialsValue: AuthCredentials | undefined;\n\n constructor(initial?: AuthCredentials) {\n this.credentialsValue = initial;\n }\n\n getCredentials(): AuthCredentials | undefined {\n return this.credentialsValue;\n }\n\n setCredentials(credentials: AuthCredentials | undefined): void {\n this.credentialsValue = credentials;\n }\n\n async clearCaches(): Promise<void> {\n // No caches to clear — decimals are derived locally from orderbook metadata.\n }\n}\n\nexport class LightconeClient implements ClientContext {\n readonly http: LightconeHttp;\n readonly programId: PublicKey;\n readonly connection?: Connection;\n private depositSourceValue: DepositSource;\n private signingStrategyValue?: SigningStrategy;\n private orderNonceValue: number | undefined;\n private readonly wsConfigValue: WsConfig;\n private readonly authStateStore: AuthState;\n\n constructor(params: {\n http: LightconeHttp;\n wsConfig: WsConfig;\n programId?: PublicKey;\n connection?: Connection;\n depositSource?: DepositSource;\n signingStrategy?: SigningStrategy;\n orderNonce?: number;\n authCredentials?: AuthCredentials;\n authState?: AuthState;\n }) {\n this.http = params.http;\n this.programId = params.programId ?? envProgramId(LightconeEnv.Prod);\n this.connection = params.connection;\n this.depositSourceValue = params.depositSource ?? DepositSource.Global;\n this.signingStrategyValue = params.signingStrategy;\n this.orderNonceValue = params.orderNonce;\n this.wsConfigValue = params.wsConfig;\n this.authStateStore =\n params.authState ??\n new AuthState(params.authCredentials);\n }\n\n // ── Deposit source ──────────────────────────────────────────────────\n\n get depositSource(): DepositSource {\n return this.depositSourceValue;\n }\n\n setDepositSource(source: DepositSource): void {\n this.depositSourceValue = source;\n }\n\n // ── Signing strategy ────────────────────────────────────────────────\n\n get signingStrategy(): SigningStrategy | undefined {\n return this.signingStrategyValue;\n }\n\n setSigningStrategy(strategy: SigningStrategy): void {\n this.signingStrategyValue = strategy;\n }\n\n clearSigningStrategy(): void {\n this.signingStrategyValue = undefined;\n }\n\n // ── Nonce cache ──────────────────────────────────────────────────────\n\n orderNonce(): number | undefined {\n return this.orderNonceValue;\n }\n\n setOrderNonce(nonce: number): void {\n this.orderNonceValue = nonce;\n }\n\n clearOrderNonce(): void {\n this.orderNonceValue = undefined;\n }\n\n // ── Auth token (cookie) ─────────────────────────────────────────────\n\n /**\n * Get the current `auth_token` cookie value, if any. Populated by the SDK\n * after a successful login, then attached on every authed request. Useful\n * for forwarding the token through the `*WithAuth` methods, or\n * persisting the session across processes.\n */\n async authToken(): Promise<string | undefined> {\n return this.http.authTokenRef()();\n }\n\n /**\n * Clear the cached `auth_token`. Subsequent authed calls will go out\n * without a `Cookie` header (and 401) unless they use a\n * `*WithAuth` variant.\n */\n async clearAuthToken(): Promise<void> {\n await this.http.clearAuthToken();\n }\n\n // ── Transaction signing + submission ────────────────────────────────\n\n async signAndSubmitTx(tx: Transaction): Promise<string> {\n return signAndSubmitTxFn(this, tx);\n }\n\n static builder(): LightconeClientBuilder {\n return new LightconeClientBuilder();\n }\n\n // ── Sub-client accessors ─────────────────────────────────────────────\n\n markets(): Markets {\n return new Markets(this);\n }\n\n orderbooks(): Orderbooks {\n return new Orderbooks(this);\n }\n\n orders(): Orders {\n return new Orders(this);\n }\n\n positions(): Positions {\n return new Positions(this);\n }\n\n trades(): Trades {\n return new Trades(this);\n }\n\n priceHistory(): PriceHistoryClient {\n return new PriceHistoryClient(this);\n }\n\n notifications(): Notifications {\n return new Notifications(this);\n }\n\n /**\n * Metrics sub-client — platform / market / orderbook / category / deposit-token\n * volume metrics, market leaderboard, and time-series history.\n */\n metrics(): Metrics {\n return new Metrics(this);\n }\n\n /**\n * Request testnet SOL and whitelisted deposit tokens for a wallet.\n *\n * Only active on environments whose backend has the faucet enabled (typically\n * local and staging).\n *\n * `POST /api/claim`\n */\n async claim(walletAddress: PubkeyStr): Promise<FaucetResponse> {\n const url = `${this.http.baseUrl()}/api/claim`;\n return this.http.post<FaucetResponse, FaucetRequest>(\n url,\n { wallet_address: walletAddress },\n RetryPolicy.None\n );\n }\n\n admin(): Admin {\n return new Admin(this);\n }\n\n auth(): Auth {\n return new Auth({\n http: this.http,\n authState: this.authStateStore,\n });\n }\n\n privy(): Privy {\n return new Privy(this);\n }\n\n referrals(): Referrals {\n return new Referrals(this);\n }\n\n rpc(): Rpc {\n return new Rpc(this);\n }\n\n wsConfig(): WsConfig {\n return this.wsConfigValue;\n }\n\n ws(): WsClient {\n return new WsClient(this.wsConfigValue, this.http.authTokenRef());\n }\n\n clone(): LightconeClient {\n return new LightconeClient({\n http: this.http,\n wsConfig: { ...this.wsConfigValue },\n programId: this.programId,\n connection: this.connection\n ? new Connection(this.connection.rpcEndpoint)\n : undefined,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n orderNonce: this.orderNonceValue,\n authState: this.authStateStore,\n });\n }\n}\n\nexport class LightconeClientBuilder {\n private baseUrlValue: string = apiUrl(LightconeEnv.Prod);\n private wsUrlValue: string = wsUrl(LightconeEnv.Prod);\n private authCredentials?: AuthCredentials;\n private programIdValue: PublicKey = envProgramId(LightconeEnv.Prod);\n private depositSourceValue: DepositSource = DepositSource.Global;\n private signingStrategyValue?: SigningStrategy;\n private rpcUrlValue?: string = rpcUrl(LightconeEnv.Prod);\n\n /**\n * Set the deployment environment. Configures the API URL, WebSocket URL,\n * RPC URL, and program ID for the given environment.\n *\n * Individual URL overrides (e.g. `.baseUrl()`) take precedence when\n * called **after** `.env()`.\n */\n env(environment: LightconeEnv): LightconeClientBuilder {\n this.baseUrlValue = apiUrl(environment);\n this.wsUrlValue = wsUrl(environment);\n this.programIdValue = envProgramId(environment);\n this.rpcUrlValue = rpcUrl(environment);\n return this;\n }\n\n baseUrl(url: string): LightconeClientBuilder {\n return this.withBaseUrl(url);\n }\n\n withBaseUrl(url: string): LightconeClientBuilder {\n this.baseUrlValue = url;\n return this;\n }\n\n wsUrl(url: string): LightconeClientBuilder {\n return this.withWsUrl(url);\n }\n\n withWsUrl(url: string): LightconeClientBuilder {\n this.wsUrlValue = url;\n return this;\n }\n\n auth(credentials: AuthCredentials): LightconeClientBuilder {\n return this.withAuth(credentials);\n }\n\n withAuth(credentials: AuthCredentials): LightconeClientBuilder {\n this.authCredentials = credentials;\n return this;\n }\n\n programId(id: PublicKey): LightconeClientBuilder {\n this.programIdValue = id;\n return this;\n }\n\n depositSource(source: DepositSource): LightconeClientBuilder {\n this.depositSourceValue = source;\n return this;\n }\n\n nativeSigner(keypair: Keypair): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"native\", keypair };\n return this;\n }\n\n externalSigner(signer: ExternalSigner): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"walletAdapter\", signer };\n return this;\n }\n\n privyWalletId(walletId: string): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"privy\", walletId };\n return this;\n }\n\n rpcUrl(url: string): LightconeClientBuilder {\n this.rpcUrlValue = url;\n return this;\n }\n\n build(): LightconeClient {\n return new LightconeClient({\n http: new LightconeHttp(this.baseUrlValue),\n wsConfig: {\n url: this.wsUrlValue,\n reconnect: true,\n maxReconnectAttempts: 10,\n baseReconnectDelayMs: 1_000,\n pingIntervalMs: 30_000,\n pongTimeoutMs: 10_000,\n },\n programId: this.programIdValue,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n connection: this.rpcUrlValue\n ? new Connection(this.rpcUrlValue)\n : undefined,\n authCredentials: this.authCredentials,\n });\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { Transaction, type PublicKey, type TransactionInstruction } from "@solan
|
|
|
2
2
|
import type { ClientContext } from "../../context";
|
|
3
3
|
import type { CreateMarketParams, AddDepositMintParams, ActivateMarketParams, SettleMarketParams, SetAuthorityParams, WhitelistDepositTokenParams, CreateOrderbookParams, MatchOrdersMultiParams, DepositAndSwapParams } from "../../program/types";
|
|
4
4
|
import type { AdminLoginRequest, AdminLoginResponse, AdminNonceResponse } from "./index";
|
|
5
|
-
import type { AllocateCodesRequest, AllocateCodesResponse, CreateNotificationRequest, CreateNotificationResponse, DismissNotificationRequest, DismissNotificationResponse, RevokeRequest, RevokeResponse, UnifiedMetadataRequest, UnifiedMetadataResponse, UnrevokeRequest, UnrevokeResponse, WhitelistRequest, WhitelistResponse } from "./wire";
|
|
5
|
+
import type { AdminLogEvent, AdminLogEventsQuery, AdminLogEventsResponse, AdminLogMetricHistoryQuery, AdminLogMetricHistoryResponse, AdminLogMetricsQuery, AdminLogMetricsResponse, AllocateCodesRequest, AllocateCodesResponse, CreateNotificationRequest, CreateNotificationResponse, DismissNotificationRequest, DismissNotificationResponse, ListCodesRequest, ListCodesResponse, ReferralConfig, RevokeRequest, RevokeResponse, UnifiedMetadataRequest, UnifiedMetadataResponse, UnrevokeRequest, UnrevokeResponse, UpdateCodeRequest, UpdateCodeResponse, UpdateConfigRequest, UploadMarketDeploymentAssetsRequest, UploadMarketDeploymentAssetsResponse, WhitelistRequest, WhitelistResponse } from "./wire";
|
|
6
6
|
export declare class Admin {
|
|
7
7
|
private readonly client;
|
|
8
8
|
constructor(client: ClientContext);
|
|
@@ -10,12 +10,21 @@ export declare class Admin {
|
|
|
10
10
|
adminLogin(request: AdminLoginRequest): Promise<AdminLoginResponse>;
|
|
11
11
|
adminLogout(): Promise<void>;
|
|
12
12
|
upsertMetadata(request: UnifiedMetadataRequest): Promise<UnifiedMetadataResponse>;
|
|
13
|
+
uploadMarketDeploymentAssets(request: UploadMarketDeploymentAssetsRequest): Promise<UploadMarketDeploymentAssetsResponse>;
|
|
13
14
|
allocateCodes(request: AllocateCodesRequest): Promise<AllocateCodesResponse>;
|
|
14
15
|
whitelist(request: WhitelistRequest): Promise<WhitelistResponse>;
|
|
15
16
|
revoke(request: RevokeRequest): Promise<RevokeResponse>;
|
|
16
17
|
unrevoke(request: UnrevokeRequest): Promise<UnrevokeResponse>;
|
|
17
18
|
createNotification(request: CreateNotificationRequest): Promise<CreateNotificationResponse>;
|
|
18
19
|
dismissNotification(request: DismissNotificationRequest): Promise<DismissNotificationResponse>;
|
|
20
|
+
getReferralConfig(): Promise<ReferralConfig>;
|
|
21
|
+
updateReferralConfig(request: UpdateConfigRequest): Promise<ReferralConfig>;
|
|
22
|
+
listReferralCodes(request: ListCodesRequest): Promise<ListCodesResponse>;
|
|
23
|
+
updateReferralCode(request: UpdateCodeRequest): Promise<UpdateCodeResponse>;
|
|
24
|
+
listLogEvents(query: AdminLogEventsQuery): Promise<AdminLogEventsResponse>;
|
|
25
|
+
getLogEvent(publicId: string): Promise<AdminLogEvent>;
|
|
26
|
+
logMetrics(query: AdminLogMetricsQuery): Promise<AdminLogMetricsResponse>;
|
|
27
|
+
logMetricHistory(query: AdminLogMetricHistoryQuery): Promise<AdminLogMetricHistoryResponse>;
|
|
19
28
|
initializeIx(authority: PublicKey): TransactionInstruction;
|
|
20
29
|
createMarketIx(params: CreateMarketParams, marketId: bigint): TransactionInstruction;
|
|
21
30
|
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,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,QAAQ,CAAC;AAEhB,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAI5C,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAK5C,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IASnE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,cAAc,CAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAS7B,aAAa,CACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAS3B,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAShE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IASvD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS7D,kBAAkB,CACtB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC;IAShC,mBAAmB,CACvB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/admin/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,10 @@ class Admin {
|
|
|
33
33
|
const url = `${this.client.http.baseUrl()}/api/admin/metadata`;
|
|
34
34
|
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
35
35
|
}
|
|
36
|
+
async uploadMarketDeploymentAssets(request) {
|
|
37
|
+
const url = `${this.client.http.baseUrl()}/api/admin/metadata/upload-market-deployment-assets`;
|
|
38
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
39
|
+
}
|
|
36
40
|
async allocateCodes(request) {
|
|
37
41
|
const url = `${this.client.http.baseUrl()}/api/admin/referral/allocate`;
|
|
38
42
|
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
@@ -57,6 +61,43 @@ class Admin {
|
|
|
57
61
|
const url = `${this.client.http.baseUrl()}/api/admin/notifications/dismiss`;
|
|
58
62
|
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
59
63
|
}
|
|
64
|
+
// ── Referral config / codes ──────────────────────────────────────────
|
|
65
|
+
async getReferralConfig() {
|
|
66
|
+
const url = `${this.client.http.baseUrl()}/api/admin/referral/config/get`;
|
|
67
|
+
return this.client.http.adminPost(url, {}, http_1.RetryPolicy.None);
|
|
68
|
+
}
|
|
69
|
+
async updateReferralConfig(request) {
|
|
70
|
+
const url = `${this.client.http.baseUrl()}/api/admin/referral/config/update`;
|
|
71
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
72
|
+
}
|
|
73
|
+
async listReferralCodes(request) {
|
|
74
|
+
const url = `${this.client.http.baseUrl()}/api/admin/referral/codes`;
|
|
75
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
76
|
+
}
|
|
77
|
+
async updateReferralCode(request) {
|
|
78
|
+
const url = `${this.client.http.baseUrl()}/api/admin/referral/codes/update`;
|
|
79
|
+
return this.client.http.adminPost(url, request, http_1.RetryPolicy.None);
|
|
80
|
+
}
|
|
81
|
+
// ── Admin logs ───────────────────────────────────────────────────────
|
|
82
|
+
async listLogEvents(query) {
|
|
83
|
+
const qs = buildQueryString(query);
|
|
84
|
+
const url = `${this.client.http.baseUrl()}/api/admin/logs/events${qs}`;
|
|
85
|
+
return this.client.http.adminGet(url, http_1.RetryPolicy.Idempotent);
|
|
86
|
+
}
|
|
87
|
+
async getLogEvent(publicId) {
|
|
88
|
+
const url = `${this.client.http.baseUrl()}/api/admin/logs/events/${encodeURIComponent(publicId)}`;
|
|
89
|
+
return this.client.http.adminGet(url, http_1.RetryPolicy.Idempotent);
|
|
90
|
+
}
|
|
91
|
+
async logMetrics(query) {
|
|
92
|
+
const qs = buildQueryString(query);
|
|
93
|
+
const url = `${this.client.http.baseUrl()}/api/admin/logs/metrics${qs}`;
|
|
94
|
+
return this.client.http.adminGet(url, http_1.RetryPolicy.Idempotent);
|
|
95
|
+
}
|
|
96
|
+
async logMetricHistory(query) {
|
|
97
|
+
const qs = buildQueryString(query);
|
|
98
|
+
const url = `${this.client.http.baseUrl()}/api/admin/logs/metrics/history${qs}`;
|
|
99
|
+
return this.client.http.adminGet(url, http_1.RetryPolicy.Idempotent);
|
|
100
|
+
}
|
|
60
101
|
// ── On-chain transaction builders ────────────────────────────────────
|
|
61
102
|
initializeIx(authority) {
|
|
62
103
|
return (0, instructions_1.buildInitializeIx)({ authority }, this.client.programId);
|
|
@@ -145,4 +186,14 @@ class Admin {
|
|
|
145
186
|
}
|
|
146
187
|
}
|
|
147
188
|
exports.Admin = Admin;
|
|
189
|
+
function buildQueryString(query) {
|
|
190
|
+
const params = new URLSearchParams();
|
|
191
|
+
for (const [key, value] of Object.entries(query)) {
|
|
192
|
+
if (value === undefined || value === null)
|
|
193
|
+
continue;
|
|
194
|
+
params.append(key, String(value));
|
|
195
|
+
}
|
|
196
|
+
const qs = params.toString();
|
|
197
|
+
return qs ? `?${qs}` : "";
|
|
198
|
+
}
|
|
148
199
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/admin/client.ts"],"names":[],"mappings":";;;AAAA,6CAA2F;AAE3F,qCAAyC;AACzC,6DAaoC;AAkCpC,MAAa,KAAK;IACa;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,wEAAwE;IAExE,KAAK,CAAC,aAAa;QACjB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAqB,GAAG,EAAE,kBAAW,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAC1B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,kBAAW,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,8EAA8E;QAChF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,wEAAwE;IAExE,KAAK,CAAC,cAAc,CAClB,OAA+B;QAE/B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAA6B;QAE7B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC;QACxE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB;QACvC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,+BAA+B,CAAC;QACzE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,4BAA4B,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC;QACxE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAAkC;QAElC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC;QACpE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAAmC;QAEnC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kCAAkC,CAAC;QAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/B,GAAG,EACH,OAAO,EACP,kBAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,wEAAwE;IAExE,YAAY,CAAC,SAAoB;QAC/B,OAAO,IAAA,gCAAiB,EAAC,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,cAAc,CAAC,MAA0B,EAAE,QAAgB;QACzD,OAAO,IAAA,kCAAmB,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB,CACd,MAA4B,EAC5B,MAAiB,EACjB,WAAmB;QAEnB,OAAO,IAAA,oCAAqB,EAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,OAAO,IAAA,oCAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,cAAc,CAAC,MAA0B;QACvC,OAAO,IAAA,kCAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,SAAoB,EAAE,MAAe;QAC/C,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,aAAa,CAAC,SAAoB,EAAE,WAAsB;QACxD,OAAO,IAAA,iCAAkB,EAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;IAED,cAAc,CAAC,MAA0B;QACvC,OAAO,IAAA,kCAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,uBAAuB,CAAC,MAAmC;QACzD,OAAO,IAAA,2CAA4B,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,iBAAiB,CAAC,MAA6B;QAC7C,OAAO,IAAA,qCAAsB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB,CAAC,MAA8B;QAC/C,OAAO,IAAA,sCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,OAAO,IAAA,oCAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,uEAAuE;IAEvE,YAAY,CAAC,SAAoB;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,MAA0B,EAAE,QAAgB;QACzD,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB,CACd,MAA4B,EAC5B,MAAiB,EACjB,WAAmB;QAEnB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,cAAc,CAAC,MAA0B;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,WAAW,CAAC,SAAoB,EAAE,MAAe;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,aAAa,CAAC,SAAoB,EAAE,WAAsB;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,MAA0B;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,uBAAuB,CAAC,MAAmC;QACzD,MAAM,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,iBAAiB,CAAC,MAA6B;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,kBAAkB,CAAC,MAA8B;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;CACF;AA7ND,sBA6NC","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
|
+
{"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 AdminLogEvent,\n AdminLogEventsQuery,\n AdminLogEventsResponse,\n AdminLogMetricHistoryQuery,\n AdminLogMetricHistoryResponse,\n AdminLogMetricsQuery,\n AdminLogMetricsResponse,\n AllocateCodesRequest,\n AllocateCodesResponse,\n CreateNotificationRequest,\n CreateNotificationResponse,\n DismissNotificationRequest,\n DismissNotificationResponse,\n ListCodesRequest,\n ListCodesResponse,\n ReferralConfig,\n RevokeRequest,\n RevokeResponse,\n UnifiedMetadataRequest,\n UnifiedMetadataResponse,\n UnrevokeRequest,\n UnrevokeResponse,\n UpdateCodeRequest,\n UpdateCodeResponse,\n UpdateConfigRequest,\n UploadMarketDeploymentAssetsRequest,\n UploadMarketDeploymentAssetsResponse,\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 uploadMarketDeploymentAssets(\n request: UploadMarketDeploymentAssetsRequest\n ): Promise<UploadMarketDeploymentAssetsResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/metadata/upload-market-deployment-assets`;\n return this.client.http.adminPost<\n UploadMarketDeploymentAssetsResponse,\n UploadMarketDeploymentAssetsRequest\n >(url, request, RetryPolicy.None);\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 // ── Referral config / codes ──────────────────────────────────────────\n\n async getReferralConfig(): Promise<ReferralConfig> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/config/get`;\n return this.client.http.adminPost<ReferralConfig, Record<string, never>>(\n url,\n {},\n RetryPolicy.None\n );\n }\n\n async updateReferralConfig(\n request: UpdateConfigRequest\n ): Promise<ReferralConfig> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/config/update`;\n return this.client.http.adminPost<ReferralConfig, UpdateConfigRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async listReferralCodes(\n request: ListCodesRequest\n ): Promise<ListCodesResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/codes`;\n return this.client.http.adminPost<ListCodesResponse, ListCodesRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async updateReferralCode(\n request: UpdateCodeRequest\n ): Promise<UpdateCodeResponse> {\n const url = `${this.client.http.baseUrl()}/api/admin/referral/codes/update`;\n return this.client.http.adminPost<UpdateCodeResponse, UpdateCodeRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n // ── Admin logs ───────────────────────────────────────────────────────\n\n async listLogEvents(query: AdminLogEventsQuery): Promise<AdminLogEventsResponse> {\n const qs = buildQueryString(query);\n const url = `${this.client.http.baseUrl()}/api/admin/logs/events${qs}`;\n return this.client.http.adminGet<AdminLogEventsResponse>(url, RetryPolicy.Idempotent);\n }\n\n async getLogEvent(publicId: string): Promise<AdminLogEvent> {\n const url = `${this.client.http.baseUrl()}/api/admin/logs/events/${encodeURIComponent(publicId)}`;\n return this.client.http.adminGet<AdminLogEvent>(url, RetryPolicy.Idempotent);\n }\n\n async logMetrics(query: AdminLogMetricsQuery): Promise<AdminLogMetricsResponse> {\n const qs = buildQueryString(query);\n const url = `${this.client.http.baseUrl()}/api/admin/logs/metrics${qs}`;\n return this.client.http.adminGet<AdminLogMetricsResponse>(url, RetryPolicy.Idempotent);\n }\n\n async logMetricHistory(\n query: AdminLogMetricHistoryQuery\n ): Promise<AdminLogMetricHistoryResponse> {\n const qs = buildQueryString(query);\n const url = `${this.client.http.baseUrl()}/api/admin/logs/metrics/history${qs}`;\n return this.client.http.adminGet<AdminLogMetricHistoryResponse>(url, RetryPolicy.Idempotent);\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\nfunction buildQueryString(query: object): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined || value === null) continue;\n params.append(key, String(value));\n }\n const qs = params.toString();\n return qs ? `?${qs}` : \"\";\n}\n"]}
|