@zcomb/programs-sdk 1.5.1 → 1.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.
@@ -0,0 +1,1231 @@
1
+ import { Program, AnchorProvider, BN } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { Svault, SVaultTxOptions, StakingConfigAccount, UserStakeAccount, DelegateAccount } from "./types";
4
+ export declare class SVaultClient {
5
+ program: Program<Svault>;
6
+ programId: PublicKey;
7
+ computeUnits: number;
8
+ constructor(provider: AnchorProvider, programId?: PublicKey, computeUnits?: number);
9
+ deriveStakingConfigPDA(tokenMint: PublicKey, nonce: number): [PublicKey, number];
10
+ deriveUserStakePDA(stakingConfig: PublicKey, user: PublicKey): [PublicKey, number];
11
+ deriveDelegatePDA(stakingConfig: PublicKey, delegate: PublicKey): [PublicKey, number];
12
+ deriveStakeVaultPDA(stakingConfig: PublicKey): [PublicKey, number];
13
+ deriveRewardVaultPDA(stakingConfig: PublicKey): [PublicKey, number];
14
+ fetchStakingConfig(pda: PublicKey): Promise<StakingConfigAccount>;
15
+ fetchUserStake(pda: PublicKey): Promise<UserStakeAccount>;
16
+ fetchDelegate(pda: PublicKey): Promise<DelegateAccount>;
17
+ /**
18
+ * Convenience method: Derive staking config PDA from mint + nonce, then fetch user stake.
19
+ */
20
+ fetchUserStakeByMint(tokenMint: PublicKey, nonce: number, user: PublicKey): Promise<UserStakeAccount>;
21
+ /**
22
+ * Convenience method: Derive staking config PDA from mint + nonce, then fetch config.
23
+ */
24
+ fetchStakingConfigByMint(tokenMint: PublicKey, nonce: number): Promise<StakingConfigAccount>;
25
+ initializeStakingVault(admin: PublicKey, tokenMint: PublicKey, unstakingPeriod: BN | number, volumeWindow: BN | number, nonce: number, options?: SVaultTxOptions): {
26
+ builder: import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
27
+ name: "initializeStakingVault";
28
+ discriminator: [33, 184, 171, 216, 235, 64, 2, 236];
29
+ accounts: [{
30
+ "name": "admin";
31
+ "writable": true;
32
+ "signer": true;
33
+ }, {
34
+ "name": "tokenMint";
35
+ }, {
36
+ "name": "config";
37
+ "writable": true;
38
+ "pda": {
39
+ "seeds": [{
40
+ "kind": "const";
41
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
42
+ }, {
43
+ "kind": "account";
44
+ "path": "tokenMint";
45
+ }, {
46
+ "kind": "arg";
47
+ "path": "nonce";
48
+ }];
49
+ };
50
+ }, {
51
+ "name": "stakeVault";
52
+ "writable": true;
53
+ "pda": {
54
+ "seeds": [{
55
+ "kind": "const";
56
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
57
+ }, {
58
+ "kind": "account";
59
+ "path": "config";
60
+ }];
61
+ };
62
+ }, {
63
+ "name": "rewardVault";
64
+ "writable": true;
65
+ "pda": {
66
+ "seeds": [{
67
+ "kind": "const";
68
+ "value": [114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116];
69
+ }, {
70
+ "kind": "account";
71
+ "path": "config";
72
+ }];
73
+ };
74
+ }, {
75
+ "name": "tokenProgram";
76
+ }, {
77
+ "name": "systemProgram";
78
+ "address": "11111111111111111111111111111111";
79
+ }];
80
+ args: [{
81
+ "name": "unstakingPeriod";
82
+ "type": "u64";
83
+ }, {
84
+ "name": "volumeWindow";
85
+ "type": "u64";
86
+ }, {
87
+ "name": "nonce";
88
+ "type": "u16";
89
+ }];
90
+ } & {
91
+ name: "initializeStakingVault";
92
+ }, {
93
+ name: "admin";
94
+ writable: true;
95
+ signer: true;
96
+ } | {
97
+ name: "tokenMint";
98
+ } | {
99
+ name: "config";
100
+ writable: true;
101
+ pda: {
102
+ "seeds": [{
103
+ "kind": "const";
104
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
105
+ }, {
106
+ "kind": "account";
107
+ "path": "tokenMint";
108
+ }, {
109
+ "kind": "arg";
110
+ "path": "nonce";
111
+ }];
112
+ };
113
+ } | {
114
+ name: "stakeVault";
115
+ writable: true;
116
+ pda: {
117
+ "seeds": [{
118
+ "kind": "const";
119
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
120
+ }, {
121
+ "kind": "account";
122
+ "path": "config";
123
+ }];
124
+ };
125
+ } | {
126
+ name: "rewardVault";
127
+ writable: true;
128
+ pda: {
129
+ "seeds": [{
130
+ "kind": "const";
131
+ "value": [114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116];
132
+ }, {
133
+ "kind": "account";
134
+ "path": "config";
135
+ }];
136
+ };
137
+ } | {
138
+ name: "tokenProgram";
139
+ } | {
140
+ name: "systemProgram";
141
+ address: "11111111111111111111111111111111";
142
+ }>;
143
+ configPda: PublicKey;
144
+ };
145
+ stake(user: PublicKey, tokenMint: PublicKey, nonce: number, amount: BN | number, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
146
+ name: "stake";
147
+ discriminator: [206, 176, 202, 18, 200, 209, 179, 108];
148
+ accounts: [{
149
+ "name": "user";
150
+ "writable": true;
151
+ "signer": true;
152
+ }, {
153
+ "name": "tokenMint";
154
+ }, {
155
+ "name": "config";
156
+ "writable": true;
157
+ "pda": {
158
+ "seeds": [{
159
+ "kind": "const";
160
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
161
+ }, {
162
+ "kind": "account";
163
+ "path": "tokenMint";
164
+ }, {
165
+ "kind": "account";
166
+ "path": "config.nonce";
167
+ "account": "stakingConfig";
168
+ }];
169
+ };
170
+ }, {
171
+ "name": "userStake";
172
+ "writable": true;
173
+ "pda": {
174
+ "seeds": [{
175
+ "kind": "const";
176
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
177
+ }, {
178
+ "kind": "account";
179
+ "path": "config";
180
+ }, {
181
+ "kind": "account";
182
+ "path": "user";
183
+ }];
184
+ };
185
+ }, {
186
+ "name": "stakeVault";
187
+ "writable": true;
188
+ "pda": {
189
+ "seeds": [{
190
+ "kind": "const";
191
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
192
+ }, {
193
+ "kind": "account";
194
+ "path": "config";
195
+ }];
196
+ };
197
+ }, {
198
+ "name": "userTokenAccount";
199
+ "writable": true;
200
+ "pda": {
201
+ "seeds": [{
202
+ "kind": "account";
203
+ "path": "user";
204
+ }, {
205
+ "kind": "const";
206
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
207
+ }, {
208
+ "kind": "account";
209
+ "path": "tokenMint";
210
+ }];
211
+ "program": {
212
+ "kind": "const";
213
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
214
+ };
215
+ };
216
+ }, {
217
+ "name": "tokenProgram";
218
+ }, {
219
+ "name": "systemProgram";
220
+ "address": "11111111111111111111111111111111";
221
+ }];
222
+ args: [{
223
+ "name": "amount";
224
+ "type": "u64";
225
+ }];
226
+ } & {
227
+ name: "stake";
228
+ }, {
229
+ name: "user";
230
+ writable: true;
231
+ signer: true;
232
+ } | {
233
+ name: "tokenMint";
234
+ } | {
235
+ name: "config";
236
+ writable: true;
237
+ pda: {
238
+ "seeds": [{
239
+ "kind": "const";
240
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
241
+ }, {
242
+ "kind": "account";
243
+ "path": "tokenMint";
244
+ }, {
245
+ "kind": "account";
246
+ "path": "config.nonce";
247
+ "account": "stakingConfig";
248
+ }];
249
+ };
250
+ } | {
251
+ name: "userStake";
252
+ writable: true;
253
+ pda: {
254
+ "seeds": [{
255
+ "kind": "const";
256
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
257
+ }, {
258
+ "kind": "account";
259
+ "path": "config";
260
+ }, {
261
+ "kind": "account";
262
+ "path": "user";
263
+ }];
264
+ };
265
+ } | {
266
+ name: "stakeVault";
267
+ writable: true;
268
+ pda: {
269
+ "seeds": [{
270
+ "kind": "const";
271
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
272
+ }, {
273
+ "kind": "account";
274
+ "path": "config";
275
+ }];
276
+ };
277
+ } | {
278
+ name: "userTokenAccount";
279
+ writable: true;
280
+ pda: {
281
+ "seeds": [{
282
+ "kind": "account";
283
+ "path": "user";
284
+ }, {
285
+ "kind": "const";
286
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
287
+ }, {
288
+ "kind": "account";
289
+ "path": "tokenMint";
290
+ }];
291
+ "program": {
292
+ "kind": "const";
293
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
294
+ };
295
+ };
296
+ } | {
297
+ name: "tokenProgram";
298
+ } | {
299
+ name: "systemProgram";
300
+ address: "11111111111111111111111111111111";
301
+ }>;
302
+ initiateUnstake(user: PublicKey, tokenMint: PublicKey, nonce: number, amount: BN | number, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
303
+ name: "initiateUnstake";
304
+ discriminator: [229, 79, 19, 159, 232, 206, 96, 210];
305
+ accounts: [{
306
+ "name": "user";
307
+ "writable": true;
308
+ "signer": true;
309
+ }, {
310
+ "name": "tokenMint";
311
+ }, {
312
+ "name": "config";
313
+ "writable": true;
314
+ "pda": {
315
+ "seeds": [{
316
+ "kind": "const";
317
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
318
+ }, {
319
+ "kind": "account";
320
+ "path": "tokenMint";
321
+ }, {
322
+ "kind": "account";
323
+ "path": "config.nonce";
324
+ "account": "stakingConfig";
325
+ }];
326
+ };
327
+ }, {
328
+ "name": "userStake";
329
+ "writable": true;
330
+ "pda": {
331
+ "seeds": [{
332
+ "kind": "const";
333
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
334
+ }, {
335
+ "kind": "account";
336
+ "path": "config";
337
+ }, {
338
+ "kind": "account";
339
+ "path": "user";
340
+ }];
341
+ };
342
+ }];
343
+ args: [{
344
+ "name": "amount";
345
+ "type": "u64";
346
+ }];
347
+ } & {
348
+ name: "initiateUnstake";
349
+ }, {
350
+ name: "user";
351
+ writable: true;
352
+ signer: true;
353
+ } | {
354
+ name: "tokenMint";
355
+ } | {
356
+ name: "config";
357
+ writable: true;
358
+ pda: {
359
+ "seeds": [{
360
+ "kind": "const";
361
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
362
+ }, {
363
+ "kind": "account";
364
+ "path": "tokenMint";
365
+ }, {
366
+ "kind": "account";
367
+ "path": "config.nonce";
368
+ "account": "stakingConfig";
369
+ }];
370
+ };
371
+ } | {
372
+ name: "userStake";
373
+ writable: true;
374
+ pda: {
375
+ "seeds": [{
376
+ "kind": "const";
377
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
378
+ }, {
379
+ "kind": "account";
380
+ "path": "config";
381
+ }, {
382
+ "kind": "account";
383
+ "path": "user";
384
+ }];
385
+ };
386
+ }>;
387
+ withdraw(user: PublicKey, tokenMint: PublicKey, nonce: number, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
388
+ name: "withdraw";
389
+ discriminator: [183, 18, 70, 156, 148, 109, 161, 34];
390
+ accounts: [{
391
+ "name": "user";
392
+ "writable": true;
393
+ "signer": true;
394
+ }, {
395
+ "name": "tokenMint";
396
+ }, {
397
+ "name": "config";
398
+ "pda": {
399
+ "seeds": [{
400
+ "kind": "const";
401
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
402
+ }, {
403
+ "kind": "account";
404
+ "path": "tokenMint";
405
+ }, {
406
+ "kind": "account";
407
+ "path": "config.nonce";
408
+ "account": "stakingConfig";
409
+ }];
410
+ };
411
+ }, {
412
+ "name": "userStake";
413
+ "writable": true;
414
+ "pda": {
415
+ "seeds": [{
416
+ "kind": "const";
417
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
418
+ }, {
419
+ "kind": "account";
420
+ "path": "config";
421
+ }, {
422
+ "kind": "account";
423
+ "path": "user";
424
+ }];
425
+ };
426
+ }, {
427
+ "name": "stakeVault";
428
+ "writable": true;
429
+ "pda": {
430
+ "seeds": [{
431
+ "kind": "const";
432
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
433
+ }, {
434
+ "kind": "account";
435
+ "path": "config";
436
+ }];
437
+ };
438
+ }, {
439
+ "name": "userTokenAccount";
440
+ "writable": true;
441
+ "pda": {
442
+ "seeds": [{
443
+ "kind": "account";
444
+ "path": "user";
445
+ }, {
446
+ "kind": "const";
447
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
448
+ }, {
449
+ "kind": "account";
450
+ "path": "tokenMint";
451
+ }];
452
+ "program": {
453
+ "kind": "const";
454
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
455
+ };
456
+ };
457
+ }, {
458
+ "name": "tokenProgram";
459
+ }];
460
+ args: [];
461
+ } & {
462
+ name: "withdraw";
463
+ }, {
464
+ name: "user";
465
+ writable: true;
466
+ signer: true;
467
+ } | {
468
+ name: "tokenMint";
469
+ } | {
470
+ name: "config";
471
+ pda: {
472
+ "seeds": [{
473
+ "kind": "const";
474
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
475
+ }, {
476
+ "kind": "account";
477
+ "path": "tokenMint";
478
+ }, {
479
+ "kind": "account";
480
+ "path": "config.nonce";
481
+ "account": "stakingConfig";
482
+ }];
483
+ };
484
+ } | {
485
+ name: "userStake";
486
+ writable: true;
487
+ pda: {
488
+ "seeds": [{
489
+ "kind": "const";
490
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
491
+ }, {
492
+ "kind": "account";
493
+ "path": "config";
494
+ }, {
495
+ "kind": "account";
496
+ "path": "user";
497
+ }];
498
+ };
499
+ } | {
500
+ name: "stakeVault";
501
+ writable: true;
502
+ pda: {
503
+ "seeds": [{
504
+ "kind": "const";
505
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
506
+ }, {
507
+ "kind": "account";
508
+ "path": "config";
509
+ }];
510
+ };
511
+ } | {
512
+ name: "userTokenAccount";
513
+ writable: true;
514
+ pda: {
515
+ "seeds": [{
516
+ "kind": "account";
517
+ "path": "user";
518
+ }, {
519
+ "kind": "const";
520
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
521
+ }, {
522
+ "kind": "account";
523
+ "path": "tokenMint";
524
+ }];
525
+ "program": {
526
+ "kind": "const";
527
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
528
+ };
529
+ };
530
+ } | {
531
+ name: "tokenProgram";
532
+ }>;
533
+ postRewards(admin: PublicKey, tokenMint: PublicKey, nonce: number, merkleRoot: number[], totalAmount: BN | number, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
534
+ name: "postRewards";
535
+ discriminator: [54, 160, 23, 227, 59, 59, 71, 40];
536
+ accounts: [{
537
+ "name": "admin";
538
+ "writable": true;
539
+ "signer": true;
540
+ }, {
541
+ "name": "tokenMint";
542
+ }, {
543
+ "name": "config";
544
+ "writable": true;
545
+ "pda": {
546
+ "seeds": [{
547
+ "kind": "const";
548
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
549
+ }, {
550
+ "kind": "account";
551
+ "path": "tokenMint";
552
+ }, {
553
+ "kind": "account";
554
+ "path": "config.nonce";
555
+ "account": "stakingConfig";
556
+ }];
557
+ };
558
+ }, {
559
+ "name": "rewardVault";
560
+ "writable": true;
561
+ "pda": {
562
+ "seeds": [{
563
+ "kind": "const";
564
+ "value": [114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116];
565
+ }, {
566
+ "kind": "account";
567
+ "path": "config";
568
+ }];
569
+ };
570
+ }, {
571
+ "name": "adminTokenAccount";
572
+ "writable": true;
573
+ "pda": {
574
+ "seeds": [{
575
+ "kind": "account";
576
+ "path": "admin";
577
+ }, {
578
+ "kind": "const";
579
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
580
+ }, {
581
+ "kind": "account";
582
+ "path": "tokenMint";
583
+ }];
584
+ "program": {
585
+ "kind": "const";
586
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
587
+ };
588
+ };
589
+ }, {
590
+ "name": "tokenProgram";
591
+ }];
592
+ args: [{
593
+ "name": "merkleRoot";
594
+ "type": {
595
+ "array": ["u8", 32];
596
+ };
597
+ }, {
598
+ "name": "totalAmount";
599
+ "type": "u64";
600
+ }];
601
+ } & {
602
+ name: "postRewards";
603
+ }, {
604
+ name: "admin";
605
+ writable: true;
606
+ signer: true;
607
+ } | {
608
+ name: "tokenMint";
609
+ } | {
610
+ name: "config";
611
+ writable: true;
612
+ pda: {
613
+ "seeds": [{
614
+ "kind": "const";
615
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
616
+ }, {
617
+ "kind": "account";
618
+ "path": "tokenMint";
619
+ }, {
620
+ "kind": "account";
621
+ "path": "config.nonce";
622
+ "account": "stakingConfig";
623
+ }];
624
+ };
625
+ } | {
626
+ name: "rewardVault";
627
+ writable: true;
628
+ pda: {
629
+ "seeds": [{
630
+ "kind": "const";
631
+ "value": [114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116];
632
+ }, {
633
+ "kind": "account";
634
+ "path": "config";
635
+ }];
636
+ };
637
+ } | {
638
+ name: "adminTokenAccount";
639
+ writable: true;
640
+ pda: {
641
+ "seeds": [{
642
+ "kind": "account";
643
+ "path": "admin";
644
+ }, {
645
+ "kind": "const";
646
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
647
+ }, {
648
+ "kind": "account";
649
+ "path": "tokenMint";
650
+ }];
651
+ "program": {
652
+ "kind": "const";
653
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
654
+ };
655
+ };
656
+ } | {
657
+ name: "tokenProgram";
658
+ }>;
659
+ claimRewards(user: PublicKey, tokenMint: PublicKey, nonce: number, cumulativeAmount: BN | number, proof: number[][], options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
660
+ name: "claimRewards";
661
+ discriminator: [4, 144, 132, 71, 116, 23, 151, 80];
662
+ accounts: [{
663
+ "name": "user";
664
+ "writable": true;
665
+ "signer": true;
666
+ }, {
667
+ "name": "tokenMint";
668
+ }, {
669
+ "name": "config";
670
+ "pda": {
671
+ "seeds": [{
672
+ "kind": "const";
673
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
674
+ }, {
675
+ "kind": "account";
676
+ "path": "tokenMint";
677
+ }, {
678
+ "kind": "account";
679
+ "path": "config.nonce";
680
+ "account": "stakingConfig";
681
+ }];
682
+ };
683
+ }, {
684
+ "name": "userStake";
685
+ "writable": true;
686
+ "pda": {
687
+ "seeds": [{
688
+ "kind": "const";
689
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
690
+ }, {
691
+ "kind": "account";
692
+ "path": "config";
693
+ }, {
694
+ "kind": "account";
695
+ "path": "user";
696
+ }];
697
+ };
698
+ }, {
699
+ "name": "rewardVault";
700
+ "writable": true;
701
+ "pda": {
702
+ "seeds": [{
703
+ "kind": "const";
704
+ "value": [114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116];
705
+ }, {
706
+ "kind": "account";
707
+ "path": "config";
708
+ }];
709
+ };
710
+ }, {
711
+ "name": "userTokenAccount";
712
+ "writable": true;
713
+ "pda": {
714
+ "seeds": [{
715
+ "kind": "account";
716
+ "path": "user";
717
+ }, {
718
+ "kind": "const";
719
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
720
+ }, {
721
+ "kind": "account";
722
+ "path": "tokenMint";
723
+ }];
724
+ "program": {
725
+ "kind": "const";
726
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
727
+ };
728
+ };
729
+ }, {
730
+ "name": "tokenProgram";
731
+ }];
732
+ args: [{
733
+ "name": "cumulativeAmount";
734
+ "type": "u64";
735
+ }, {
736
+ "name": "proof";
737
+ "type": {
738
+ "vec": {
739
+ "array": ["u8", 32];
740
+ };
741
+ };
742
+ }];
743
+ } & {
744
+ name: "claimRewards";
745
+ }, {
746
+ name: "user";
747
+ writable: true;
748
+ signer: true;
749
+ } | {
750
+ name: "tokenMint";
751
+ } | {
752
+ name: "config";
753
+ pda: {
754
+ "seeds": [{
755
+ "kind": "const";
756
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
757
+ }, {
758
+ "kind": "account";
759
+ "path": "tokenMint";
760
+ }, {
761
+ "kind": "account";
762
+ "path": "config.nonce";
763
+ "account": "stakingConfig";
764
+ }];
765
+ };
766
+ } | {
767
+ name: "userStake";
768
+ writable: true;
769
+ pda: {
770
+ "seeds": [{
771
+ "kind": "const";
772
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
773
+ }, {
774
+ "kind": "account";
775
+ "path": "config";
776
+ }, {
777
+ "kind": "account";
778
+ "path": "user";
779
+ }];
780
+ };
781
+ } | {
782
+ name: "rewardVault";
783
+ writable: true;
784
+ pda: {
785
+ "seeds": [{
786
+ "kind": "const";
787
+ "value": [114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116];
788
+ }, {
789
+ "kind": "account";
790
+ "path": "config";
791
+ }];
792
+ };
793
+ } | {
794
+ name: "userTokenAccount";
795
+ writable: true;
796
+ pda: {
797
+ "seeds": [{
798
+ "kind": "account";
799
+ "path": "user";
800
+ }, {
801
+ "kind": "const";
802
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
803
+ }, {
804
+ "kind": "account";
805
+ "path": "tokenMint";
806
+ }];
807
+ "program": {
808
+ "kind": "const";
809
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
810
+ };
811
+ };
812
+ } | {
813
+ name: "tokenProgram";
814
+ }>;
815
+ setConfig(admin: PublicKey, tokenMint: PublicKey, nonce: number, params: {
816
+ unstakingPeriod?: BN | number;
817
+ volumeWindow?: BN | number;
818
+ }, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
819
+ name: "setConfig";
820
+ discriminator: [108, 158, 154, 175, 212, 98, 52, 66];
821
+ accounts: [{
822
+ "name": "admin";
823
+ "signer": true;
824
+ "relations": ["config"];
825
+ }, {
826
+ "name": "config";
827
+ "writable": true;
828
+ "pda": {
829
+ "seeds": [{
830
+ "kind": "const";
831
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
832
+ }, {
833
+ "kind": "account";
834
+ "path": "config.token_mint";
835
+ "account": "stakingConfig";
836
+ }, {
837
+ "kind": "account";
838
+ "path": "config.nonce";
839
+ "account": "stakingConfig";
840
+ }];
841
+ };
842
+ }];
843
+ args: [{
844
+ "name": "unstakingPeriod";
845
+ "type": {
846
+ "option": "u64";
847
+ };
848
+ }, {
849
+ "name": "volumeWindow";
850
+ "type": {
851
+ "option": "u64";
852
+ };
853
+ }];
854
+ } & {
855
+ name: "setConfig";
856
+ }, {
857
+ name: "admin";
858
+ signer: true;
859
+ relations: ["config"];
860
+ } | {
861
+ name: "config";
862
+ writable: true;
863
+ pda: {
864
+ "seeds": [{
865
+ "kind": "const";
866
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
867
+ }, {
868
+ "kind": "account";
869
+ "path": "config.token_mint";
870
+ "account": "stakingConfig";
871
+ }, {
872
+ "kind": "account";
873
+ "path": "config.nonce";
874
+ "account": "stakingConfig";
875
+ }];
876
+ };
877
+ }>;
878
+ slash(admin: PublicKey, tokenMint: PublicKey, nonce: number, userToSlash: PublicKey, basisPoints: number, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
879
+ name: "slash";
880
+ discriminator: [204, 141, 18, 161, 8, 177, 92, 142];
881
+ accounts: [{
882
+ "name": "admin";
883
+ "writable": true;
884
+ "signer": true;
885
+ "relations": ["config"];
886
+ }, {
887
+ "name": "tokenMint";
888
+ }, {
889
+ "name": "config";
890
+ "pda": {
891
+ "seeds": [{
892
+ "kind": "const";
893
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
894
+ }, {
895
+ "kind": "account";
896
+ "path": "tokenMint";
897
+ }, {
898
+ "kind": "account";
899
+ "path": "config.nonce";
900
+ "account": "stakingConfig";
901
+ }];
902
+ };
903
+ }, {
904
+ "name": "userStake";
905
+ "writable": true;
906
+ "pda": {
907
+ "seeds": [{
908
+ "kind": "const";
909
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
910
+ }, {
911
+ "kind": "account";
912
+ "path": "config";
913
+ }, {
914
+ "kind": "account";
915
+ "path": "user_stake.user";
916
+ "account": "userStake";
917
+ }];
918
+ };
919
+ }, {
920
+ "name": "stakeVault";
921
+ "writable": true;
922
+ "pda": {
923
+ "seeds": [{
924
+ "kind": "const";
925
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
926
+ }, {
927
+ "kind": "account";
928
+ "path": "config";
929
+ }];
930
+ };
931
+ }, {
932
+ "name": "feeVault";
933
+ "docs": ["Fee vault - owned by FEE_AUTHORITY"];
934
+ "writable": true;
935
+ "pda": {
936
+ "seeds": [{
937
+ "kind": "const";
938
+ "value": [211, 103, 194, 49, 11, 198, 49, 46, 119, 60, 0, 170, 155, 109, 12, 185, 248, 146, 158, 41, 151, 84, 232, 112, 239, 123, 97, 213, 14, 226, 2, 55];
939
+ }, {
940
+ "kind": "const";
941
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
942
+ }, {
943
+ "kind": "account";
944
+ "path": "tokenMint";
945
+ }];
946
+ "program": {
947
+ "kind": "const";
948
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
949
+ };
950
+ };
951
+ }, {
952
+ "name": "tokenProgram";
953
+ }];
954
+ args: [{
955
+ "name": "basisPoints";
956
+ "type": "u16";
957
+ }];
958
+ } & {
959
+ name: "slash";
960
+ }, {
961
+ name: "admin";
962
+ writable: true;
963
+ signer: true;
964
+ relations: ["config"];
965
+ } | {
966
+ name: "tokenMint";
967
+ } | {
968
+ name: "config";
969
+ pda: {
970
+ "seeds": [{
971
+ "kind": "const";
972
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
973
+ }, {
974
+ "kind": "account";
975
+ "path": "tokenMint";
976
+ }, {
977
+ "kind": "account";
978
+ "path": "config.nonce";
979
+ "account": "stakingConfig";
980
+ }];
981
+ };
982
+ } | {
983
+ name: "userStake";
984
+ writable: true;
985
+ pda: {
986
+ "seeds": [{
987
+ "kind": "const";
988
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
989
+ }, {
990
+ "kind": "account";
991
+ "path": "config";
992
+ }, {
993
+ "kind": "account";
994
+ "path": "user_stake.user";
995
+ "account": "userStake";
996
+ }];
997
+ };
998
+ } | {
999
+ name: "stakeVault";
1000
+ writable: true;
1001
+ pda: {
1002
+ "seeds": [{
1003
+ "kind": "const";
1004
+ "value": [115, 116, 97, 107, 101, 95, 118, 97, 117, 108, 116];
1005
+ }, {
1006
+ "kind": "account";
1007
+ "path": "config";
1008
+ }];
1009
+ };
1010
+ } | {
1011
+ name: "feeVault";
1012
+ docs: ["Fee vault - owned by FEE_AUTHORITY"];
1013
+ writable: true;
1014
+ pda: {
1015
+ "seeds": [{
1016
+ "kind": "const";
1017
+ "value": [211, 103, 194, 49, 11, 198, 49, 46, 119, 60, 0, 170, 155, 109, 12, 185, 248, 146, 158, 41, 151, 84, 232, 112, 239, 123, 97, 213, 14, 226, 2, 55];
1018
+ }, {
1019
+ "kind": "const";
1020
+ "value": [6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169];
1021
+ }, {
1022
+ "kind": "account";
1023
+ "path": "tokenMint";
1024
+ }];
1025
+ "program": {
1026
+ "kind": "const";
1027
+ "value": [140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89];
1028
+ };
1029
+ };
1030
+ } | {
1031
+ name: "tokenProgram";
1032
+ }>;
1033
+ addDelegate(staker: PublicKey, delegateWallet: PublicKey, tokenMint: PublicKey, nonce: number, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
1034
+ name: "addDelegate";
1035
+ discriminator: [3, 67, 128, 218, 69, 139, 53, 88];
1036
+ accounts: [{
1037
+ "name": "staker";
1038
+ "writable": true;
1039
+ "signer": true;
1040
+ }, {
1041
+ "name": "delegateWallet";
1042
+ "signer": true;
1043
+ }, {
1044
+ "name": "config";
1045
+ "pda": {
1046
+ "seeds": [{
1047
+ "kind": "const";
1048
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
1049
+ }, {
1050
+ "kind": "account";
1051
+ "path": "config.token_mint";
1052
+ "account": "stakingConfig";
1053
+ }, {
1054
+ "kind": "account";
1055
+ "path": "config.nonce";
1056
+ "account": "stakingConfig";
1057
+ }];
1058
+ };
1059
+ }, {
1060
+ "name": "userStake";
1061
+ "pda": {
1062
+ "seeds": [{
1063
+ "kind": "const";
1064
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
1065
+ }, {
1066
+ "kind": "account";
1067
+ "path": "config";
1068
+ }, {
1069
+ "kind": "account";
1070
+ "path": "staker";
1071
+ }];
1072
+ };
1073
+ }, {
1074
+ "name": "delegate";
1075
+ "writable": true;
1076
+ "pda": {
1077
+ "seeds": [{
1078
+ "kind": "const";
1079
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
1080
+ }, {
1081
+ "kind": "account";
1082
+ "path": "config";
1083
+ }, {
1084
+ "kind": "account";
1085
+ "path": "delegateWallet";
1086
+ }];
1087
+ };
1088
+ }, {
1089
+ "name": "systemProgram";
1090
+ "address": "11111111111111111111111111111111";
1091
+ }];
1092
+ args: [];
1093
+ } & {
1094
+ name: "addDelegate";
1095
+ }, {
1096
+ name: "staker";
1097
+ writable: true;
1098
+ signer: true;
1099
+ } | {
1100
+ name: "delegateWallet";
1101
+ signer: true;
1102
+ } | {
1103
+ name: "config";
1104
+ pda: {
1105
+ "seeds": [{
1106
+ "kind": "const";
1107
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
1108
+ }, {
1109
+ "kind": "account";
1110
+ "path": "config.token_mint";
1111
+ "account": "stakingConfig";
1112
+ }, {
1113
+ "kind": "account";
1114
+ "path": "config.nonce";
1115
+ "account": "stakingConfig";
1116
+ }];
1117
+ };
1118
+ } | {
1119
+ name: "userStake";
1120
+ pda: {
1121
+ "seeds": [{
1122
+ "kind": "const";
1123
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
1124
+ }, {
1125
+ "kind": "account";
1126
+ "path": "config";
1127
+ }, {
1128
+ "kind": "account";
1129
+ "path": "staker";
1130
+ }];
1131
+ };
1132
+ } | {
1133
+ name: "delegate";
1134
+ writable: true;
1135
+ pda: {
1136
+ "seeds": [{
1137
+ "kind": "const";
1138
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
1139
+ }, {
1140
+ "kind": "account";
1141
+ "path": "config";
1142
+ }, {
1143
+ "kind": "account";
1144
+ "path": "delegateWallet";
1145
+ }];
1146
+ };
1147
+ } | {
1148
+ name: "systemProgram";
1149
+ address: "11111111111111111111111111111111";
1150
+ }>;
1151
+ removeDelegate(staker: PublicKey, delegateWallet: PublicKey, tokenMint: PublicKey, nonce: number, options?: SVaultTxOptions): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods").MethodsBuilder<Svault, {
1152
+ name: "removeDelegate";
1153
+ discriminator: [94, 37, 16, 59, 7, 84, 97, 211];
1154
+ accounts: [{
1155
+ "name": "staker";
1156
+ "writable": true;
1157
+ "signer": true;
1158
+ }, {
1159
+ "name": "config";
1160
+ "pda": {
1161
+ "seeds": [{
1162
+ "kind": "const";
1163
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
1164
+ }, {
1165
+ "kind": "account";
1166
+ "path": "config.token_mint";
1167
+ "account": "stakingConfig";
1168
+ }, {
1169
+ "kind": "account";
1170
+ "path": "config.nonce";
1171
+ "account": "stakingConfig";
1172
+ }];
1173
+ };
1174
+ }, {
1175
+ "name": "delegate";
1176
+ "writable": true;
1177
+ "pda": {
1178
+ "seeds": [{
1179
+ "kind": "const";
1180
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
1181
+ }, {
1182
+ "kind": "account";
1183
+ "path": "config";
1184
+ }, {
1185
+ "kind": "account";
1186
+ "path": "delegate.delegate";
1187
+ "account": "delegate";
1188
+ }];
1189
+ };
1190
+ }];
1191
+ args: [];
1192
+ } & {
1193
+ name: "removeDelegate";
1194
+ }, {
1195
+ name: "staker";
1196
+ writable: true;
1197
+ signer: true;
1198
+ } | {
1199
+ name: "config";
1200
+ pda: {
1201
+ "seeds": [{
1202
+ "kind": "const";
1203
+ "value": [115, 116, 97, 107, 105, 110, 103, 95, 99, 111, 110, 102, 105, 103];
1204
+ }, {
1205
+ "kind": "account";
1206
+ "path": "config.token_mint";
1207
+ "account": "stakingConfig";
1208
+ }, {
1209
+ "kind": "account";
1210
+ "path": "config.nonce";
1211
+ "account": "stakingConfig";
1212
+ }];
1213
+ };
1214
+ } | {
1215
+ name: "delegate";
1216
+ writable: true;
1217
+ pda: {
1218
+ "seeds": [{
1219
+ "kind": "const";
1220
+ "value": [117, 115, 101, 114, 95, 115, 116, 97, 107, 101];
1221
+ }, {
1222
+ "kind": "account";
1223
+ "path": "config";
1224
+ }, {
1225
+ "kind": "account";
1226
+ "path": "delegate.delegate";
1227
+ "account": "delegate";
1228
+ }];
1229
+ };
1230
+ }>;
1231
+ }