@vercora-protocol/sdk 0.0.9 → 0.0.11

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 CHANGED
@@ -14,94 +14,205 @@ yarn add @vercora-protocol/sdk
14
14
 
15
15
  ```bash
16
16
  npm install @coral-xyz/anchor @solana/web3.js @solana/spl-token bn.js
17
+ # or
18
+ yarn add @coral-xyz/anchor @solana/web3.js @solana/spl-token bn.js
17
19
  ```
18
20
 
19
21
  ## Quick start
20
22
 
21
23
  ```ts
22
24
  import * as anchor from "@coral-xyz/anchor";
23
- import { Program } from "@coral-xyz/anchor";
24
25
  import { Connection, clusterApiUrl } from "@solana/web3.js";
25
- import { PredictionMarketClient } from "@vercora-protocol/sdk";
26
+ import { IDL, PROGRAM_ID, PredictionMarketClient } from "@vercora-protocol/sdk";
26
27
  import type { Vercora } from "@vercora-protocol/sdk";
27
- import { BN } from "bn.js";
28
28
 
29
- // 1. Set up an Anchor provider (browser wallet / NodeWallet)
30
29
  const connection = new Connection(clusterApiUrl("devnet"));
31
30
  const provider = new anchor.AnchorProvider(connection, wallet, {});
32
31
  anchor.setProvider(provider);
33
32
 
34
- // 2. Load the on-chain program (IDL is bundled no extra file needed)
35
- import { IDL, PROGRAM_ID } from "@vercora-protocol/sdk";
36
- const program = new anchor.Program<Vercora>(IDL, PROGRAM_ID, provider);
37
-
38
- // 3. Create the client
33
+ // Bundled IDL program id is embedded in `IDL.address` (`PROGRAM_ID` matches it)
34
+ const program = new anchor.Program<Vercora>(IDL, provider);
39
35
  const client = new PredictionMarketClient(program);
40
36
  ```
41
37
 
42
- ## Platforms and categories
38
+ Most transaction methods use **`provider.wallet.publicKey`** as the signer (`user`, `authority`, `creator`, etc.). Pass a wallet that can sign; read-only flows can use a read-only provider for fetch helpers only.
43
39
 
44
- Markets store **`platform_id`** and **`category_id`** as on-chain **u64** values (not pubkeys).
40
+ ## Package exports
45
41
 
