@emblemvault/primitives-stake 0.1.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/dist/codec.js ADDED
@@ -0,0 +1,565 @@
1
+ /**
2
+ * Borsh codec for StakePool / StakeVault / RewardDistribution accounts.
3
+ *
4
+ * Layouts match the Rust structs in `programs/stake/src/state.rs` (Phase 3
5
+ * task). Locked field orderings; variant tags locked too — changing them
6
+ * invalidates every existing on-chain account.
7
+ *
8
+ * StakePoolAccount field order (LOCKED):
9
+ *
10
+ * bump: u8
11
+ * authority: Pubkey (32)
12
+ * pool_id: u32 LE
13
+ * asset: Pubkey (32)
14
+ * host_url: Option<String> (max 128)
15
+ * lock_options: Vec<LockTier> (u32 LE length + repeated entries)
16
+ * LockTier:
17
+ * days: u32 LE
18
+ * multiplier: u32 LE (×1_000 fixed-point: multiplier 1.0 = 1000, 1.75 = 1750)
19
+ * min_stake: u64 LE
20
+ * max_stake_per_vault: Option<u64>
21
+ * early_exit_penalty_bps: u16 LE
22
+ * penalty_destination: PenaltyDestination (1-byte tag + variant body)
23
+ * - tag=0 redistribute: empty body
24
+ * - tag=1 burn: empty body
25
+ * - tag=2 treasury-pda: String (max 64) body — the treasury id
26
+ * reward_sources: Vec<RewardSource>
27
+ * RewardSource:
28
+ * tag: u8 (0 = distribution-vault, 1 = split-recipient)
29
+ * body: String (max 64) — the id (vault id or splits config id)
30
+ * reward_cadence: u8 (0 hourly, 1 daily, 2 weekly)
31
+ * reward_formula: u8 (0 linear-v1, 1 sammy-curve-v1)
32
+ * total_staked: u64 LE
33
+ * total_weighted_stake: u64 LE
34
+ * current_period: u32 LE
35
+ * version: u32 LE
36
+ * created_at: i64 LE
37
+ *
38
+ * StakeVaultAccount (fixed-size — easier):
39
+ * bump: u8
40
+ * pool_pda: Pubkey
41
+ * owner: Pubkey
42
+ * staked_amount: u64 LE
43
+ * lock_tier_idx: u8
44
+ * lock_ends_at: i64 LE
45
+ * accrued_rewards: u64 LE
46
+ * last_claim_period: u32 LE
47
+ * last_claim_at: i64 LE
48
+ * staked_at: i64 LE
49
+ *
50
+ * RewardDistributionAccount (fixed-size):
51
+ * bump: u8
52
+ * pool_pda: Pubkey
53
+ * period_id: u32 LE
54
+ * total_distributed: u64 LE
55
+ * weighted_stake_at_snapshot: u64 LE
56
+ * distributed_at: i64 LE
57
+ * reward_mint: Pubkey
58
+ */
59
+ import { PublicKey } from '@solana/web3.js';
60
+ // =============================================================================
61
+ // Discriminators (locked from sha256("account:<Name>").subarray(0, 8))
62
+ // =============================================================================
63
+ export const STAKE_POOL_DISCRIMINATOR = Buffer.from([
64
+ 0x79, 0x22, 0xce, 0x15, 0x4f, 0x7f, 0xff, 0x1c,
65
+ ]);
66
+ export const STAKE_VAULT_DISCRIMINATOR = Buffer.from([
67
+ 0xc0, 0x70, 0x41, 0x7d, 0x81, 0x97, 0xad, 0xe2,
68
+ ]);
69
+ export const REWARD_DIST_DISCRIMINATOR = Buffer.from([
70
+ 0xf1, 0xfe, 0x40, 0xba, 0xd7, 0x43, 0x19, 0xf7,
71
+ ]);
72
+ /** Multiplier scale: stored as u32, displayed as multiplier × 1_000. */
73
+ export const MULTIPLIER_SCALE = 1000;
74
+ /** Caps shared with the on-chain program. */
75
+ export const MAX_LOCK_OPTIONS = 10;
76
+ export const MAX_REWARD_SOURCES = 8;
77
+ export const MAX_HOST_URL_LEN = 128;
78
+ export const MAX_TREASURY_ID_LEN = 64;
79
+ export const MAX_REWARD_SOURCE_ID_LEN = 64;
80
+ // =============================================================================
81
+ // Tag bytes — locked
82
+ // =============================================================================
83
+ export const PENALTY_TAG_REDISTRIBUTE = 0;
84
+ export const PENALTY_TAG_BURN = 1;
85
+ export const PENALTY_TAG_TREASURY_PDA = 2;
86
+ export const REWARD_SOURCE_TAG_DIST_VAULT = 0;
87
+ export const REWARD_SOURCE_TAG_SPLIT_RECIPIENT = 1;
88
+ export const REWARD_CADENCE_HOURLY = 0;
89
+ export const REWARD_CADENCE_DAILY = 1;
90
+ export const REWARD_CADENCE_WEEKLY = 2;
91
+ export const REWARD_FORMULA_LINEAR_V1 = 0;
92
+ export const REWARD_FORMULA_SAMMY_V1 = 1;
93
+ export class StakeCodecError extends Error {
94
+ constructor(message) {
95
+ super(`[StakeCodec] ${message}`);
96
+ this.name = 'StakeCodecError';
97
+ }
98
+ }
99
+ // =============================================================================
100
+ // StakePoolAccount
101
+ // =============================================================================
102
+ export function decodeStakePoolAccount(data) {
103
+ const buf = data instanceof Buffer ? data : Buffer.from(data);
104
+ if (buf.length < 8) {
105
+ throw new StakeCodecError(`buffer too small (${buf.length} bytes); need at least 8 for discriminator`);
106
+ }
107
+ const disc = buf.subarray(0, 8);
108
+ if (!disc.equals(STAKE_POOL_DISCRIMINATOR)) {
109
+ throw new StakeCodecError(`StakePool discriminator mismatch: expected ${STAKE_POOL_DISCRIMINATOR.toString('hex')}, got ${disc.toString('hex')}`);
110
+ }
111
+ const r = new BorshReader(buf, 8);
112
+ const bump = r.readU8();
113
+ void bump;
114
+ const authority = r.readPubkey();
115
+ const poolId = r.readU32LE();
116
+ const asset = r.readPubkey();
117
+ const hostUrl = r.readOptionalBorshString(MAX_HOST_URL_LEN);
118
+ const lockOptions = r.readVecLockTier();
119
+ const minStake = r.readU64LE();
120
+ const maxStakePerVault = r.readOptionalU64();
121
+ const earlyExitPenaltyBps = r.readU16LE();
122
+ const penaltyDestination = r.readPenaltyDestination();
123
+ const rewardSources = r.readVecRewardSource();
124
+ const rewardCadence = decodeRewardCadence(r.readU8());
125
+ const rewardFormula = decodeRewardFormula(r.readU8());
126
+ const totalStaked = r.readU64LE();
127
+ const totalWeightedStake = r.readU64LE();
128
+ const currentPeriod = r.readU32LE();
129
+ const version = r.readU32LE();
130
+ const createdAt = r.readI64LE();
131
+ return {
132
+ authority,
133
+ poolId,
134
+ asset,
135
+ hostUrl,
136
+ lockOptions,
137
+ minStake,
138
+ maxStakePerVault,
139
+ earlyExitPenaltyBps,
140
+ penaltyDestination,
141
+ rewardSources,
142
+ rewardCadence,
143
+ rewardFormula,
144
+ totalStaked,
145
+ totalWeightedStake,
146
+ currentPeriod,
147
+ version,
148
+ createdAt: Number(createdAt),
149
+ };
150
+ }
151
+ export function encodeStakePoolAccount(account, bump = 255) {
152
+ if (account.lockOptions.length === 0 || account.lockOptions.length > MAX_LOCK_OPTIONS) {
153
+ throw new StakeCodecError(`lockOptions length must be 1..${MAX_LOCK_OPTIONS}; got ${account.lockOptions.length}`);
154
+ }
155
+ if (account.rewardSources.length === 0 ||
156
+ account.rewardSources.length > MAX_REWARD_SOURCES) {
157
+ throw new StakeCodecError(`rewardSources length must be 1..${MAX_REWARD_SOURCES}; got ${account.rewardSources.length}`);
158
+ }
159
+ if (account.earlyExitPenaltyBps < 0 || account.earlyExitPenaltyBps > 10_000) {
160
+ throw new StakeCodecError(`earlyExitPenaltyBps must be 0..10000; got ${account.earlyExitPenaltyBps}`);
161
+ }
162
+ const w = new BorshWriter();
163
+ w.writeBytes(STAKE_POOL_DISCRIMINATOR);
164
+ w.writeU8(bump);
165
+ w.writePubkey(account.authority);
166
+ w.writeU32LE(account.poolId);
167
+ w.writePubkey(account.asset);
168
+ w.writeOptionalBorshString(account.hostUrl, MAX_HOST_URL_LEN);
169
+ w.writeVecLockTier(account.lockOptions);
170
+ w.writeU64LE(account.minStake);
171
+ w.writeOptionalU64(account.maxStakePerVault);
172
+ w.writeU16LE(account.earlyExitPenaltyBps);
173
+ w.writePenaltyDestination(account.penaltyDestination);
174
+ w.writeVecRewardSource(account.rewardSources);
175
+ w.writeU8(encodeRewardCadence(account.rewardCadence));
176
+ w.writeU8(encodeRewardFormula(account.rewardFormula));
177
+ w.writeU64LE(account.totalStaked);
178
+ w.writeU64LE(account.totalWeightedStake);
179
+ w.writeU32LE(account.currentPeriod);
180
+ w.writeU32LE(account.version);
181
+ w.writeI64LE(BigInt(account.createdAt));
182
+ return w.toBuffer();
183
+ }
184
+ // =============================================================================
185
+ // StakeVaultAccount (fixed-size)
186
+ // =============================================================================
187
+ export function decodeStakeVaultAccount(data) {
188
+ const buf = data instanceof Buffer ? data : Buffer.from(data);
189
+ if (buf.length < 8) {
190
+ throw new StakeCodecError(`buffer too small (${buf.length} bytes); need at least 8 for discriminator`);
191
+ }
192
+ const disc = buf.subarray(0, 8);
193
+ if (!disc.equals(STAKE_VAULT_DISCRIMINATOR)) {
194
+ throw new StakeCodecError(`StakeVault discriminator mismatch: expected ${STAKE_VAULT_DISCRIMINATOR.toString('hex')}, got ${disc.toString('hex')}`);
195
+ }
196
+ const r = new BorshReader(buf, 8);
197
+ const bump = r.readU8();
198
+ void bump;
199
+ const poolPda = r.readPubkey();
200
+ const owner = r.readPubkey();
201
+ const stakedAmount = r.readU64LE();
202
+ const lockTierIdx = r.readU8();
203
+ const lockEndsAt = r.readI64LE();
204
+ const accruedRewards = r.readU64LE();
205
+ const lastClaimPeriod = r.readU32LE();
206
+ const lastClaimAt = r.readI64LE();
207
+ const stakedAt = r.readI64LE();
208
+ return {
209
+ poolPda,
210
+ owner,
211
+ stakedAmount,
212
+ lockTierIdx,
213
+ lockEndsAt: Number(lockEndsAt),
214
+ accruedRewards,
215
+ lastClaimPeriod,
216
+ lastClaimAt: Number(lastClaimAt),
217
+ stakedAt: Number(stakedAt),
218
+ };
219
+ }
220
+ export function encodeStakeVaultAccount(account, bump = 255) {
221
+ const w = new BorshWriter();
222
+ w.writeBytes(STAKE_VAULT_DISCRIMINATOR);
223
+ w.writeU8(bump);
224
+ w.writePubkey(account.poolPda);
225
+ w.writePubkey(account.owner);
226
+ w.writeU64LE(account.stakedAmount);
227
+ w.writeU8(account.lockTierIdx);
228
+ w.writeI64LE(BigInt(account.lockEndsAt));
229
+ w.writeU64LE(account.accruedRewards);
230
+ w.writeU32LE(account.lastClaimPeriod);
231
+ w.writeI64LE(BigInt(account.lastClaimAt));
232
+ w.writeI64LE(BigInt(account.stakedAt));
233
+ return w.toBuffer();
234
+ }
235
+ // =============================================================================
236
+ // RewardDistributionAccount (fixed-size)
237
+ // =============================================================================
238
+ export function decodeRewardDistributionAccount(data) {
239
+ const buf = data instanceof Buffer ? data : Buffer.from(data);
240
+ if (buf.length < 8) {
241
+ throw new StakeCodecError(`buffer too small (${buf.length} bytes); need at least 8 for discriminator`);
242
+ }
243
+ const disc = buf.subarray(0, 8);
244
+ if (!disc.equals(REWARD_DIST_DISCRIMINATOR)) {
245
+ throw new StakeCodecError(`RewardDistribution discriminator mismatch: expected ${REWARD_DIST_DISCRIMINATOR.toString('hex')}, got ${disc.toString('hex')}`);
246
+ }
247
+ const r = new BorshReader(buf, 8);
248
+ const bump = r.readU8();
249
+ void bump;
250
+ const poolPda = r.readPubkey();
251
+ const periodId = r.readU32LE();
252
+ const totalDistributed = r.readU64LE();
253
+ const weightedStakeAtSnapshot = r.readU64LE();
254
+ const distributedAt = r.readI64LE();
255
+ const rewardMint = r.readPubkey();
256
+ return {
257
+ poolPda,
258
+ periodId,
259
+ totalDistributed,
260
+ weightedStakeAtSnapshot,
261
+ distributedAt: Number(distributedAt),
262
+ rewardMint,
263
+ };
264
+ }
265
+ export function encodeRewardDistributionAccount(account, bump = 255) {
266
+ const w = new BorshWriter();
267
+ w.writeBytes(REWARD_DIST_DISCRIMINATOR);
268
+ w.writeU8(bump);
269
+ w.writePubkey(account.poolPda);
270
+ w.writeU32LE(account.periodId);
271
+ w.writeU64LE(account.totalDistributed);
272
+ w.writeU64LE(account.weightedStakeAtSnapshot);
273
+ w.writeI64LE(BigInt(account.distributedAt));
274
+ w.writePubkey(account.rewardMint);
275
+ return w.toBuffer();
276
+ }
277
+ // =============================================================================
278
+ // Variant encoders
279
+ // =============================================================================
280
+ function encodeRewardCadence(c) {
281
+ switch (c) {
282
+ case 'hourly':
283
+ return REWARD_CADENCE_HOURLY;
284
+ case 'daily':
285
+ return REWARD_CADENCE_DAILY;
286
+ case 'weekly':
287
+ return REWARD_CADENCE_WEEKLY;
288
+ default: {
289
+ const _exhaustive = c;
290
+ throw new StakeCodecError(`unknown rewardCadence: ${_exhaustive}`);
291
+ }
292
+ }
293
+ }
294
+ function decodeRewardCadence(byte) {
295
+ switch (byte) {
296
+ case REWARD_CADENCE_HOURLY:
297
+ return 'hourly';
298
+ case REWARD_CADENCE_DAILY:
299
+ return 'daily';
300
+ case REWARD_CADENCE_WEEKLY:
301
+ return 'weekly';
302
+ default:
303
+ throw new StakeCodecError(`unknown rewardCadence byte: ${byte}`);
304
+ }
305
+ }
306
+ function encodeRewardFormula(f) {
307
+ switch (f) {
308
+ case 'linear-v1':
309
+ return REWARD_FORMULA_LINEAR_V1;
310
+ case 'sammy-curve-v1':
311
+ return REWARD_FORMULA_SAMMY_V1;
312
+ default: {
313
+ const _exhaustive = f;
314
+ throw new StakeCodecError(`unknown rewardFormula: ${_exhaustive}`);
315
+ }
316
+ }
317
+ }
318
+ function decodeRewardFormula(byte) {
319
+ switch (byte) {
320
+ case REWARD_FORMULA_LINEAR_V1:
321
+ return 'linear-v1';
322
+ case REWARD_FORMULA_SAMMY_V1:
323
+ return 'sammy-curve-v1';
324
+ default:
325
+ throw new StakeCodecError(`unknown rewardFormula byte: ${byte}`);
326
+ }
327
+ }
328
+ // =============================================================================
329
+ // Borsh reader / writer
330
+ // =============================================================================
331
+ class BorshReader {
332
+ buf;
333
+ offset;
334
+ constructor(buf, start = 0) {
335
+ this.buf = buf;
336
+ this.offset = start;
337
+ }
338
+ require(n) {
339
+ if (this.offset + n > this.buf.length) {
340
+ throw new StakeCodecError(`unexpected end of buffer at offset ${this.offset}, need ${n} more bytes`);
341
+ }
342
+ }
343
+ readU8() {
344
+ this.require(1);
345
+ const v = this.buf.readUInt8(this.offset);
346
+ this.offset += 1;
347
+ return v;
348
+ }
349
+ readU16LE() {
350
+ this.require(2);
351
+ const v = this.buf.readUInt16LE(this.offset);
352
+ this.offset += 2;
353
+ return v;
354
+ }
355
+ readU32LE() {
356
+ this.require(4);
357
+ const v = this.buf.readUInt32LE(this.offset);
358
+ this.offset += 4;
359
+ return v;
360
+ }
361
+ readU64LE() {
362
+ this.require(8);
363
+ const lo = BigInt(this.buf.readUInt32LE(this.offset));
364
+ const hi = BigInt(this.buf.readUInt32LE(this.offset + 4));
365
+ this.offset += 8;
366
+ return (hi << 32n) | lo;
367
+ }
368
+ readI64LE() {
369
+ this.require(8);
370
+ const lo = BigInt(this.buf.readUInt32LE(this.offset));
371
+ const hi = BigInt(this.buf.readInt32LE(this.offset + 4));
372
+ this.offset += 8;
373
+ return (hi << 32n) | (lo & 0xffffffffn);
374
+ }
375
+ readPubkey() {
376
+ this.require(32);
377
+ const slice = this.buf.subarray(this.offset, this.offset + 32);
378
+ this.offset += 32;
379
+ return new PublicKey(slice).toBase58();
380
+ }
381
+ readOptionalU64() {
382
+ const tag = this.readU8();
383
+ if (tag === 0)
384
+ return null;
385
+ if (tag !== 1)
386
+ throw new StakeCodecError(`invalid Option tag ${tag}`);
387
+ return this.readU64LE();
388
+ }
389
+ readBorshString(maxLen) {
390
+ const len = this.readU32LE();
391
+ if (len > maxLen)
392
+ throw new StakeCodecError(`string length ${len} exceeds max ${maxLen}`);
393
+ this.require(len);
394
+ const slice = this.buf.subarray(this.offset, this.offset + len);
395
+ this.offset += len;
396
+ return slice.toString('utf-8');
397
+ }
398
+ readOptionalBorshString(maxLen) {
399
+ const tag = this.readU8();
400
+ if (tag === 0)
401
+ return null;
402
+ if (tag !== 1)
403
+ throw new StakeCodecError(`invalid Option tag ${tag}`);
404
+ return this.readBorshString(maxLen);
405
+ }
406
+ readVecLockTier() {
407
+ const len = this.readU32LE();
408
+ if (len > MAX_LOCK_OPTIONS) {
409
+ throw new StakeCodecError(`lockOptions length ${len} exceeds max ${MAX_LOCK_OPTIONS}`);
410
+ }
411
+ const out = [];
412
+ for (let i = 0; i < len; i++) {
413
+ const days = this.readU32LE();
414
+ const multiplierFp = this.readU32LE();
415
+ out.push({ days, multiplier: multiplierFp / MULTIPLIER_SCALE });
416
+ }
417
+ return out;
418
+ }
419
+ readPenaltyDestination() {
420
+ const tag = this.readU8();
421
+ switch (tag) {
422
+ case PENALTY_TAG_REDISTRIBUTE:
423
+ return { kind: 'redistribute' };
424
+ case PENALTY_TAG_BURN:
425
+ return { kind: 'burn' };
426
+ case PENALTY_TAG_TREASURY_PDA: {
427
+ const id = this.readBorshString(MAX_TREASURY_ID_LEN);
428
+ return { kind: 'treasury-pda', id };
429
+ }
430
+ default:
431
+ throw new StakeCodecError(`unknown PenaltyDestination tag ${tag}`);
432
+ }
433
+ }
434
+ readVecRewardSource() {
435
+ const len = this.readU32LE();
436
+ if (len > MAX_REWARD_SOURCES) {
437
+ throw new StakeCodecError(`rewardSources length ${len} exceeds max ${MAX_REWARD_SOURCES}`);
438
+ }
439
+ const out = [];
440
+ for (let i = 0; i < len; i++) {
441
+ const tag = this.readU8();
442
+ const id = this.readBorshString(MAX_REWARD_SOURCE_ID_LEN);
443
+ if (tag === REWARD_SOURCE_TAG_DIST_VAULT) {
444
+ out.push({ type: 'distribution-vault', id });
445
+ }
446
+ else if (tag === REWARD_SOURCE_TAG_SPLIT_RECIPIENT) {
447
+ out.push({ type: 'split-recipient', fromConfigId: id });
448
+ }
449
+ else {
450
+ throw new StakeCodecError(`unknown RewardSource tag ${tag}`);
451
+ }
452
+ }
453
+ return out;
454
+ }
455
+ }
456
+ class BorshWriter {
457
+ chunks = [];
458
+ writeBytes(b) {
459
+ this.chunks.push(b);
460
+ }
461
+ writeU8(v) {
462
+ const b = Buffer.alloc(1);
463
+ b.writeUInt8(v, 0);
464
+ this.chunks.push(b);
465
+ }
466
+ writeU16LE(v) {
467
+ const b = Buffer.alloc(2);
468
+ b.writeUInt16LE(v, 0);
469
+ this.chunks.push(b);
470
+ }
471
+ writeU32LE(v) {
472
+ const b = Buffer.alloc(4);
473
+ b.writeUInt32LE(v, 0);
474
+ this.chunks.push(b);
475
+ }
476
+ writeU64LE(v) {
477
+ const b = Buffer.alloc(8);
478
+ b.writeBigUInt64LE(v, 0);
479
+ this.chunks.push(b);
480
+ }
481
+ writeI64LE(v) {
482
+ const b = Buffer.alloc(8);
483
+ b.writeBigInt64LE(v, 0);
484
+ this.chunks.push(b);
485
+ }
486
+ writePubkey(addr) {
487
+ const bytes = new PublicKey(addr).toBytes();
488
+ this.chunks.push(Buffer.from(bytes));
489
+ }
490
+ writeOptionalU64(v) {
491
+ if (v == null) {
492
+ this.writeU8(0);
493
+ return;
494
+ }
495
+ this.writeU8(1);
496
+ this.writeU64LE(v);
497
+ }
498
+ writeBorshString(s, maxLen) {
499
+ const utf8 = Buffer.from(s, 'utf-8');
500
+ if (utf8.length > maxLen) {
501
+ throw new StakeCodecError(`string of byte-length ${utf8.length} exceeds max ${maxLen}`);
502
+ }
503
+ this.writeU32LE(utf8.length);
504
+ this.chunks.push(utf8);
505
+ }
506
+ writeOptionalBorshString(s, maxLen) {
507
+ if (s == null) {
508
+ this.writeU8(0);
509
+ return;
510
+ }
511
+ this.writeU8(1);
512
+ this.writeBorshString(s, maxLen);
513
+ }
514
+ writeVecLockTier(tiers) {
515
+ this.writeU32LE(tiers.length);
516
+ for (const t of tiers) {
517
+ this.writeU32LE(t.days);
518
+ // Multiplier × 1000 fixed-point
519
+ const fp = Math.round(t.multiplier * MULTIPLIER_SCALE);
520
+ if (fp < 0 || fp > 0xffff_ffff) {
521
+ throw new StakeCodecError(`multiplier out of u32 range: ${t.multiplier}`);
522
+ }
523
+ this.writeU32LE(fp);
524
+ }
525
+ }
526
+ writePenaltyDestination(p) {
527
+ switch (p.kind) {
528
+ case 'redistribute':
529
+ this.writeU8(PENALTY_TAG_REDISTRIBUTE);
530
+ return;
531
+ case 'burn':
532
+ this.writeU8(PENALTY_TAG_BURN);
533
+ return;
534
+ case 'treasury-pda':
535
+ this.writeU8(PENALTY_TAG_TREASURY_PDA);
536
+ this.writeBorshString(p.id, MAX_TREASURY_ID_LEN);
537
+ return;
538
+ default: {
539
+ const _exhaustive = p;
540
+ throw new StakeCodecError(`unknown PenaltyDestination: ${_exhaustive}`);
541
+ }
542
+ }
543
+ }
544
+ writeVecRewardSource(sources) {
545
+ this.writeU32LE(sources.length);
546
+ for (const s of sources) {
547
+ if (s.type === 'distribution-vault') {
548
+ this.writeU8(REWARD_SOURCE_TAG_DIST_VAULT);
549
+ this.writeBorshString(s.id, MAX_REWARD_SOURCE_ID_LEN);
550
+ }
551
+ else if (s.type === 'split-recipient') {
552
+ this.writeU8(REWARD_SOURCE_TAG_SPLIT_RECIPIENT);
553
+ this.writeBorshString(s.fromConfigId, MAX_REWARD_SOURCE_ID_LEN);
554
+ }
555
+ else {
556
+ const _exhaustive = s;
557
+ throw new StakeCodecError(`unknown RewardSource: ${_exhaustive}`);
558
+ }
559
+ }
560
+ }
561
+ toBuffer() {
562
+ return Buffer.concat(this.chunks);
563
+ }
564
+ }
565
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { EmblemStakeClient, EmblemStakeError, createStakeReader, type EmblemStakeClientOptions, type SolanaSignerInterface, } from './client.js';
2
+ export { decodeStakePoolAccount, encodeStakePoolAccount, decodeStakeVaultAccount, encodeStakeVaultAccount, decodeRewardDistributionAccount, encodeRewardDistributionAccount, STAKE_POOL_DISCRIMINATOR, STAKE_VAULT_DISCRIMINATOR, REWARD_DIST_DISCRIMINATOR, MULTIPLIER_SCALE, MAX_LOCK_OPTIONS, MAX_REWARD_SOURCES, MAX_HOST_URL_LEN, MAX_TREASURY_ID_LEN, MAX_REWARD_SOURCE_ID_LEN, PENALTY_TAG_REDISTRIBUTE, PENALTY_TAG_BURN, PENALTY_TAG_TREASURY_PDA, REWARD_SOURCE_TAG_DIST_VAULT, REWARD_SOURCE_TAG_SPLIT_RECIPIENT, REWARD_CADENCE_HOURLY, REWARD_CADENCE_DAILY, REWARD_CADENCE_WEEKLY, REWARD_FORMULA_LINEAR_V1, REWARD_FORMULA_SAMMY_V1, StakeCodecError, } from './codec.js';
3
+ export { deriveStakePoolPda, deriveStakeVaultPda, deriveRewardDistPda, encodeU32, STAKE_POOL_SEED, STAKE_VAULT_SEED, REWARD_DIST_SEED, STAKE_PROGRAM_ID, type DeriveStakePoolPdaArgs, type DeriveStakeVaultPdaArgs, type DeriveRewardDistPdaArgs, type DerivedPda, } from './pda.js';
4
+ export type { StakePoolAccount, StakePoolView, StakeVaultAccount, StakeVaultView, RewardDistributionAccount, RewardDistributionView, CreatePoolArgs, StakeArgs, UnstakeArgs, ClaimRewardsArgs, DistributeRewardsArgs, GetVaultArgs, StakeGateEvaluationResult, } from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,iCAAiC,EACjC,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,UAAU,GAChB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { EmblemStakeClient, EmblemStakeError, createStakeReader, } from './client.js';
2
+ export { decodeStakePoolAccount, encodeStakePoolAccount, decodeStakeVaultAccount, encodeStakeVaultAccount, decodeRewardDistributionAccount, encodeRewardDistributionAccount, STAKE_POOL_DISCRIMINATOR, STAKE_VAULT_DISCRIMINATOR, REWARD_DIST_DISCRIMINATOR, MULTIPLIER_SCALE, MAX_LOCK_OPTIONS, MAX_REWARD_SOURCES, MAX_HOST_URL_LEN, MAX_TREASURY_ID_LEN, MAX_REWARD_SOURCE_ID_LEN, PENALTY_TAG_REDISTRIBUTE, PENALTY_TAG_BURN, PENALTY_TAG_TREASURY_PDA, REWARD_SOURCE_TAG_DIST_VAULT, REWARD_SOURCE_TAG_SPLIT_RECIPIENT, REWARD_CADENCE_HOURLY, REWARD_CADENCE_DAILY, REWARD_CADENCE_WEEKLY, REWARD_FORMULA_LINEAR_V1, REWARD_FORMULA_SAMMY_V1, StakeCodecError, } from './codec.js';
3
+ export { deriveStakePoolPda, deriveStakeVaultPda, deriveRewardDistPda, encodeU32, STAKE_POOL_SEED, STAKE_VAULT_SEED, REWARD_DIST_SEED, STAKE_PROGRAM_ID, } from './pda.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,iCAAiC,EACjC,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAKjB,MAAM,UAAU,CAAC"}
package/dist/pda.d.ts ADDED
@@ -0,0 +1,49 @@
1
+ /**
2
+ * PDA derivation for the stake program.
3
+ *
4
+ * Three derivations:
5
+ * StakePool: [b"stake-pool", asset_mint, pool_id_le_u32]
6
+ * StakeVault: [b"stake-vault", pool_pda, owner]
7
+ * RewardDistribution: [b"reward-dist", pool_pda, period_id_le_u32]
8
+ *
9
+ * Mirrors sdk/sell's pattern. Rust and TS sides derive identically.
10
+ */
11
+ import { PublicKey } from '@solana/web3.js';
12
+ import { STAKE_PROGRAM_ID, type SolanaAddress } from '@emblemvault/primitives-shared';
13
+ export declare const STAKE_POOL_SEED: Buffer<ArrayBuffer>;
14
+ export declare const STAKE_VAULT_SEED: Buffer<ArrayBuffer>;
15
+ export declare const REWARD_DIST_SEED: Buffer<ArrayBuffer>;
16
+ /**
17
+ * Stake program id — derived from `keys/stake.json` and emitted by
18
+ * `scripts/derive-program-ids.mjs` into `shared/src/program-ids.generated.ts`.
19
+ * Re-exported here so SDK consumers don't need to know about `shared`.
20
+ *
21
+ * The Rust program's `declare_id!()` is held in lockstep via Anchor's
22
+ * keypair-vs-source check.
23
+ */
24
+ export { STAKE_PROGRAM_ID };
25
+ export interface DeriveStakePoolPdaArgs {
26
+ asset: SolanaAddress;
27
+ poolId: number;
28
+ programId: SolanaAddress;
29
+ }
30
+ export interface DerivedPda {
31
+ pda: PublicKey;
32
+ bump: number;
33
+ }
34
+ export declare function deriveStakePoolPda(args: DeriveStakePoolPdaArgs): DerivedPda;
35
+ export interface DeriveStakeVaultPdaArgs {
36
+ poolPda: SolanaAddress;
37
+ owner: SolanaAddress;
38
+ programId: SolanaAddress;
39
+ }
40
+ export declare function deriveStakeVaultPda(args: DeriveStakeVaultPdaArgs): DerivedPda;
41
+ export interface DeriveRewardDistPdaArgs {
42
+ poolPda: SolanaAddress;
43
+ periodId: number;
44
+ programId: SolanaAddress;
45
+ }
46
+ export declare function deriveRewardDistPda(args: DeriveRewardDistPdaArgs): DerivedPda;
47
+ /** Encode a u32 as 4 little-endian bytes with a context-aware error message. */
48
+ export declare function encodeU32(value: number, fieldName: string): Buffer;
49
+ //# sourceMappingURL=pda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEtF,eAAO,MAAM,eAAe,qBAA4B,CAAC;AACzD,eAAO,MAAM,gBAAgB,qBAA6B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,qBAA6B,CAAC;AAE3D;;;;;;;GAOG;AACH,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAM5B,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,UAAU,CAS3E;AAMD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,CAS7E;AAMD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,CAS7E;AAMD,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASlE"}