@vercora-protocol/sdk 0.5.0 → 0.6.0
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/CHANGELOG.md +17 -0
- package/dist/client.d.ts +49 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +234 -15
- package/dist/client.js.map +1 -1
- package/dist/collateralProgram.d.ts +7 -0
- package/dist/collateralProgram.d.ts.map +1 -0
- package/dist/collateralProgram.js +14 -0
- package/dist/collateralProgram.js.map +1 -0
- package/dist/generated/vercora.d.ts +419 -2
- package/dist/generated/vercora.d.ts.map +1 -1
- package/dist/idl/vercora.json +419 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/pda.d.ts +17 -0
- package/dist/pda.d.ts.map +1 -1
- package/dist/pda.js +43 -1
- package/dist/pda.js.map +1 -1
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,23 @@ All notable changes to `@vercora-protocol/sdk` are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
## [0.6.0](https://github.com/vercora/vercora-anchor/compare/v0.5.2...v0.6.0) (2026-05-05)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **all:** improve market load ([d40fe8f](https://github.com/vercora/vercora-anchor/commit/d40fe8f6e4aeecdb2d034753c03e5ea9bd6768b3))
|
|
14
|
+
|
|
15
|
+
### [0.5.2](https://github.com/vercora/vercora-anchor/compare/v0.5.1...v0.5.2) (2026-05-05)
|
|
16
|
+
|
|
17
|
+
### [0.5.1](https://github.com/vercora/vercora-anchor/compare/v0.5.0...v0.5.1) (2026-05-05)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **all:** add platform creator allowlist ([39d5c7f](https://github.com/vercora/vercora-anchor/commit/39d5c7f2fdb6753523ed3a7207fc11fa7fb2715c))
|
|
23
|
+
* **web:** add platform creator allowlist ui ([f4a067f](https://github.com/vercora/vercora-anchor/commit/f4a067f18e7e8947b493e210bea278e85411e18f))
|
|
24
|
+
|
|
8
25
|
## [0.5.0](https://github.com/vercora/vercora-anchor/compare/v0.4.2...v0.5.0) (2026-05-01)
|
|
9
26
|
|
|
10
27
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import * as anchor from '@coral-xyz/anchor';
|
|
2
2
|
import { Program, BN } from '@coral-xyz/anchor';
|
|
3
|
-
import { Connection, PublicKey } from '@solana/web3.js';
|
|
3
|
+
import { Connection, PublicKey, type TransactionInstruction } 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, ClaimVoidedParimutuelSurplusParams, AbandonMarketParams, GlobalConfigAccount, MarketAccount, ResolverAccount, UpsertUserProfileParams, VerifyUserProfileParams, UserProfileAccount, UpsertPlatformProfileParams, VerifyPlatformProfileParams, PlatformProfileAccount, ParimutuelStateAccount, ParimutuelPositionAccount, ParimutuelOdds, MarketCategoryAccount, CreateMarketCategoryParams, UpdateMarketCategoryParams, RegisterPlatformParams, UpdateParimutuelStateParams, ResolutionVoteAccount, ResolutionStateAccount, ListedMarket, GetUsersMarketsFilters, VoidedParimutuelSurplusCandidate } from './types';
|
|
5
|
+
import type { CreateMarketParams, InitializeParimutuelStateParams, ParimutuelStakeParams, ParimutuelWithdrawParams, ParimutuelClaimParams, InitializeConfigParams, UpdateConfigParams, InitializeMarketResolverSlotsParams, InitializeMarketOutcomeSlotsParams, MintCompleteSetParams, RedeemCompleteSetParams, VoteResolutionParams, FinalizeResolutionParams, RevokeResolutionVoteParams, RedeemWinningParams, CloseMarketEarlyParams, VoidMarketParams, ClaimVoidedParimutuelSurplusParams, AbandonMarketParams, GlobalConfigAccount, MarketAccount, ResolverAccount, UpsertUserProfileParams, VerifyUserProfileParams, UserProfileAccount, UpsertPlatformProfileParams, VerifyPlatformProfileParams, PlatformProfileAccount, ParimutuelStateAccount, ParimutuelPositionAccount, ParimutuelOdds, MarketCategoryAccount, CreateMarketCategoryParams, UpdateMarketCategoryParams, RegisterPlatformParams, UpdatePlatformCreatorPolicyParams, LinkPlatformCreatorParams, UnlinkPlatformCreatorParams, UpdateParimutuelStateParams, ResolutionVoteAccount, ResolutionStateAccount, ListedMarket, GetUsersMarketsFilters, VoidedParimutuelSurplusCandidate, ParimutuelStakePrefetched, ParimutuelStakeSendOptions } from './types';
|
|
6
6
|
export declare class PredictionMarketClient {
|
|
7
7
|
readonly program: Program<Vercora>;
|
|
8
8
|
readonly connection: Connection;
|
|
9
9
|
readonly globalConfig: PublicKey;
|
|
10
|
+
/** Coalesce concurrent reads and avoid identical back-to-back RPCs (rate-limit friendly). */
|
|
11
|
+
private globalConfigCache;
|
|
12
|
+
private globalConfigInflight;
|
|
13
|
+
/**
|
|
14
|
+
* Global config changes only on admin transactions (very rare). 5-minute TTL is safe and
|
|
15
|
+
* eliminates almost all duplicate fetches across prefetch → confirm-stake flows.
|
|
16
|
+
*/
|
|
17
|
+
private static readonly FETCH_GLOBAL_CONFIG_TTL_MS;
|
|
18
|
+
private marketFetchCache;
|
|
19
|
+
private marketFetchInflight;
|
|
20
|
+
/**
|
|
21
|
+
* Market account changes on every stake / resolution, but reading slightly stale data for
|
|
22
|
+
* display is fine. Write paths always receive fresh data via `bypassCache` after mutations.
|
|
23
|
+
* 2 minutes balances freshness with RPC load.
|
|
24
|
+
*/
|
|
25
|
+
private static readonly FETCH_MARKET_TTL_MS;
|
|
26
|
+
/** Mint → normalized collateral program (immutable on-chain); coalesce duplicates. */
|
|
27
|
+
private mintProgramDedupCache;
|
|
28
|
+
private mintProgramInflight;
|
|
10
29
|
constructor(program: Program<Vercora>);
|
|
11
30
|
private get walletKey();
|
|
12
31
|
/**
|
|
@@ -19,7 +38,10 @@ export declare class PredictionMarketClient {
|
|
|
19
38
|
* Chunks run **sequentially** so we do not burst the RPC (reduces 429s on free tiers).
|
|
20
39
|
*/
|
|
21
40
|
private getMultipleAccountsInfoBatched;
|
|
41
|
+
private static rpcTrace;
|
|
22
42
|
private collateralTokenProgramForMint;
|
|
43
|
+
/** Used by `parimutuelStake` / `parimutuelStakeInstruction` to avoid redundant reads when prefetch is supplied. */
|
|
44
|
+
private loadParimutuelStakeDeps;
|
|
23
45
|
/** Platform treasury wallet ATA for `collateralMint`, created by payer if missing (e.g. before pari init). */
|
|
24
46
|
private treasuryCollateralAtaCreateIfMissingInstructions;
|
|
25
47
|
/** Create collateral ATA for `owner` if it does not exist yet (bundled with `createMarket`). */
|
|
@@ -55,6 +77,12 @@ export declare class PredictionMarketClient {
|
|
|
55
77
|
platformId: BN;
|
|
56
78
|
sig: string;
|
|
57
79
|
}>;
|
|
80
|
+
/** Set per-platform creator allowlist cap (`0` = open). Signer: global config authority or platform `profile_authority`. */
|
|
81
|
+
updatePlatformCreatorPolicy(params: UpdatePlatformCreatorPolicyParams, opts?: anchor.web3.ConfirmOptions): Promise<string>;
|
|
82
|
+
/** Link a wallet so it may `create_market` when the platform cap is `> 0`. Signer: global config authority or platform `profile_authority`. */
|
|
83
|
+
linkPlatformCreator(params: LinkPlatformCreatorParams, opts?: anchor.web3.ConfirmOptions): Promise<string>;
|
|
84
|
+
/** Remove a linked creator wallet. Signer: global config authority or platform `profile_authority`. */
|
|
85
|
+
unlinkPlatformCreator(params: UnlinkPlatformCreatorParams, opts?: anchor.web3.ConfirmOptions): Promise<string>;
|
|
58
86
|
/**
|
|
59
87
|
* Step 1 — Create Market + Vault.
|
|
60
88
|
* Returns the market PDA and the transaction signature.
|
|
@@ -99,7 +127,14 @@ export declare class PredictionMarketClient {
|
|
|
99
127
|
* To change only one knob, pass current values from `fetchMarket` / `fetchParimutuelState` for the rest.
|
|
100
128
|
*/
|
|
101
129
|
updateParimutuelState(marketPda: PublicKey, params: UpdateParimutuelStateParams, opts?: anchor.web3.ConfirmOptions): Promise<string>;
|
|
102
|
-
parimutuelStake(marketPda: PublicKey, params: ParimutuelStakeParams, opts?:
|
|
130
|
+
parimutuelStake(marketPda: PublicKey, params: ParimutuelStakeParams, opts?: ParimutuelStakeSendOptions): Promise<string>;
|
|
131
|
+
/**
|
|
132
|
+
* Build the `parimutuelStake` instruction for composing with other ixs (e.g. SOL rent transfers).
|
|
133
|
+
* Pass `prefetched` when chain data was already loaded to avoid redundant RPC reads.
|
|
134
|
+
*/
|
|
135
|
+
parimutuelStakeInstruction(marketPda: PublicKey, params: ParimutuelStakeParams, opts?: {
|
|
136
|
+
prefetched?: ParimutuelStakePrefetched;
|
|
137
|
+
}): Promise<TransactionInstruction>;
|
|
103
138
|
/**
|
|
104
139
|
* Reduce stake before `close_at` / resolution (early exit), **or** after `voidMarket` on a pari market.
|
|
105
140
|
*
|
|
@@ -202,8 +237,17 @@ export declare class PredictionMarketClient {
|
|
|
202
237
|
* On success the market and vault accounts are closed and lamports returned to creator.
|
|
203
238
|
*/
|
|
204
239
|
abandonMarket(marketPda: PublicKey, params: AbandonMarketParams, opts?: anchor.web3.ConfirmOptions): Promise<string>;
|
|
205
|
-
|
|
206
|
-
|
|
240
|
+
/**
|
|
241
|
+
* Read global config once per TTL or coalesce concurrent callers.
|
|
242
|
+
* Pass `{ bypassCache: true }` after config-changing txs if you must observe the latest slot immediately.
|
|
243
|
+
*/
|
|
244
|
+
fetchGlobalConfig(opts?: {
|
|
245
|
+
bypassCache?: boolean;
|
|
246
|
+
}): Promise<GlobalConfigAccount>;
|
|
247
|
+
/** Same TTL + concurrent coalescing pattern as {@link fetchGlobalConfig}. */
|
|
248
|
+
fetchMarket(market: PublicKey, opts?: {
|
|
249
|
+
bypassCache?: boolean;
|
|
250
|
+
}): Promise<MarketAccount>;
|
|
207
251
|
private bnFieldToListedString;
|
|
208
252
|
/**
|
|
209
253
|
* Map raw `Market` account rows to {@link ListedMarket} (including outcome labels).
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/client.js
CHANGED
|
@@ -41,6 +41,7 @@ const spl_token_1 = require("@solana/spl-token");
|
|
|
41
41
|
const pda_1 = require("./pda");
|
|
42
42
|
const resolverDecode_1 = require("./resolverDecode");
|
|
43
43
|
const types_1 = require("./types");
|
|
44
|
+
const collateralProgram_1 = require("./collateralProgram");
|
|
44
45
|
/**
|
|
45
46
|
* Some RPC plans (e.g. QuickNode Discover) reject `getMultipleAccounts` with more than 5 keys.
|
|
46
47
|
* Chunk so batched reads stay compatible.
|
|
@@ -106,6 +107,14 @@ function readParimutuelActiveStakeU64Le(data) {
|
|
|
106
107
|
}
|
|
107
108
|
class PredictionMarketClient {
|
|
108
109
|
constructor(program) {
|
|
110
|
+
/** Coalesce concurrent reads and avoid identical back-to-back RPCs (rate-limit friendly). */
|
|
111
|
+
this.globalConfigCache = null;
|
|
112
|
+
this.globalConfigInflight = null;
|
|
113
|
+
this.marketFetchCache = new Map();
|
|
114
|
+
this.marketFetchInflight = new Map();
|
|
115
|
+
/** Mint → normalized collateral program (immutable on-chain); coalesce duplicates. */
|
|
116
|
+
this.mintProgramDedupCache = new Map();
|
|
117
|
+
this.mintProgramInflight = new Map();
|
|
109
118
|
this.program = program;
|
|
110
119
|
this.connection = program.provider.connection;
|
|
111
120
|
this.globalConfig = (0, pda_1.deriveGlobalConfig)(program.programId);
|
|
@@ -157,13 +166,51 @@ class PredictionMarketClient {
|
|
|
157
166
|
}
|
|
158
167
|
return out;
|
|
159
168
|
}
|
|
169
|
+
static rpcTrace(depth = 4) {
|
|
170
|
+
return (new Error().stack ?? '').split('\n').slice(2, 2 + depth).map((l) => l.trim()).join(' → ');
|
|
171
|
+
}
|
|
160
172
|
async collateralTokenProgramForMint(mint) {
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
173
|
+
const k = mint.toBase58();
|
|
174
|
+
const memo = this.mintProgramDedupCache.get(k);
|
|
175
|
+
if (memo) {
|
|
176
|
+
console.debug('[vercora-rpc] sdk.mintProgram cache-hit mint=%s', k.slice(0, 8));
|
|
177
|
+
return memo;
|
|
178
|
+
}
|
|
179
|
+
let flight = this.mintProgramInflight.get(k);
|
|
180
|
+
if (!flight) {
|
|
181
|
+
console.debug('[vercora-rpc] sdk.mintProgram RPC-fire mint=%s CALLER: %s', k.slice(0, 8), PredictionMarketClient.rpcTrace());
|
|
182
|
+
flight = (async () => {
|
|
183
|
+
const info = await this.connection.getAccountInfo(mint);
|
|
184
|
+
if (!info)
|
|
185
|
+
throw new Error(`Mint not found: ${mint.toBase58()}`);
|
|
186
|
+
const norm = (0, collateralProgram_1.normalizeCollateralTokenProgram)(info.owner);
|
|
187
|
+
this.mintProgramDedupCache.set(k, norm);
|
|
188
|
+
return norm;
|
|
189
|
+
})().finally(() => {
|
|
190
|
+
this.mintProgramInflight.delete(k);
|
|
191
|
+
});
|
|
192
|
+
this.mintProgramInflight.set(k, flight);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
console.debug('[vercora-rpc] sdk.mintProgram coalesced-inflight mint=%s', k.slice(0, 8));
|
|
196
|
+
}
|
|
197
|
+
return flight;
|
|
198
|
+
}
|
|
199
|
+
/** Used by `parimutuelStake` / `parimutuelStakeInstruction` to avoid redundant reads when prefetch is supplied. */
|
|
200
|
+
async loadParimutuelStakeDeps(marketPda, prefetched) {
|
|
201
|
+
if (prefetched) {
|
|
202
|
+
return {
|
|
203
|
+
market: prefetched.market,
|
|
204
|
+
globalConfig: prefetched.globalConfig,
|
|
205
|
+
collateralTokenProgram: prefetched.collateralTokenProgram,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
const [market, globalConfig] = await Promise.all([
|
|
209
|
+
this.fetchMarket(marketPda),
|
|
210
|
+
this.fetchGlobalConfig(),
|
|
211
|
+
]);
|
|
212
|
+
const collateralTokenProgram = await this.collateralTokenProgramForMint(market.collateralMint);
|
|
213
|
+
return { market, globalConfig, collateralTokenProgram };
|
|
167
214
|
}
|
|
168
215
|
/** Platform treasury wallet ATA for `collateralMint`, created by payer if missing (e.g. before pari init). */
|
|
169
216
|
async treasuryCollateralAtaCreateIfMissingInstructions(collateralMint) {
|
|
@@ -300,6 +347,49 @@ class PredictionMarketClient {
|
|
|
300
347
|
.rpc(opts ?? { skipPreflight: true });
|
|
301
348
|
return { platformId: nextPid, sig };
|
|
302
349
|
}
|
|
350
|
+
/** Set per-platform creator allowlist cap (`0` = open). Signer: global config authority or platform `profile_authority`. */
|
|
351
|
+
async updatePlatformCreatorPolicy(params, opts) {
|
|
352
|
+
const pid = (0, pda_1.bnLike)(params.platformId);
|
|
353
|
+
return this.program.methods
|
|
354
|
+
.updatePlatformCreatorPolicy((0, pda_1.bnToU32)(pid), params.maxAllowedCreators)
|
|
355
|
+
.accounts({
|
|
356
|
+
globalConfig: this.globalConfig,
|
|
357
|
+
platformRegistry: (0, pda_1.derivePlatformRegistry)(this.program.programId, pid),
|
|
358
|
+
authority: this.walletKey,
|
|
359
|
+
})
|
|
360
|
+
.rpc(opts ?? { skipPreflight: true });
|
|
361
|
+
}
|
|
362
|
+
/** Link a wallet so it may `create_market` when the platform cap is `> 0`. Signer: global config authority or platform `profile_authority`. */
|
|
363
|
+
async linkPlatformCreator(params, opts) {
|
|
364
|
+
const pid = (0, pda_1.bnLike)(params.platformId);
|
|
365
|
+
const platformRegistry = (0, pda_1.derivePlatformRegistry)(this.program.programId, pid);
|
|
366
|
+
const platformCreator = (0, pda_1.derivePlatformCreator)(this.program.programId, pid, params.wallet);
|
|
367
|
+
return this.program.methods
|
|
368
|
+
.linkPlatformCreator((0, pda_1.bnToU32)(pid), params.wallet)
|
|
369
|
+
.accounts({
|
|
370
|
+
globalConfig: this.globalConfig,
|
|
371
|
+
platformRegistry,
|
|
372
|
+
platformCreator,
|
|
373
|
+
authority: this.walletKey,
|
|
374
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
375
|
+
})
|
|
376
|
+
.rpc(opts ?? { skipPreflight: true });
|
|
377
|
+
}
|
|
378
|
+
/** Remove a linked creator wallet. Signer: global config authority or platform `profile_authority`. */
|
|
379
|
+
async unlinkPlatformCreator(params, opts) {
|
|
380
|
+
const pid = (0, pda_1.bnLike)(params.platformId);
|
|
381
|
+
const platformRegistry = (0, pda_1.derivePlatformRegistry)(this.program.programId, pid);
|
|
382
|
+
const platformCreator = (0, pda_1.derivePlatformCreator)(this.program.programId, pid, params.wallet);
|
|
383
|
+
return this.program.methods
|
|
384
|
+
.unlinkPlatformCreator((0, pda_1.bnToU32)(pid))
|
|
385
|
+
.accounts({
|
|
386
|
+
globalConfig: this.globalConfig,
|
|
387
|
+
platformRegistry,
|
|
388
|
+
platformCreator,
|
|
389
|
+
authority: this.walletKey,
|
|
390
|
+
})
|
|
391
|
+
.rpc(opts ?? { skipPreflight: true });
|
|
392
|
+
}
|
|
303
393
|
// ─── Market creation (3 steps) ──────────────────────────────────────────────
|
|
304
394
|
/**
|
|
305
395
|
* Step 1 — Create Market + Vault.
|
|
@@ -333,6 +423,25 @@ class PredictionMarketClient {
|
|
|
333
423
|
const marketCategoryPk = !categoryIdBn.isZero()
|
|
334
424
|
? (0, pda_1.deriveMarketCategory)(this.program.programId, platformIdBn, categoryIdBn)
|
|
335
425
|
: null;
|
|
426
|
+
const conn = this.program.provider.connection;
|
|
427
|
+
const regInfo = await conn.getAccountInfo(platformRegistryPk);
|
|
428
|
+
if (!regInfo?.data) {
|
|
429
|
+
throw new Error('Platform registry not found for this platformId');
|
|
430
|
+
}
|
|
431
|
+
const maxCreators = (0, pda_1.maxAllowedCreatorsFromRegistryAccountData)(regInfo.data);
|
|
432
|
+
const linkedCreators = (0, pda_1.linkedCreatorCountFromRegistryAccountData)(regInfo.data);
|
|
433
|
+
let platformCreatorPk = null;
|
|
434
|
+
if (maxCreators > 0) {
|
|
435
|
+
if (linkedCreators === 0) {
|
|
436
|
+
throw new Error('No creators linked for this platform yet (on-chain: PlatformHasNoLinkedCreators)');
|
|
437
|
+
}
|
|
438
|
+
const creatorPda = (0, pda_1.derivePlatformCreator)(this.program.programId, platformIdBn, creator);
|
|
439
|
+
const pcInfo = await conn.getAccountInfo(creatorPda);
|
|
440
|
+
if (!pcInfo?.data || pcInfo.data.length < 8) {
|
|
441
|
+
throw new Error('Creator wallet is not allowlisted for this platform (on-chain: CreatorNotAllowlisted)');
|
|
442
|
+
}
|
|
443
|
+
platformCreatorPk = creatorPda;
|
|
444
|
+
}
|
|
336
445
|
const maxOi = params.maxOutcomeInvestment ?? new anchor_1.BN(0);
|
|
337
446
|
const maxWi = params.maxWalletOutcomeInvestment ?? new anchor_1.BN(0);
|
|
338
447
|
if (params.marketType === 'parimutuel' &&
|
|
@@ -371,6 +480,7 @@ class PredictionMarketClient {
|
|
|
371
480
|
platformRegistry: platformRegistryPk,
|
|
372
481
|
platformProfile: platformProfilePk,
|
|
373
482
|
marketCategory: marketCategoryPk,
|
|
483
|
+
platformCreator: platformCreatorPk,
|
|
374
484
|
collateralTokenProgram,
|
|
375
485
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
376
486
|
systemProgram: web3_js_1.SystemProgram.programId,
|
|
@@ -575,15 +685,16 @@ class PredictionMarketClient {
|
|
|
575
685
|
.rpc(opts ?? { skipPreflight: true });
|
|
576
686
|
}
|
|
577
687
|
async parimutuelStake(marketPda, params, opts) {
|
|
688
|
+
const raw = opts ?? {};
|
|
689
|
+
const { prefetched, ...confirmOpts } = raw;
|
|
690
|
+
const { market, globalConfig, collateralTokenProgram } = await this.loadParimutuelStakeDeps(marketPda, prefetched);
|
|
578
691
|
const parimutuelState = (0, pda_1.deriveParimutuelState)(this.program.programId, marketPda);
|
|
579
|
-
const market = await this.fetchMarket(marketPda);
|
|
580
|
-
const globalConfig = await this.fetchGlobalConfig();
|
|
581
|
-
const collateralTokenProgram = await this.collateralTokenProgramForMint(market.collateralMint);
|
|
582
692
|
const position = (0, pda_1.deriveParimutuelPosition)(this.program.programId, marketPda, this.walletKey, params.outcomeIndex);
|
|
583
693
|
const vaultPda = (0, pda_1.deriveVault)(this.program.programId, marketPda);
|
|
584
694
|
const allowedMint = (0, pda_1.deriveAllowedMint)(this.program.programId, market.collateralMint);
|
|
585
695
|
const userCollateral = (0, spl_token_1.getAssociatedTokenAddressSync)(market.collateralMint, this.walletKey, false, collateralTokenProgram, spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID);
|
|
586
696
|
const platformTreasuryAta = (0, spl_token_1.getAssociatedTokenAddressSync)(market.collateralMint, globalConfig.platformTreasury, false, collateralTokenProgram, spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID);
|
|
697
|
+
const rpcOpts = Object.keys(confirmOpts).length > 0 ? confirmOpts : { skipPreflight: true };
|
|
587
698
|
return this.program.methods
|
|
588
699
|
.parimutuelStake({
|
|
589
700
|
marketId: params.marketId,
|
|
@@ -607,7 +718,44 @@ class PredictionMarketClient {
|
|
|
607
718
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
608
719
|
systemProgram: web3_js_1.SystemProgram.programId,
|
|
609
720
|
})
|
|
610
|
-
.rpc(
|
|
721
|
+
.rpc(rpcOpts);
|
|
722
|
+
}
|
|
723
|
+
/**
|
|
724
|
+
* Build the `parimutuelStake` instruction for composing with other ixs (e.g. SOL rent transfers).
|
|
725
|
+
* Pass `prefetched` when chain data was already loaded to avoid redundant RPC reads.
|
|
726
|
+
*/
|
|
727
|
+
async parimutuelStakeInstruction(marketPda, params, opts) {
|
|
728
|
+
const { market, globalConfig, collateralTokenProgram } = await this.loadParimutuelStakeDeps(marketPda, opts?.prefetched);
|
|
729
|
+
const parimutuelState = (0, pda_1.deriveParimutuelState)(this.program.programId, marketPda);
|
|
730
|
+
const position = (0, pda_1.deriveParimutuelPosition)(this.program.programId, marketPda, this.walletKey, params.outcomeIndex);
|
|
731
|
+
const vaultPda = (0, pda_1.deriveVault)(this.program.programId, marketPda);
|
|
732
|
+
const allowedMint = (0, pda_1.deriveAllowedMint)(this.program.programId, market.collateralMint);
|
|
733
|
+
const userCollateral = (0, spl_token_1.getAssociatedTokenAddressSync)(market.collateralMint, this.walletKey, false, collateralTokenProgram, spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID);
|
|
734
|
+
const platformTreasuryAta = (0, spl_token_1.getAssociatedTokenAddressSync)(market.collateralMint, globalConfig.platformTreasury, false, collateralTokenProgram, spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID);
|
|
735
|
+
return this.program.methods
|
|
736
|
+
.parimutuelStake({
|
|
737
|
+
marketId: params.marketId,
|
|
738
|
+
outcomeIndex: params.outcomeIndex,
|
|
739
|
+
amount: params.amount,
|
|
740
|
+
})
|
|
741
|
+
.accounts({
|
|
742
|
+
user: this.walletKey,
|
|
743
|
+
market: marketPda,
|
|
744
|
+
parimutuelState,
|
|
745
|
+
position,
|
|
746
|
+
vault: vaultPda,
|
|
747
|
+
collateralMint: market.collateralMint,
|
|
748
|
+
userCollateralAccount: userCollateral,
|
|
749
|
+
creatorFeeAccount: market.creatorFeeAccount,
|
|
750
|
+
globalConfig: this.globalConfig,
|
|
751
|
+
platformTreasuryWallet: globalConfig.platformTreasury,
|
|
752
|
+
platformTreasuryAta,
|
|
753
|
+
allowedMint,
|
|
754
|
+
collateralTokenProgram,
|
|
755
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
756
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
757
|
+
})
|
|
758
|
+
.instruction();
|
|
611
759
|
}
|
|
612
760
|
/**
|
|
613
761
|
* Reduce stake before `close_at` / resolution (early exit), **or** after `voidMarket` on a pari market.
|
|
@@ -1115,11 +1263,71 @@ class PredictionMarketClient {
|
|
|
1115
1263
|
.rpc(opts ?? { skipPreflight: true });
|
|
1116
1264
|
}
|
|
1117
1265
|
// ─── State readers ───────────────────────────────────────────────────────────
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1266
|
+
/**
|
|
1267
|
+
* Read global config once per TTL or coalesce concurrent callers.
|
|
1268
|
+
* Pass `{ bypassCache: true }` after config-changing txs if you must observe the latest slot immediately.
|
|
1269
|
+
*/
|
|
1270
|
+
async fetchGlobalConfig(opts) {
|
|
1271
|
+
if (opts?.bypassCache) {
|
|
1272
|
+
console.debug('[vercora-rpc] fetchGlobalConfig bypass-cache');
|
|
1273
|
+
const data = (await this.program.account.globalConfig.fetch(this.globalConfig));
|
|
1274
|
+
this.globalConfigCache = { fetchedAt: Date.now(), data };
|
|
1275
|
+
return data;
|
|
1276
|
+
}
|
|
1277
|
+
const ttl = PredictionMarketClient.FETCH_GLOBAL_CONFIG_TTL_MS;
|
|
1278
|
+
const c = this.globalConfigCache;
|
|
1279
|
+
if (c && Date.now() - c.fetchedAt < ttl) {
|
|
1280
|
+
console.debug('[vercora-rpc] fetchGlobalConfig cache-hit age=%dms', Date.now() - c.fetchedAt);
|
|
1281
|
+
return c.data;
|
|
1282
|
+
}
|
|
1283
|
+
if (this.globalConfigInflight) {
|
|
1284
|
+
console.debug('[vercora-rpc] fetchGlobalConfig coalesced-inflight');
|
|
1285
|
+
return this.globalConfigInflight;
|
|
1286
|
+
}
|
|
1287
|
+
console.debug('[vercora-rpc] fetchGlobalConfig RPC-fire CALLER: %s', PredictionMarketClient.rpcTrace());
|
|
1288
|
+
const p = this.program.account.globalConfig.fetch(this.globalConfig)
|
|
1289
|
+
.then((data) => {
|
|
1290
|
+
this.globalConfigCache = { fetchedAt: Date.now(), data };
|
|
1291
|
+
return data;
|
|
1292
|
+
})
|
|
1293
|
+
.finally(() => {
|
|
1294
|
+
this.globalConfigInflight = null;
|
|
1295
|
+
});
|
|
1296
|
+
this.globalConfigInflight = p;
|
|
1297
|
+
return p;
|
|
1298
|
+
}
|
|
1299
|
+
/** Same TTL + concurrent coalescing pattern as {@link fetchGlobalConfig}. */
|
|
1300
|
+
async fetchMarket(market, opts) {
|
|
1301
|
+
const key = market.toBase58();
|
|
1302
|
+
const ttl = PredictionMarketClient.FETCH_MARKET_TTL_MS;
|
|
1303
|
+
if (opts?.bypassCache) {
|
|
1304
|
+
console.debug('[vercora-rpc] fetchMarket bypass-cache key=%s', key);
|
|
1305
|
+
const data = (await this.program.account.market.fetch(market));
|
|
1306
|
+
this.marketFetchCache.set(key, { fetchedAt: Date.now(), data });
|
|
1307
|
+
return data;
|
|
1308
|
+
}
|
|
1309
|
+
const row = this.marketFetchCache.get(key);
|
|
1310
|
+
if (row && Date.now() - row.fetchedAt < ttl) {
|
|
1311
|
+
console.debug('[vercora-rpc] fetchMarket cache-hit key=%s age=%dms', key, Date.now() - row.fetchedAt);
|
|
1312
|
+
return row.data;
|
|
1313
|
+
}
|
|
1314
|
+
let inflight = this.marketFetchInflight.get(key);
|
|
1315
|
+
if (!inflight) {
|
|
1316
|
+
console.debug('[vercora-rpc] fetchMarket RPC-fire key=%s CALLER: %s', key, PredictionMarketClient.rpcTrace());
|
|
1317
|
+
inflight = this.program.account.market.fetch(market)
|
|
1318
|
+
.then((data) => {
|
|
1319
|
+
this.marketFetchCache.set(key, { fetchedAt: Date.now(), data });
|
|
1320
|
+
return data;
|
|
1321
|
+
})
|
|
1322
|
+
.finally(() => {
|
|
1323
|
+
this.marketFetchInflight.delete(key);
|
|
1324
|
+
});
|
|
1325
|
+
this.marketFetchInflight.set(key, inflight);
|
|
1326
|
+
}
|
|
1327
|
+
else {
|
|
1328
|
+
console.debug('[vercora-rpc] fetchMarket coalesced-inflight key=%s', key);
|
|
1329
|
+
}
|
|
1330
|
+
return inflight;
|
|
1123
1331
|
}
|
|
1124
1332
|
bnFieldToListedString(v) {
|
|
1125
1333
|
if (v == null)
|
|
@@ -1878,4 +2086,15 @@ class PredictionMarketClient {
|
|
|
1878
2086
|
}
|
|
1879
2087
|
}
|
|
1880
2088
|
exports.PredictionMarketClient = PredictionMarketClient;
|
|
2089
|
+
/**
|
|
2090
|
+
* Global config changes only on admin transactions (very rare). 5-minute TTL is safe and
|
|
2091
|
+
* eliminates almost all duplicate fetches across prefetch → confirm-stake flows.
|
|
2092
|
+
*/
|
|
2093
|
+
PredictionMarketClient.FETCH_GLOBAL_CONFIG_TTL_MS = 5 * 60000;
|
|
2094
|
+
/**
|
|
2095
|
+
* Market account changes on every stake / resolution, but reading slightly stale data for
|
|
2096
|
+
* display is fine. Write paths always receive fresh data via `bypassCache` after mutations.
|
|
2097
|
+
* 2 minutes balances freshness with RPC load.
|
|
2098
|
+
*/
|
|
2099
|
+
PredictionMarketClient.FETCH_MARKET_TTL_MS = 2 * 60000;
|
|
1881
2100
|
//# sourceMappingURL=client.js.map
|