46
- 1. **`register_platform`** (program authority) — assigns the next id from `GlobalConfig.next_platform_id` and creates a **`PlatformRegistry`** PDA: seeds `["platform", platform_id le u8×8]`. Holds `next_category_id` and `profile_authority` (who may edit the **`PlatformProfile`** for that id).
47
- 2. **`create_market_category`** args `(platform_id, category_id, name)`; **`category_id`** must equal **`PlatformRegistry.next_category_id`** (then the registry is bumped after init). PDA seeds: `["market-category", platform_id le u32, category_id le u8]`.
48
- 3. **`create_market`** — args include `platform_id` and `category_id`. Rules: if `platform_id == 0` then `category_id` must be `0` and no registry/category accounts are passed. If `platform_id > 0`, pass the **`platform_registry`** account; if `category_id > 0`, pass the matching **`market_category`** account.
42
+ | Export | Description |
43
+ | ------------------------ | -------------------------------------------------------------------------------------------- |
44
+ | `PredictionMarketClient` | High-level program wrapper (see below). |
45
+ | `IDL`, `PROGRAM_ID` | Anchor IDL JSON and `PublicKey` for the deployed program. |
46
+ | `pda` helpers | `deriveMarket`, `deriveVault`, `deriveParimutuelState`, … (see [PDA helpers](#pda-helpers)). |
47
+ | `types` | Params and account shapes (`CreateMarketParams`, `ListedMarket`, …). |
48
+ | `marketUi` | Pure UI helpers (`getMarketLifecycleStatus`, `formatTimeLeft`, …). |
49
+ | `Vercora` (type) | Anchor `Program` generic for `Program<Vercora>`. |
49
50
 
50
- Use the SDK helpers **`derivePlatformRegistry`**, **`derivePlatformProfile`**, and **`deriveMarketCategory(programId, platformId, categoryId)`** when building transactions manually.
51
+ ---
51
52
 
52
- ## Market types
53
+ ## `PredictionMarketClient` API
54
+
55
+ Public properties: **`program`**, **`connection`**, **`globalConfig`** (PDA).
56
+
57
+ ### Global config (authority)
53
58
 
54
- Use `marketType: 'parimutuel'` or `marketType: 'completeSet'` when creating a market (the Anchor default is `completeSet` if you omit the field — set `parimutuel` explicitly for pool mode). The choice is permanent.
59
+ | Method | Purpose |
60
+ | ----------------------------------- | ---------------------------------------------- |
61
+ | `initializeConfig(params)` | One-time init; `authority` = connected wallet. |
62
+ | `updateConfig(params)` | Update fees, treasury, authorities. |
63
+ | `addAllowedCollateralMint(mint)` | Allowlist a collateral mint. |
64
+ | `removeAllowedCollateralMint(mint)` | Remove from allowlist. |
55
65
 
56
- ### `parimutuel` pool markets (**easiest to get started**)
66
+ ### Platforms & categories
57
67
 
58
- Stakes go into shared outcome pools on-chain. No outcome SPL tokens are minted. Odds follow pool sizes; the winning side splits the pot at settlement.
68
+ | Method | Purpose |
69
+ | ------------------------------ | ------------------------------------------------------------------------ |
70
+ | `registerPlatform(params)` | Next `platform_id` from `GlobalConfig`; returns `{ platformId, sig }`. |
71
+ | `createMarketCategory(params)` | Next category id per `PlatformRegistry` (must match `next_category_id`). |
72
+ | `updateMarketCategory(params)` | Rename / toggle active. |
59
73
 
60
- - **No liquidity layer required** — the pool is the market. Ship without wiring a DEX or running an AMM.
61
- - **Minimal integration** — stake, withdraw, claim; no outcome-token listings to maintain.
62
- - Positions are ledger entries, not transferable tokens. Early withdrawal may use a configurable penalty.
63
- - **Best for:** most prediction-style apps and teams that want live odds and settlement without operating liquidity infrastructure.
74
+ ### Market creation
64
75
 
65
- ### `completeSet` — token markets (**needs a liquidity layer**)
76
+ | Method | Purpose |
77
+ | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
78
+ | `createMarket(creator, collateralMint, creatorFeeAccount, params)` | Step 1: market + vault. |
79
+ | `initializeMarketResolverSlots(marketPda, params, opts?, parimutuelStateParams?)` | Resolver PDAs; optional `parimutuelStateParams` appends `initializeParimutuelState` in the same tx. |
80
+ | `initializeMarketOutcomeSlots(marketPda, params)` | `MarketOutcome` labels (complete-set & pari). |
81
+ | `initializeMarketMints(marketPda, marketId)` | Mint 8 outcome SPLs (complete-set only). |
82
+ | `initializeParimutuelState(marketPda, params)` | Standalone pari pool + penalty params (if not bundled with resolvers). |
83
+ | `createMarketFull(creator, collateralMint, creatorFeeAccount, resolverPubkeys, params)` | Runs create → outcomes → resolvers (+ mints **or** pari state in one flow). |
84
+ | `updateParimutuelState(marketPda, params)` | Creator updates early-exit penalty (open pari pool). |
66
85
 
67
- The protocol mints one SPL outcome token per outcome when users deposit collateral. The **program does not include an order book or AMM** — you must provide or integrate liquidity so users can trade between outcomes.
86
+ ### Complete-set trading
87
+
88
+ | Method | Purpose |
89
+ | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
90
+ | `mintCompleteSet(user, marketPda, collateralMint, userCollateralAta, platformTreasury, creatorFeeAccount, params, opts?, tokenProgram?)` | Mint full set; creates missing outcome ATAs. |
91
+ | `redeemCompleteSet(user, marketPda, collateralMint, userCollateralAta, params)` | Burn full set for collateral. |
92
+ | `redeemWinning(user, marketPda, collateralMint, userCollateralAta, params)` | After resolution, redeem winning outcome tokens. |
93
+
94
+ ### Parimutuel trading
68
95
 
69
- - Outcome tokens are composable SPL assets (wallets, DEXes, DeFi).
70
- - Mint/redeem full complete sets before close without a counterparty for that step.
71
- - **Single-outcome trading requires external liquidity** (AMM, RFQ, market-maker, etc.) or users cannot reliably move between legs.
72
- - **Best for:** teams that control or integrate a DEX, run their own pools, or pair the program with an explicit liquidity strategy.
96
+ | Method | Purpose |
97
+ | --------------------------------------- | ------------------------------------------------------- |
98
+ | `parimutuelStake(marketPda, params)` | Stake; signer is **provider wallet** (`user` on-chain). |
99
+ | `parimutuelWithdraw(marketPda, params)` | Early exit (penalty may apply). |
100
+ | `parimutuelClaim(marketPda, params)` | Claim after resolution. |
101
+
102
+ ### Resolution & lifecycle
103
+
104
+ | Method | Purpose |
105
+ | ----------------------------------------- | --------------------------------------------- |
106
+ | `voteResolution(marketPda, params)` | Resolver vote. |
107
+ | `revokeResolutionVote(marketPda, params)` | Clear vote before changing. |
108
+ | `finalizeResolution(marketPda, params)` | Anyone, once threshold met. |
109
+ | `closeMarketEarly(marketPda, params)` | Creator / config authority before `close_at`. |
110
+ | `voidMarket(marketPda, params)` | Void market. |
111
+ | `abandonMarket(marketPda, params)` | Creator abandons empty market (reclaim rent). |
112
+
113
+ ### Discovery & reads
114
+
115
+ | Method | Purpose |
116
+ | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
117
+ | `fetchGlobalConfig()` | Global config account. |
118
+ | `fetchMarket(marketPda)` | `Market` account. |
119
+ | `fetchAllMarkets(platformId?)` | All markets (optional `memcmp` on `platform_id`); includes outcome labels. |
120
+ | `fetchMarketsByPlatform(platformId)` | Same as `fetchAllMarkets(platformId)`. |
121
+ | `fetchMarketsByCreator(creator)` | Raw rows `{ pubkey, account }[]`, memcmp on creator. |
122
+ | `getUsersMarkets(creator, filters?)` | **`ListedMarket[]`** for creator; optional `platformId` (RPC) + `categoryId` (client filter). |
123
+ | `fetchMarketOutcomeLabels(marketPda, outcomeCount)` | Outcome labels. |
124
+ | `fetchVaultBalance(marketPda)` | Vault balance (bigint base units). |
125
+ | `fetchOutcomeBalance(marketPda, user, outcomeIndex)` | Single outcome token balance (complete-set). |
126
+ | `fetchAllOutcomeBalances(marketPda, user, outcomeCount)` | All outcome balances for user. |
127
+ | `fetchMarketCategory(categoryPda)` | One category. |
128
+ | `fetchAllMarketCategories()` | All categories (sorted). |
129
+ | `fetchResolutionVote(marketPda, resolverIndex)` | Vote PDA or null. |
130
+ | `fetchMarketOutcomesSnapshot(marketPda, outcomeCount)` | Decoded outcomes + tallies. |
131
+ | `fetchOutcomeTallyCounts(marketPda)` | Quick tally array. |
132
+ | `fetchAllowedCollateralMints()` | Allowlist mints. |
133
+ | `fetchUserProfile(wallet)` | User profile or null. |
134
+ | `fetchPlatformProfile(platformId)` | Platform profile or null. |
135
+ | `fetchParimutuelState(marketPda)` | Pari pool state. |
136
+ | `fetchParimutuelPosition(marketPda, user, outcomeIndex)` | Position or null. |
137
+ | `fetchParimutuelActiveStakesBatch(marketPda, user, outcomeCount)` | Active stakes per outcome. |
138
+ | `computeParimutuelOdds(state, outcomeCount)` | Implied probs + payout multipliers. |
139
+ | `fetchResolver(marketPda, index)` | One resolver account. |
140
+ | `fetchAllResolvers(marketPda, numResolvers)` | Initialized resolver slots. |
141
+
142
+ ### Profiles
143
+
144
+ | Method | Purpose |
145
+ | ---------------------------------- | ------------------------------------------- |
146
+ | `upsertUserProfile(params)` | Display name / URL. |
147
+ | `closeUserProfile()` | Close caller’s profile. |
148
+ | `verifyUserProfile(params)` | Verifier marks verified. |
149
+ | `upsertPlatformProfile(params)` | Platform profile (scoped by `platform_id`). |
150
+ | `closePlatformProfile(platformId)` | Close profile. |
151
+ | `verifyPlatformProfile(params)` | Verify platform profile. |
73
152
 
74
153
  ---
75
154
 
76
- ## Usage examples
155
+ ## Examples
156
+
157
+ ### Global config (first deploy)
158
+
159
+ ```ts
160
+ import { PublicKey } from "@solana/web3.js";
161
+ import BN from "bn.js";
162
+
163
+ await client.initializeConfig({
164
+ // System program / “none” placeholder — use a real secondary authority pubkey in production
165
+ secondaryAuthority: new PublicKey("11111111111111111111111111111111"),
166
+ depositPlatformFeeBps: 100,
167
+ platformTreasuryWallet: treasuryPubkey,
168
+ platformFeeLamports: new BN(357_000),
169
+ parimutuelWithdrawPlatformFeeBps: 50,
170
+ });
171
+ ```
172
+
173
+ ### Register platform & category
174
+
175
+ ```ts
176
+ const { platformId } = await client.registerPlatform({
177
+ profileAuthority: profileSignerPubkey,
178
+ });
179
+
180
+ await client.createMarketCategory({
181
+ platformId,
182
+ name: "Politics",
183
+ });
184
+ ```
77
185
 
78
- ### Create a market
186
+ ### Create a market (manual steps, complete-set)
79
187
 
80
188
  ```ts
81
- import { BN } from "bn.js";
189
+ import BN from "bn.js";
82
190
 
83
- const marketId = new BN(Date.now()); // unique u64 per creator
191
+ const marketId = new BN(Date.now());
84
192
  const { marketPda } = await client.createMarket(
85
- provider.wallet.publicKey, // creator
86
- collateralMintPubkey,
87
- creatorFeeAccountPubkey,
193
+ creatorPubkey,
194
+ collateralMint,
195
+ creatorFeeAta,
88
196
  {
89
197
  marketId,
90
198
  outcomeCount: 2,
91
199
  resolutionThreshold: 1,
92
- closeAt: new BN(Math.floor(Date.now() / 1000) + 86400), // 24 h from now
200
+ closeAt: new BN(Math.floor(Date.now() / 1000) + 86400),
93
201
  creatorFeeBps: 50,
94
- depositPlatformFeeBps: 0, // 0 = inherit global config
202
+ depositPlatformFeeBps: 0,
95
203
  numResolvers: 1,
204
+ maxOutcomeInvestment: new BN(0),
96
205
  title: "Will it rain tomorrow?",
97
- marketType: "completeSet", // or 'parimutuel'
98
- // Optional: scoped market (omit or use new BN(0) for unscoped / uncategorized)
206
+ marketType: "completeSet",
99
207
  platformId: new BN(0),
100
208
  categoryId: new BN(0),
101
209
  },
102
210
  );
103
211
 
104
- // Resolver slots and outcome mints must be initialised before trading
212
+ await client.initializeMarketOutcomeSlots(marketPda, {
213
+ marketId,
214
+ labels: ["Yes", "No"],
215
+ });
105
216
  await client.initializeMarketResolverSlots(marketPda, {
106
217
  marketId,
107
218
  resolverPubkeys: [resolverPubkey],
@@ -109,98 +220,189 @@ await client.initializeMarketResolverSlots(marketPda, {
109
220
  await client.initializeMarketMints(marketPda, marketId);
110
221
  ```
111
222
 
112
- ### Complete-set trading
223
+ ### Create market in one call (`createMarketFull`)
224
+
225
+ Complete-set (mints outcome tokens):
113
226
 
114
227
  ```ts
115
- // Mint one complete set (all outcomes)
116
- await client.mintCompleteSet(
117
- user,
118
- marketPda,
228
+ const marketPda = await client.createMarketFull(
229
+ creatorPubkey,
119
230
  collateralMint,
120
- userCollateralAta,
121
- platformTreasury,
122
- creatorFeeAccount,
123
- { marketId, amount: new BN(1_000_000) },
231
+ creatorFeeAta,
232
+ [resolverPubkey],
233
+ {
234
+ marketId,
235
+ outcomeCount: 2,
236
+ resolutionThreshold: 1,
237
+ closeAt: new BN(Math.floor(Date.now() / 1000) + 86400),
238
+ creatorFeeBps: 50,
239
+ depositPlatformFeeBps: 0,
240
+ numResolvers: 1,
241
+ maxOutcomeInvestment: new BN(0),
242
+ title: "Two-outcome market",
243
+ marketType: "completeSet",
244
+ outcomeLabels: ["Yes", "No"],
245
+ },
124
246
  );
247
+ ```
125
248
 
126
- // Redeem a complete set back to collateral
127
- await client.redeemCompleteSet(
128
- user,
129
- marketPda,
249
+ Parimutuel (resolver tx also initializes pari state; optional `parimutuelInit` overrides defaults):
250
+
251
+ ```ts
252
+ const marketPda = await client.createMarketFull(
253
+ creatorPubkey,
130
254
  collateralMint,
131
- userCollateralAta,
132
- { marketId },
255
+ creatorFeeAta,
256
+ [resolverPubkey],
257
+ {
258
+ marketId,
259
+ outcomeCount: 2,
260
+ resolutionThreshold: 1,
261
+ closeAt: new BN(Math.floor(Date.now() / 1000) + 86400),
262
+ creatorFeeBps: 50,
263
+ depositPlatformFeeBps: 0,
264
+ numResolvers: 1,
265
+ maxOutcomeInvestment: new BN(0),
266
+ title: "Pari pool",
267
+ marketType: "parimutuel",
268
+ outcomeLabels: ["A", "B"],
269
+ parimutuelInit: {
270
+ earlyWithdrawPenaltyBps: 500,
271
+ penaltyKeptInPoolBps: 8000,
272
+ },
273
+ },
133
274
  );
134
-
135
- // After resolution — redeem the winning outcome tokens
136
- await client.redeemWinning(user, marketPda, collateralMint, userCollateralAta, {
137
- marketId,
138
- amount: winningBalance,
139
- });
140
275
  ```
141
276
 
142
- ### Parimutuel trading
277
+ ### Complete-set trading
143
278
 
144
279
  ```ts
145
- // Stake on an outcome
146
- await client.parimutuelStake(
147
- user,
280
+ const treasury = (await client.fetchGlobalConfig()).platformTreasury;
281
+
282
+ await client.mintCompleteSet(
283
+ userPubkey,
148
284
  marketPda,
149
285
  collateralMint,
150
286
  userCollateralAta,
151
- platformTreasury,
152
- creatorFeeAccount,
153
- { marketId, outcomeIndex: 0, amount: new BN(500_000) },
287
+ treasury,
288
+ creatorFeeAta,
289
+ { marketId, amount: new BN(1_000_000) },
154
290
  );
155
291
 
156
- // Withdraw before market closes (penalty may apply)
157
- await client.parimutuelWithdraw(
158
- user,
292
+ await client.redeemCompleteSet(
293
+ userPubkey,
159
294
  marketPda,
160
295
  collateralMint,
161
296
  userCollateralAta,
162
- { marketId, outcomeIndex: 0, amount: new BN(500_000) },
297
+ { marketId },
163
298
  );
164
299
 
165
- // Claim winnings after resolution
166
- await client.parimutuelClaim(
167
- user,
300
+ await client.redeemWinning(
301
+ userPubkey,
168
302
  marketPda,
169
303
  collateralMint,
170
304
  userCollateralAta,
171
- { marketId, outcomeIndex: 0 },
305
+ {
306
+ marketId,
307
+ amount: winningAmountBn,
308
+ },
172
309
  );
173
310
  ```
174
311
 
312
+ ### Parimutuel trading
313
+
314
+ Signer is always the **connected wallet** (no `user` first argument):
315
+
316
+ ```ts
317
+ await client.parimutuelStake(marketPda, {
318
+ marketId,
319
+ outcomeIndex: 0,
320
+ amount: new BN(500_000),
321
+ });
322
+
323
+ await client.parimutuelWithdraw(marketPda, {
324
+ marketId,
325
+ outcomeIndex: 0,
326
+ amount: new BN(500_000),
327
+ });
328
+
329
+ await client.parimutuelClaim(marketPda, {
330
+ marketId,
331
+ outcomeIndex: 0,
332
+ });
333
+
334
+ const state = await client.fetchParimutuelState(marketPda);
335
+ const odds = client.computeParimutuelOdds(state, 2);
336
+ ```
337
+
175
338
  ### Resolution
176
339
 
177
340
  ```ts
178
- // Resolver votes on the winning outcome
179
341
  await client.voteResolution(marketPda, {
180
342
  marketId,
181
343
  resolverIndex: 0,
182
- outcomeIndex: 1, // 0-based
344
+ outcomeIndex: 1,
183
345
  });
184
346
 
185
- // Once the threshold is met, anyone can finalize
186
347
  await client.finalizeResolution(marketPda, { marketId });
187
348
  ```
188
349
 
189
- ### Read on-chain state
350
+ ### Discovery
351
+
352
+ ```ts
353
+ // Every market (heavy on RPC)
354
+ const all = await client.fetchAllMarkets();
355
+
356
+ // By platform (memcmp)
357
+ const byPlatform = await client.fetchAllMarkets(new BN(1));
358
+
359
+ // Markets created by a wallet — full rows with labels + filters
360
+ const mine = await client.getUsersMarkets(creatorPubkey, {
361
+ platformId: new BN(1), // optional RPC filter
362
+ categoryId: 2, // optional; applied after decode
363
+ });
364
+
365
+ // Raw accounts only (no labels)
366
+ const raw = await client.fetchMarketsByCreator(creatorPubkey);
367
+ ```
368
+
369
+ ### User profile
190
370
 
191
371
  ```ts
192
- const market = await client.fetchMarket(marketPda);
193
- console.log(market.title, market.marketType, market.platformId.toString(), market.categoryId.toString());
372
+ await client.upsertUserProfile({
373
+ displayName: "Alice",
374
+ url: "https://example.com",
375
+ });
194
376
 
195
- const config = await client.fetchGlobalConfig();
377
+ const profile = await client.fetchUserProfile(wallet.publicKey);
196
378
  ```
197
379
 
380
+ ---
381
+
382
+ ## Platforms and categories
383
+
384
+ On-chain, **`platform_id`** is **`u32`** and **`category_id`** is **`u8`** in `CreateMarketArgs` (not pubkeys).
385
+
386
+ 1. **`register_platform`** — assigns the next id from `GlobalConfig.next_platform_id`; PDA `["platform", platform_id le u32]`.
387
+ 2. **`create_market_category`** — `category_id` must equal `PlatformRegistry.next_category_id` before bump; PDA `["market-category", platform_id, category_id]`.
388
+ 3. **`create_market`** — if `platform_id == 0` then `category_id` must be `0`. If `platform_id > 0`, pass `platform_registry`; if `category_id > 0`, pass `market_category`.
389
+
390
+ Use **`derivePlatformRegistry`**, **`derivePlatformProfile`**, **`deriveMarketCategory`** when building instructions manually.
391
+
392
+ ## Market types
393
+
394
+ Use `marketType: 'parimutuel'` or `'completeSet'` at creation; the choice is permanent.
395
+
396
+ - **Parimutuel** — pooled stakes, no outcome SPLs; good default for prediction apps.
397
+ - **Complete-set** — outcome SPL tokens; you still need external liquidity for single-leg trading.
398
+
198
399
  ## PDA helpers
199
400
 
200
- All PDAs are derived in `pda.ts` and re-exported from the package:
401
+ From `@vercora-protocol/sdk`:
201
402
 
202
403
  ```ts
203
404
  import {
405
+ PROGRAM_ID,
204
406
  deriveGlobalConfig,
205
407
  deriveAllowedMint,
206
408
  deriveMarket,
@@ -210,24 +412,48 @@ import {
210
412
  deriveResolver,
211
413
  deriveAllResolvers,
212
414
  deriveResolutionVote,
415
+ deriveMarketOutcome,
416
+ deriveAllMarketOutcomes,
417
+ deriveParimutuelState,
418
+ deriveParimutuelPosition,
213
419
  deriveUserProfile,
214
420
  derivePlatformRegistry,
215
421
  derivePlatformProfile,
216
422
  deriveMarketCategory,
423
+ bnLike,
424
+ bnToU32,
425
+ bnToU8,
217
426
  } from "@vercora-protocol/sdk";
218
427
 
219
- const marketPda = deriveMarket(program.programId, creatorPubkey, marketId);
220
- const vaultPda = deriveVault(program.programId, marketPda);
221
- const [mint0] = deriveAllOutcomeMints(program.programId, marketPda, 2);
428
+ const marketPda = deriveMarket(PROGRAM_ID, creatorPubkey, marketId);
429
+ const vaultPda = deriveVault(PROGRAM_ID, marketPda);
222
430
  ```
223
431
 
224
- ## TypeScript types
432
+ Offsets **`MARKET_ACCOUNT_CREATOR_MEMCMP_OFFSET`** and **`MARKET_ACCOUNT_PLATFORM_ID_MEMCMP_OFFSET`** are exported for custom `getProgramAccounts` filters.
433
+
434
+ ## `marketUi` helpers
435
+
436
+ ```ts
437
+ import {
438
+ getMarketLifecycleStatus,
439
+ formatTimeLeft,
440
+ listedMarketFeedTag,
441
+ } from "@vercora-protocol/sdk";
225
442
 
226
- All parameter and account types are exported directly:
443
+ const status = getMarketLifecycleStatus({
444
+ voided: false,
445
+ closed: false,
446
+ closeAt: ts,
447
+ });
448
+ ```
449
+
450
+ ## TypeScript types
227
451
 
228
452
  ```ts
229
453
  import type {
230
454
  CreateMarketParams,
455
+ ListedMarket,
456
+ GetUsersMarketsFilters,
231
457
  MarketAccount,
232
458
  ParimutuelStateAccount,
233
459
  ParimutuelOdds,
@@ -238,20 +464,18 @@ import type {
238
464
 
239
465
  ## AI agent integration
240
466
 
241
- If you are building agents or automation on top of this protocol:
242
-
243
- 1. **Bootstrap**: create a `Connection`, wallet, `Program<Vercora>`, then `PredictionMarketClient`.
244
- 2. **Read + route**: call `fetchMarket(marketPda)` and branch by `market.marketType`.
245
- 3. **Flow**:
246
- - Optional: `registerPlatform` → `createMarketCategory` for a scoped listing; then `createMarket` with matching `platformId` / `categoryId`.
247
- - Create: `createMarket` → `initializeMarketResolverSlots` → `initializeMarketMints` (or `initializeParimutuelState`)
248
- - Complete-set: `mintCompleteSet` → `redeemCompleteSet` → `redeemWinning`
249
- - Parimutuel: `parimutuelStake` `parimutuelWithdraw` `parimutuelClaim`
250
- - Resolution: `voteResolution` `finalizeResolution`
251
- 4. **Safety**: verify signer role, derive PDAs with helpers, handle missing ATAs, return tx signatures.
467
+ 1. **Bootstrap**: `Connection` `AnchorProvider` `Program<Vercora>` from `IDL` `PredictionMarketClient`.
468
+ 2. **Branch**: `fetchMarket` → `market.marketType` (`completeSet` vs `parimutuel`).
469
+ 3. **Flows**:
470
+ - Optional: `registerPlatform` `createMarketCategory` `createMarket` with ids.
471
+ - Create: `createMarketFull` **or** `createMarket` + resolver / outcome / mint **or** pari init.
472
+ - Complete-set: `mintCompleteSet` → `redeemCompleteSet` `redeemWinning`.
473
+ - Parimutuel: `parimutuelStake` → `parimutuelWithdraw` → `parimutuelClaim`.
474
+ - Resolution: `voteResolution` → `finalizeResolution`.
475
+ 4. **Discovery**: `fetchAllMarkets`, `getUsersMarkets`, `fetchMarketsByCreator`.
476
+ 5. **Safety**: verify signers, PDAs, ATAs, and RPC limits on `getProgramAccounts`.
252
477
 
253
478
  ## Links
254
479
 
255
- - [GitHub source](https://github.com/vercora/vercora-anchor)
256
480
  - [Vercora app](https://vercora.xyz)
257
481
  - [npm package](https://www.npmjs.com/package/@vercora-protocol/sdk)
package/dist/client.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as anchor from '@coral-xyz/anchor';
2
2
  import { Program, BN } from '@coral-xyz/anchor';
3
3
  import { Connection, PublicKey } from '@solana/web3.js';
4
4
  import type { Vercora } from './generated/vercora';
5
- import type { CreateMarketParams, InitializeParimutuelStateParams, ParimutuelStakeParams, ParimutuelWithdrawParams, ParimutuelClaimParams, InitializeConfigParams, UpdateConfigParams, InitializeMarketResolverSlotsParams, InitializeMarketOutcomeSlotsParams, MintCompleteSetParams, RedeemCompleteSetParams, VoteResolutionParams, FinalizeResolutionParams, RevokeResolutionVoteParams, RedeemWinningParams, CloseMarketEarlyParams, VoidMarketParams, AbandonMarketParams, GlobalConfigAccount, MarketAccount, ResolverAccount, UpsertUserProfileParams, VerifyUserProfileParams, UserProfileAccount, UpsertPlatformProfileParams, VerifyPlatformProfileParams, PlatformProfileAccount, ParimutuelStateAccount, ParimutuelPositionAccount, ParimutuelOdds, MarketCategoryAccount, CreateMarketCategoryParams, UpdateMarketCategoryParams, RegisterPlatformParams, UpdateParimutuelStateParams, ResolutionVoteAccount, ListedMarket } from './types';
5
+ import type { CreateMarketParams, InitializeParimutuelStateParams, ParimutuelStakeParams, ParimutuelWithdrawParams, ParimutuelClaimParams, InitializeConfigParams, UpdateConfigParams, InitializeMarketResolverSlotsParams, InitializeMarketOutcomeSlotsParams, MintCompleteSetParams, RedeemCompleteSetParams, VoteResolutionParams, FinalizeResolutionParams, RevokeResolutionVoteParams, RedeemWinningParams, CloseMarketEarlyParams, VoidMarketParams, AbandonMarketParams, GlobalConfigAccount, MarketAccount, ResolverAccount, UpsertUserProfileParams, VerifyUserProfileParams, UserProfileAccount, UpsertPlatformProfileParams, VerifyPlatformProfileParams, PlatformProfileAccount, ParimutuelStateAccount, ParimutuelPositionAccount, ParimutuelOdds, MarketCategoryAccount, CreateMarketCategoryParams, UpdateMarketCategoryParams, RegisterPlatformParams, UpdateParimutuelStateParams, ResolutionVoteAccount, ListedMarket, GetUsersMarketsFilters } from './types';
6
6
  export declare class PredictionMarketClient {
7
7
  readonly program: Program<Vercora>;
8
8
  readonly connection: Connection;
@@ -143,6 +143,10 @@ export declare class PredictionMarketClient {
143
143
  fetchGlobalConfig(): Promise<GlobalConfigAccount>;
144
144
  fetchMarket(market: PublicKey): Promise<MarketAccount>;
145
145
  private bnFieldToListedString;
146
+ /**
147
+ * Map raw `Market` account rows to {@link ListedMarket} (including outcome labels).
148
+ */
149
+ private buildListedMarketsFromRawRows;
146
150
  /**
147
151
  * List on-chain `Market` accounts, with outcome labels fetched per market.
148
152
  * Uses Anchor `program.account.market.all()`; when `platformId` is set, uses RPC `memcmp` on
@@ -163,6 +167,14 @@ export declare class PredictionMarketClient {
163
167
  pubkey: PublicKey;
164
168
  account: MarketAccount;
165
169
  }[]>;
170
+ /**
171
+ * Markets created by `creator`, as {@link ListedMarket} rows (with outcome labels).
172
+ *
173
+ * Uses RPC `memcmp` on `creator` and optionally on `platform_id` (when `filters.platformId` is set).
174
+ * When `filters.categoryId` is set, results are narrowed after decode (see {@link GetUsersMarketsFilters}).
175
+ * Sorted by `market_id` ascending.
176
+ */
177
+ getUsersMarkets(creator: PublicKey, filters?: GetUsersMarketsFilters): Promise<ListedMarket[]>;
166
178
  /**
167
179
  * Read `MarketOutcome.label` for each active outcome index (parallel fetches).
168
180
  * Missing accounts yield `Outcome {i+1}` placeholders.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}