@wireio/stake 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE.md +114 -0
  2. package/README.md +28 -0
  3. package/lib/stake.browser.js +6875 -0
  4. package/lib/stake.browser.js.map +1 -0
  5. package/lib/stake.d.ts +6759 -0
  6. package/lib/stake.js +7178 -0
  7. package/lib/stake.js.map +1 -0
  8. package/lib/stake.m.js +6875 -0
  9. package/lib/stake.m.js.map +1 -0
  10. package/package.json +102 -0
  11. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  12. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  13. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  14. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +330 -0
  15. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  16. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +449 -0
  17. package/src/assets/solana/idl/deposit.json +260 -0
  18. package/src/assets/solana/idl/distribution.json +736 -0
  19. package/src/assets/solana/idl/liq_sol_token.json +275 -0
  20. package/src/assets/solana/idl/stake_controller.json +1788 -0
  21. package/src/assets/solana/idl/stake_registry.json +435 -0
  22. package/src/assets/solana/idl/treasury.json +336 -0
  23. package/src/assets/solana/idl/validator_leaderboard.json +528 -0
  24. package/src/assets/solana/idl/validator_registry.json +418 -0
  25. package/src/assets/solana/idl/yield_oracle.json +32 -0
  26. package/src/assets/solana/types/deposit.ts +266 -0
  27. package/src/assets/solana/types/distribution.ts +742 -0
  28. package/src/assets/solana/types/liq_sol_token.ts +281 -0
  29. package/src/assets/solana/types/stake_controller.ts +1794 -0
  30. package/src/assets/solana/types/stake_registry.ts +441 -0
  31. package/src/assets/solana/types/treasury.ts +342 -0
  32. package/src/assets/solana/types/validator_leaderboard.ts +534 -0
  33. package/src/assets/solana/types/validator_registry.ts +424 -0
  34. package/src/assets/solana/types/yield_oracle.ts +38 -0
  35. package/src/index.ts +21 -0
  36. package/src/networks/ethereum/contract.ts +167 -0
  37. package/src/networks/ethereum/ethereum.ts +64 -0
  38. package/src/networks/ethereum/types.ts +6 -0
  39. package/src/networks/solana/clients/deposit.client.ts +178 -0
  40. package/src/networks/solana/clients/distribution.client.ts +230 -0
  41. package/src/networks/solana/clients/leaderboard.client.ts +179 -0
  42. package/src/networks/solana/constants.ts +73 -0
  43. package/src/networks/solana/program.ts +113 -0
  44. package/src/networks/solana/solana.ts +84 -0
  45. package/src/networks/solana/utils.ts +122 -0
  46. package/src/staker/staker.ts +38 -0
  47. package/src/staker/types.ts +26 -0
  48. package/src/utils.ts +9 -0
@@ -0,0 +1,1794 @@
1
+ /**
2
+ * Program IDL in camelCase format in order to be used in JS/TS.
3
+ *
4
+ * Note that this is only a type helper and is not the actual IDL. The original
5
+ * IDL can be found at `target/idl/stake_controller.json`.
6
+ */
7
+ export type StakeController = {
8
+ "address": "2BLSWVneoJAFXTDW2siQuEaZ7RUPTb9df482VChToK7K",
9
+ "metadata": {
10
+ "name": "stakeController",
11
+ "version": "0.1.0",
12
+ "spec": "0.1.0"
13
+ },
14
+ "instructions": [
15
+ {
16
+ "name": "claimUnstake",
17
+ "discriminator": [
18
+ 172,
19
+ 113,
20
+ 117,
21
+ 178,
22
+ 223,
23
+ 245,
24
+ 247,
25
+ 118
26
+ ],
27
+ "accounts": [
28
+ {
29
+ "name": "user",
30
+ "writable": true,
31
+ "signer": true
32
+ },
33
+ {
34
+ "name": "vault",
35
+ "writable": true,
36
+ "pda": {
37
+ "seeds": [
38
+ {
39
+ "kind": "const",
40
+ "value": [
41
+ 118,
42
+ 97,
43
+ 117,
44
+ 108,
45
+ 116
46
+ ]
47
+ }
48
+ ]
49
+ }
50
+ },
51
+ {
52
+ "name": "controllerState",
53
+ "writable": true,
54
+ "pda": {
55
+ "seeds": [
56
+ {
57
+ "kind": "const",
58
+ "value": [
59
+ 115,
60
+ 116,
61
+ 97,
62
+ 107,
63
+ 101,
64
+ 95,
65
+ 99,
66
+ 111,
67
+ 110,
68
+ 116,
69
+ 114,
70
+ 111,
71
+ 108,
72
+ 108,
73
+ 101,
74
+ 114
75
+ ]
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ ],
81
+ "args": [
82
+ {
83
+ "name": "ticketId",
84
+ "type": "u64"
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "name": "depositToReserve",
90
+ "discriminator": [
91
+ 8,
92
+ 79,
93
+ 123,
94
+ 129,
95
+ 146,
96
+ 140,
97
+ 178,
98
+ 128
99
+ ],
100
+ "accounts": [
101
+ {
102
+ "name": "depositor",
103
+ "writable": true,
104
+ "signer": true
105
+ },
106
+ {
107
+ "name": "reservePool",
108
+ "writable": true,
109
+ "pda": {
110
+ "seeds": [
111
+ {
112
+ "kind": "const",
113
+ "value": [
114
+ 114,
115
+ 101,
116
+ 115,
117
+ 101,
118
+ 114,
119
+ 118,
120
+ 101,
121
+ 95,
122
+ 112,
123
+ 111,
124
+ 111,
125
+ 108
126
+ ]
127
+ }
128
+ ]
129
+ }
130
+ },
131
+ {
132
+ "name": "vault",
133
+ "pda": {
134
+ "seeds": [
135
+ {
136
+ "kind": "const",
137
+ "value": [
138
+ 118,
139
+ 97,
140
+ 117,
141
+ 108,
142
+ 116
143
+ ]
144
+ }
145
+ ]
146
+ }
147
+ },
148
+ {
149
+ "name": "ephemeralStake",
150
+ "writable": true
151
+ },
152
+ {
153
+ "name": "controllerState",
154
+ "pda": {
155
+ "seeds": [
156
+ {
157
+ "kind": "const",
158
+ "value": [
159
+ 115,
160
+ 116,
161
+ 97,
162
+ 107,
163
+ 101,
164
+ 95,
165
+ 99,
166
+ 111,
167
+ 110,
168
+ 116,
169
+ 114,
170
+ 111,
171
+ 108,
172
+ 108,
173
+ 101,
174
+ 114
175
+ ]
176
+ }
177
+ ]
178
+ }
179
+ },
180
+ {
181
+ "name": "stakeProgram"
182
+ },
183
+ {
184
+ "name": "systemProgram",
185
+ "address": "11111111111111111111111111111111"
186
+ },
187
+ {
188
+ "name": "clock",
189
+ "address": "SysvarC1ock11111111111111111111111111111111"
190
+ },
191
+ {
192
+ "name": "stakeHistory"
193
+ },
194
+ {
195
+ "name": "rent",
196
+ "address": "SysvarRent111111111111111111111111111111111"
197
+ }
198
+ ],
199
+ "args": [
200
+ {
201
+ "name": "amount",
202
+ "type": "u64"
203
+ },
204
+ {
205
+ "name": "seed",
206
+ "type": "u32"
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "name": "distributeFromReserve",
212
+ "discriminator": [
213
+ 204,
214
+ 157,
215
+ 72,
216
+ 30,
217
+ 26,
218
+ 149,
219
+ 166,
220
+ 166
221
+ ],
222
+ "accounts": [
223
+ {
224
+ "name": "admin",
225
+ "writable": true,
226
+ "signer": true
227
+ },
228
+ {
229
+ "name": "reservePool",
230
+ "writable": true,
231
+ "pda": {
232
+ "seeds": [
233
+ {
234
+ "kind": "const",
235
+ "value": [
236
+ 114,
237
+ 101,
238
+ 115,
239
+ 101,
240
+ 114,
241
+ 118,
242
+ 101,
243
+ 95,
244
+ 112,
245
+ 111,
246
+ 111,
247
+ 108
248
+ ]
249
+ }
250
+ ]
251
+ }
252
+ },
253
+ {
254
+ "name": "vault",
255
+ "pda": {
256
+ "seeds": [
257
+ {
258
+ "kind": "const",
259
+ "value": [
260
+ 118,
261
+ 97,
262
+ 117,
263
+ 108,
264
+ 116
265
+ ]
266
+ }
267
+ ]
268
+ }
269
+ },
270
+ {
271
+ "name": "controllerState",
272
+ "pda": {
273
+ "seeds": [
274
+ {
275
+ "kind": "const",
276
+ "value": [
277
+ 115,
278
+ 116,
279
+ 97,
280
+ 107,
281
+ 101,
282
+ 95,
283
+ 99,
284
+ 111,
285
+ 110,
286
+ 116,
287
+ 114,
288
+ 111,
289
+ 108,
290
+ 108,
291
+ 101,
292
+ 114
293
+ ]
294
+ }
295
+ ]
296
+ }
297
+ },
298
+ {
299
+ "name": "validatorRegistry",
300
+ "writable": true
301
+ },
302
+ {
303
+ "name": "validatorRegistryProgram",
304
+ "address": "DqaNZkyhg6ASSkut8tyQGjwMtv35Yj5rA9JZvzmzZb3e"
305
+ },
306
+ {
307
+ "name": "stakeProgram"
308
+ },
309
+ {
310
+ "name": "systemProgram",
311
+ "address": "11111111111111111111111111111111"
312
+ },
313
+ {
314
+ "name": "clock",
315
+ "address": "SysvarC1ock11111111111111111111111111111111"
316
+ },
317
+ {
318
+ "name": "stakeHistory"
319
+ },
320
+ {
321
+ "name": "stakeConfig"
322
+ },
323
+ {
324
+ "name": "rent",
325
+ "address": "SysvarRent111111111111111111111111111111111"
326
+ }
327
+ ],
328
+ "args": [
329
+ {
330
+ "name": "validatorsCount",
331
+ "type": "u8"
332
+ }
333
+ ]
334
+ },
335
+ {
336
+ "name": "initialize",
337
+ "discriminator": [
338
+ 175,
339
+ 175,
340
+ 109,
341
+ 31,
342
+ 13,
343
+ 152,
344
+ 155,
345
+ 237
346
+ ],
347
+ "accounts": [
348
+ {
349
+ "name": "controllerState",
350
+ "writable": true,
351
+ "pda": {
352
+ "seeds": [
353
+ {
354
+ "kind": "const",
355
+ "value": [
356
+ 115,
357
+ 116,
358
+ 97,
359
+ 107,
360
+ 101,
361
+ 95,
362
+ 99,
363
+ 111,
364
+ 110,
365
+ 116,
366
+ 114,
367
+ 111,
368
+ 108,
369
+ 108,
370
+ 101,
371
+ 114
372
+ ]
373
+ }
374
+ ]
375
+ }
376
+ },
377
+ {
378
+ "name": "payer",
379
+ "writable": true,
380
+ "signer": true
381
+ },
382
+ {
383
+ "name": "authority",
384
+ "signer": true
385
+ },
386
+ {
387
+ "name": "systemProgram",
388
+ "address": "11111111111111111111111111111111"
389
+ }
390
+ ],
391
+ "args": []
392
+ },
393
+ {
394
+ "name": "initializeReservePool",
395
+ "discriminator": [
396
+ 4,
397
+ 7,
398
+ 171,
399
+ 131,
400
+ 156,
401
+ 172,
402
+ 150,
403
+ 220
404
+ ],
405
+ "accounts": [
406
+ {
407
+ "name": "reservePool",
408
+ "writable": true,
409
+ "pda": {
410
+ "seeds": [
411
+ {
412
+ "kind": "const",
413
+ "value": [
414
+ 114,
415
+ 101,
416
+ 115,
417
+ 101,
418
+ 114,
419
+ 118,
420
+ 101,
421
+ 95,
422
+ 112,
423
+ 111,
424
+ 111,
425
+ 108
426
+ ]
427
+ }
428
+ ]
429
+ }
430
+ },
431
+ {
432
+ "name": "vault",
433
+ "pda": {
434
+ "seeds": [
435
+ {
436
+ "kind": "const",
437
+ "value": [
438
+ 118,
439
+ 97,
440
+ 117,
441
+ 108,
442
+ 116
443
+ ]
444
+ }
445
+ ]
446
+ }
447
+ },
448
+ {
449
+ "name": "payer",
450
+ "writable": true,
451
+ "signer": true
452
+ },
453
+ {
454
+ "name": "controllerState",
455
+ "writable": true,
456
+ "pda": {
457
+ "seeds": [
458
+ {
459
+ "kind": "const",
460
+ "value": [
461
+ 115,
462
+ 116,
463
+ 97,
464
+ 107,
465
+ 101,
466
+ 95,
467
+ 99,
468
+ 111,
469
+ 110,
470
+ 116,
471
+ 114,
472
+ 111,
473
+ 108,
474
+ 108,
475
+ 101,
476
+ 114
477
+ ]
478
+ }
479
+ ]
480
+ }
481
+ },
482
+ {
483
+ "name": "stakeProgram",
484
+ "address": "Stake11111111111111111111111111111111111111"
485
+ },
486
+ {
487
+ "name": "systemProgram",
488
+ "address": "11111111111111111111111111111111"
489
+ },
490
+ {
491
+ "name": "rent",
492
+ "address": "SysvarRent111111111111111111111111111111111"
493
+ }
494
+ ],
495
+ "args": []
496
+ },
497
+ {
498
+ "name": "initializeVault",
499
+ "discriminator": [
500
+ 48,
501
+ 191,
502
+ 163,
503
+ 44,
504
+ 71,
505
+ 129,
506
+ 63,
507
+ 164
508
+ ],
509
+ "accounts": [
510
+ {
511
+ "name": "vault",
512
+ "writable": true,
513
+ "pda": {
514
+ "seeds": [
515
+ {
516
+ "kind": "const",
517
+ "value": [
518
+ 118,
519
+ 97,
520
+ 117,
521
+ 108,
522
+ 116
523
+ ]
524
+ }
525
+ ]
526
+ }
527
+ },
528
+ {
529
+ "name": "payer",
530
+ "writable": true,
531
+ "signer": true
532
+ },
533
+ {
534
+ "name": "controllerState",
535
+ "writable": true,
536
+ "pda": {
537
+ "seeds": [
538
+ {
539
+ "kind": "const",
540
+ "value": [
541
+ 115,
542
+ 116,
543
+ 97,
544
+ 107,
545
+ 101,
546
+ 95,
547
+ 99,
548
+ 111,
549
+ 110,
550
+ 116,
551
+ 114,
552
+ 111,
553
+ 108,
554
+ 108,
555
+ 101,
556
+ 114
557
+ ]
558
+ }
559
+ ]
560
+ }
561
+ },
562
+ {
563
+ "name": "treasuryProgram",
564
+ "address": "GJXKqEbdu76rRW6HcAVVupxdS3TetKfm7Dg8q3trHR8T"
565
+ },
566
+ {
567
+ "name": "treasury",
568
+ "writable": true,
569
+ "pda": {
570
+ "seeds": [
571
+ {
572
+ "kind": "const",
573
+ "value": [
574
+ 116,
575
+ 114,
576
+ 101,
577
+ 97,
578
+ 115,
579
+ 117,
580
+ 114,
581
+ 121
582
+ ]
583
+ }
584
+ ],
585
+ "program": {
586
+ "kind": "account",
587
+ "path": "treasuryProgram"
588
+ }
589
+ }
590
+ },
591
+ {
592
+ "name": "treasuryConfig",
593
+ "pda": {
594
+ "seeds": [
595
+ {
596
+ "kind": "const",
597
+ "value": [
598
+ 116,
599
+ 114,
600
+ 101,
601
+ 97,
602
+ 115,
603
+ 117,
604
+ 114,
605
+ 121,
606
+ 95,
607
+ 99,
608
+ 111,
609
+ 110,
610
+ 102,
611
+ 105,
612
+ 103
613
+ ]
614
+ }
615
+ ],
616
+ "program": {
617
+ "kind": "account",
618
+ "path": "treasuryProgram"
619
+ }
620
+ }
621
+ },
622
+ {
623
+ "name": "systemProgram",
624
+ "address": "11111111111111111111111111111111"
625
+ }
626
+ ],
627
+ "args": []
628
+ },
629
+ {
630
+ "name": "initializeYieldHistory",
631
+ "discriminator": [
632
+ 238,
633
+ 128,
634
+ 77,
635
+ 15,
636
+ 178,
637
+ 181,
638
+ 48,
639
+ 20
640
+ ],
641
+ "accounts": [
642
+ {
643
+ "name": "admin",
644
+ "writable": true,
645
+ "signer": true
646
+ },
647
+ {
648
+ "name": "yieldHistory",
649
+ "writable": true,
650
+ "pda": {
651
+ "seeds": [
652
+ {
653
+ "kind": "const",
654
+ "value": [
655
+ 121,
656
+ 105,
657
+ 101,
658
+ 108,
659
+ 100,
660
+ 95,
661
+ 104,
662
+ 105,
663
+ 115,
664
+ 116,
665
+ 111,
666
+ 114,
667
+ 121
668
+ ]
669
+ },
670
+ {
671
+ "kind": "arg",
672
+ "path": "validator"
673
+ }
674
+ ]
675
+ }
676
+ },
677
+ {
678
+ "name": "systemProgram",
679
+ "address": "11111111111111111111111111111111"
680
+ }
681
+ ],
682
+ "args": [
683
+ {
684
+ "name": "validator",
685
+ "type": "pubkey"
686
+ }
687
+ ]
688
+ },
689
+ {
690
+ "name": "markEpochResolved",
691
+ "discriminator": [
692
+ 48,
693
+ 60,
694
+ 35,
695
+ 201,
696
+ 188,
697
+ 9,
698
+ 93,
699
+ 14
700
+ ],
701
+ "accounts": [
702
+ {
703
+ "name": "admin",
704
+ "signer": true
705
+ },
706
+ {
707
+ "name": "validatorEpochInfo",
708
+ "writable": true,
709
+ "pda": {
710
+ "seeds": [
711
+ {
712
+ "kind": "const",
713
+ "value": [
714
+ 118,
715
+ 97,
716
+ 108,
717
+ 105,
718
+ 100,
719
+ 97,
720
+ 116,
721
+ 111,
722
+ 114,
723
+ 95,
724
+ 101,
725
+ 112,
726
+ 111,
727
+ 99,
728
+ 104,
729
+ 95,
730
+ 105,
731
+ 110,
732
+ 102,
733
+ 111
734
+ ]
735
+ },
736
+ {
737
+ "kind": "arg",
738
+ "path": "validator"
739
+ },
740
+ {
741
+ "kind": "arg",
742
+ "path": "epoch"
743
+ }
744
+ ]
745
+ }
746
+ }
747
+ ],
748
+ "args": [
749
+ {
750
+ "name": "validator",
751
+ "type": "pubkey"
752
+ },
753
+ {
754
+ "name": "epoch",
755
+ "type": "u64"
756
+ }
757
+ ]
758
+ },
759
+ {
760
+ "name": "mergeEpochStakesBatch",
761
+ "discriminator": [
762
+ 59,
763
+ 236,
764
+ 93,
765
+ 218,
766
+ 134,
767
+ 186,
768
+ 165,
769
+ 0
770
+ ],
771
+ "accounts": [
772
+ {
773
+ "name": "admin",
774
+ "writable": true,
775
+ "signer": true
776
+ },
777
+ {
778
+ "name": "vault",
779
+ "writable": true,
780
+ "pda": {
781
+ "seeds": [
782
+ {
783
+ "kind": "const",
784
+ "value": [
785
+ 118,
786
+ 97,
787
+ 117,
788
+ 108,
789
+ 116
790
+ ]
791
+ }
792
+ ]
793
+ }
794
+ },
795
+ {
796
+ "name": "mainValidatorStake",
797
+ "writable": true,
798
+ "pda": {
799
+ "seeds": [
800
+ {
801
+ "kind": "const",
802
+ "value": [
803
+ 109,
804
+ 97,
805
+ 105,
806
+ 110,
807
+ 95,
808
+ 115,
809
+ 116,
810
+ 97,
811
+ 107,
812
+ 101
813
+ ]
814
+ },
815
+ {
816
+ "kind": "arg",
817
+ "path": "validator"
818
+ }
819
+ ]
820
+ }
821
+ },
822
+ {
823
+ "name": "validatorEpochInfo",
824
+ "docs": [
825
+ "Epoch info account"
826
+ ],
827
+ "pda": {
828
+ "seeds": [
829
+ {
830
+ "kind": "const",
831
+ "value": [
832
+ 118,
833
+ 97,
834
+ 108,
835
+ 105,
836
+ 100,
837
+ 97,
838
+ 116,
839
+ 111,
840
+ 114,
841
+ 95,
842
+ 101,
843
+ 112,
844
+ 111,
845
+ 99,
846
+ 104,
847
+ 95,
848
+ 105,
849
+ 110,
850
+ 102,
851
+ 111
852
+ ]
853
+ },
854
+ {
855
+ "kind": "arg",
856
+ "path": "validator"
857
+ },
858
+ {
859
+ "kind": "arg",
860
+ "path": "epoch"
861
+ }
862
+ ]
863
+ }
864
+ },
865
+ {
866
+ "name": "validatorRegistry",
867
+ "docs": [
868
+ "Validator registry (mutable for updating stakes)"
869
+ ],
870
+ "writable": true
871
+ },
872
+ {
873
+ "name": "stakeProgram",
874
+ "address": "Stake11111111111111111111111111111111111111"
875
+ },
876
+ {
877
+ "name": "systemProgram",
878
+ "address": "11111111111111111111111111111111"
879
+ },
880
+ {
881
+ "name": "clock",
882
+ "address": "SysvarC1ock11111111111111111111111111111111"
883
+ },
884
+ {
885
+ "name": "stakeHistory"
886
+ },
887
+ {
888
+ "name": "rent",
889
+ "address": "SysvarRent111111111111111111111111111111111"
890
+ }
891
+ ],
892
+ "args": [
893
+ {
894
+ "name": "validator",
895
+ "type": "pubkey"
896
+ },
897
+ {
898
+ "name": "epoch",
899
+ "type": "u64"
900
+ },
901
+ {
902
+ "name": "stakeIndices",
903
+ "type": {
904
+ "vec": "u32"
905
+ }
906
+ }
907
+ ]
908
+ },
909
+ {
910
+ "name": "processUnstakeQueue",
911
+ "discriminator": [
912
+ 6,
913
+ 55,
914
+ 223,
915
+ 1,
916
+ 252,
917
+ 102,
918
+ 55,
919
+ 202
920
+ ],
921
+ "accounts": [
922
+ {
923
+ "name": "admin",
924
+ "writable": true,
925
+ "signer": true
926
+ },
927
+ {
928
+ "name": "controllerState",
929
+ "writable": true,
930
+ "pda": {
931
+ "seeds": [
932
+ {
933
+ "kind": "const",
934
+ "value": [
935
+ 115,
936
+ 116,
937
+ 97,
938
+ 107,
939
+ 101,
940
+ 95,
941
+ 99,
942
+ 111,
943
+ 110,
944
+ 116,
945
+ 114,
946
+ 111,
947
+ 108,
948
+ 108,
949
+ 101,
950
+ 114
951
+ ]
952
+ }
953
+ ]
954
+ }
955
+ },
956
+ {
957
+ "name": "vault",
958
+ "writable": true,
959
+ "pda": {
960
+ "seeds": [
961
+ {
962
+ "kind": "const",
963
+ "value": [
964
+ 118,
965
+ 97,
966
+ 117,
967
+ 108,
968
+ 116
969
+ ]
970
+ }
971
+ ]
972
+ }
973
+ }
974
+ ],
975
+ "args": []
976
+ },
977
+ {
978
+ "name": "requestUnstake",
979
+ "discriminator": [
980
+ 44,
981
+ 154,
982
+ 110,
983
+ 253,
984
+ 160,
985
+ 202,
986
+ 54,
987
+ 34
988
+ ],
989
+ "accounts": [
990
+ {
991
+ "name": "user",
992
+ "writable": true,
993
+ "signer": true
994
+ },
995
+ {
996
+ "name": "controllerState",
997
+ "writable": true,
998
+ "pda": {
999
+ "seeds": [
1000
+ {
1001
+ "kind": "const",
1002
+ "value": [
1003
+ 115,
1004
+ 116,
1005
+ 97,
1006
+ 107,
1007
+ 101,
1008
+ 95,
1009
+ 99,
1010
+ 111,
1011
+ 110,
1012
+ 116,
1013
+ 114,
1014
+ 111,
1015
+ 108,
1016
+ 108,
1017
+ 101,
1018
+ 114
1019
+ ]
1020
+ }
1021
+ ]
1022
+ }
1023
+ }
1024
+ ],
1025
+ "args": [
1026
+ {
1027
+ "name": "amount",
1028
+ "type": "u64"
1029
+ }
1030
+ ]
1031
+ },
1032
+ {
1033
+ "name": "skimDeactivated",
1034
+ "discriminator": [
1035
+ 133,
1036
+ 188,
1037
+ 72,
1038
+ 50,
1039
+ 24,
1040
+ 209,
1041
+ 118,
1042
+ 50
1043
+ ],
1044
+ "accounts": [
1045
+ {
1046
+ "name": "admin",
1047
+ "writable": true,
1048
+ "signer": true
1049
+ },
1050
+ {
1051
+ "name": "vault",
1052
+ "writable": true,
1053
+ "pda": {
1054
+ "seeds": [
1055
+ {
1056
+ "kind": "const",
1057
+ "value": [
1058
+ 118,
1059
+ 97,
1060
+ 117,
1061
+ 108,
1062
+ 116
1063
+ ]
1064
+ }
1065
+ ]
1066
+ }
1067
+ },
1068
+ {
1069
+ "name": "deactivatingTransient",
1070
+ "writable": true
1071
+ },
1072
+ {
1073
+ "name": "validatorVote"
1074
+ },
1075
+ {
1076
+ "name": "stakeProgram",
1077
+ "address": "Stake11111111111111111111111111111111111111"
1078
+ },
1079
+ {
1080
+ "name": "clock",
1081
+ "address": "SysvarC1ock11111111111111111111111111111111"
1082
+ },
1083
+ {
1084
+ "name": "stakeHistory"
1085
+ }
1086
+ ],
1087
+ "args": []
1088
+ },
1089
+ {
1090
+ "name": "syncValidatorStakes",
1091
+ "discriminator": [
1092
+ 40,
1093
+ 56,
1094
+ 118,
1095
+ 52,
1096
+ 20,
1097
+ 213,
1098
+ 229,
1099
+ 135
1100
+ ],
1101
+ "accounts": [
1102
+ {
1103
+ "name": "admin",
1104
+ "signer": true
1105
+ },
1106
+ {
1107
+ "name": "mainValidatorStake",
1108
+ "pda": {
1109
+ "seeds": [
1110
+ {
1111
+ "kind": "const",
1112
+ "value": [
1113
+ 109,
1114
+ 97,
1115
+ 105,
1116
+ 110,
1117
+ 95,
1118
+ 115,
1119
+ 116,
1120
+ 97,
1121
+ 107,
1122
+ 101
1123
+ ]
1124
+ },
1125
+ {
1126
+ "kind": "arg",
1127
+ "path": "validator"
1128
+ }
1129
+ ]
1130
+ }
1131
+ },
1132
+ {
1133
+ "name": "validatorRegistry",
1134
+ "writable": true
1135
+ }
1136
+ ],
1137
+ "args": [
1138
+ {
1139
+ "name": "validator",
1140
+ "type": "pubkey"
1141
+ }
1142
+ ]
1143
+ },
1144
+ {
1145
+ "name": "updateYieldHistory",
1146
+ "discriminator": [
1147
+ 105,
1148
+ 49,
1149
+ 85,
1150
+ 192,
1151
+ 14,
1152
+ 146,
1153
+ 32,
1154
+ 64
1155
+ ],
1156
+ "accounts": [
1157
+ {
1158
+ "name": "admin",
1159
+ "signer": true
1160
+ },
1161
+ {
1162
+ "name": "yieldHistory",
1163
+ "writable": true,
1164
+ "pda": {
1165
+ "seeds": [
1166
+ {
1167
+ "kind": "const",
1168
+ "value": [
1169
+ 121,
1170
+ 105,
1171
+ 101,
1172
+ 108,
1173
+ 100,
1174
+ 95,
1175
+ 104,
1176
+ 105,
1177
+ 115,
1178
+ 116,
1179
+ 111,
1180
+ 114,
1181
+ 121
1182
+ ]
1183
+ },
1184
+ {
1185
+ "kind": "arg",
1186
+ "path": "validator"
1187
+ }
1188
+ ]
1189
+ }
1190
+ },
1191
+ {
1192
+ "name": "validatorRegistry",
1193
+ "docs": [
1194
+ "Validator registry that contains the validator info"
1195
+ ]
1196
+ }
1197
+ ],
1198
+ "args": [
1199
+ {
1200
+ "name": "validator",
1201
+ "type": "pubkey"
1202
+ },
1203
+ {
1204
+ "name": "rewardsEarned",
1205
+ "type": "u64"
1206
+ }
1207
+ ]
1208
+ }
1209
+ ],
1210
+ "accounts": [
1211
+ {
1212
+ "name": "stakeControllerState",
1213
+ "discriminator": [
1214
+ 218,
1215
+ 168,
1216
+ 114,
1217
+ 136,
1218
+ 80,
1219
+ 186,
1220
+ 29,
1221
+ 218
1222
+ ]
1223
+ },
1224
+ {
1225
+ "name": "treasuryConfig",
1226
+ "discriminator": [
1227
+ 124,
1228
+ 54,
1229
+ 212,
1230
+ 227,
1231
+ 213,
1232
+ 189,
1233
+ 168,
1234
+ 41
1235
+ ]
1236
+ },
1237
+ {
1238
+ "name": "validatorEpochInfo",
1239
+ "discriminator": [
1240
+ 242,
1241
+ 22,
1242
+ 169,
1243
+ 20,
1244
+ 113,
1245
+ 82,
1246
+ 73,
1247
+ 139
1248
+ ]
1249
+ },
1250
+ {
1251
+ "name": "validatorRegistry",
1252
+ "discriminator": [
1253
+ 168,
1254
+ 113,
1255
+ 195,
1256
+ 186,
1257
+ 62,
1258
+ 121,
1259
+ 163,
1260
+ 230
1261
+ ]
1262
+ },
1263
+ {
1264
+ "name": "validatorYieldHistory",
1265
+ "discriminator": [
1266
+ 236,
1267
+ 4,
1268
+ 64,
1269
+ 157,
1270
+ 209,
1271
+ 103,
1272
+ 197,
1273
+ 75
1274
+ ]
1275
+ }
1276
+ ],
1277
+ "events": [
1278
+ {
1279
+ "name": "epochResolved",
1280
+ "discriminator": [
1281
+ 62,
1282
+ 81,
1283
+ 212,
1284
+ 223,
1285
+ 209,
1286
+ 104,
1287
+ 51,
1288
+ 65
1289
+ ]
1290
+ },
1291
+ {
1292
+ "name": "stakesMerged",
1293
+ "discriminator": [
1294
+ 3,
1295
+ 16,
1296
+ 51,
1297
+ 153,
1298
+ 152,
1299
+ 186,
1300
+ 19,
1301
+ 97
1302
+ ]
1303
+ },
1304
+ {
1305
+ "name": "yieldHistoryUpdated",
1306
+ "discriminator": [
1307
+ 96,
1308
+ 28,
1309
+ 163,
1310
+ 1,
1311
+ 10,
1312
+ 117,
1313
+ 83,
1314
+ 152
1315
+ ]
1316
+ }
1317
+ ],
1318
+ "errors": [
1319
+ {
1320
+ "code": 6000,
1321
+ "name": "insufficientFunds",
1322
+ "msg": "Insufficient funds"
1323
+ },
1324
+ {
1325
+ "code": 6001,
1326
+ "name": "invalidValidator",
1327
+ "msg": "Invalid validator"
1328
+ },
1329
+ {
1330
+ "code": 6002,
1331
+ "name": "noSuitableValidator",
1332
+ "msg": "No suitable validator found"
1333
+ },
1334
+ {
1335
+ "code": 6003,
1336
+ "name": "ticketNotFound",
1337
+ "msg": "Unstake ticket not found"
1338
+ },
1339
+ {
1340
+ "code": 6004,
1341
+ "name": "ticketNotClaimable",
1342
+ "msg": "Ticket not claimable yet"
1343
+ },
1344
+ {
1345
+ "code": 6005,
1346
+ "name": "unauthorized",
1347
+ "msg": "unauthorized"
1348
+ },
1349
+ {
1350
+ "code": 6006,
1351
+ "name": "arithmeticOverflow",
1352
+ "msg": "Arithmetic overflow"
1353
+ },
1354
+ {
1355
+ "code": 6007,
1356
+ "name": "accountAlreadyExists",
1357
+ "msg": "Account already exists"
1358
+ },
1359
+ {
1360
+ "code": 6008,
1361
+ "name": "invalidStakeAccount",
1362
+ "msg": "Invalid stake account"
1363
+ },
1364
+ {
1365
+ "code": 6009,
1366
+ "name": "invalidThreshold",
1367
+ "msg": "Invalid threshold value"
1368
+ },
1369
+ {
1370
+ "code": 6010,
1371
+ "name": "invalidAccountData",
1372
+ "msg": "Invalid account data"
1373
+ },
1374
+ {
1375
+ "code": 6011,
1376
+ "name": "invalidVoteAccount",
1377
+ "msg": "Invalid vote account"
1378
+ },
1379
+ {
1380
+ "code": 6012,
1381
+ "name": "stakesNotYetActive",
1382
+ "msg": "Stakes not yet active"
1383
+ },
1384
+ {
1385
+ "code": 6013,
1386
+ "name": "invalidEpoch",
1387
+ "msg": "Invalid epoch"
1388
+ },
1389
+ {
1390
+ "code": 6014,
1391
+ "name": "epochAlreadyResolved",
1392
+ "msg": "Epoch already resolved"
1393
+ },
1394
+ {
1395
+ "code": 6015,
1396
+ "name": "mergeFailed",
1397
+ "msg": "Merge failed"
1398
+ },
1399
+ {
1400
+ "code": 6016,
1401
+ "name": "reservePoolNotInitialized",
1402
+ "msg": "Reserve pool not initialized"
1403
+ },
1404
+ {
1405
+ "code": 6017,
1406
+ "name": "invalidEphemeralAccount",
1407
+ "msg": "Invalid ephemeral account"
1408
+ }
1409
+ ],
1410
+ "types": [
1411
+ {
1412
+ "name": "epochResolved",
1413
+ "type": {
1414
+ "kind": "struct",
1415
+ "fields": [
1416
+ {
1417
+ "name": "validator",
1418
+ "type": "pubkey"
1419
+ },
1420
+ {
1421
+ "name": "epoch",
1422
+ "type": "u64"
1423
+ },
1424
+ {
1425
+ "name": "totalStakeAmount",
1426
+ "type": "u64"
1427
+ },
1428
+ {
1429
+ "name": "maxIndex",
1430
+ "type": "u32"
1431
+ }
1432
+ ]
1433
+ }
1434
+ },
1435
+ {
1436
+ "name": "stakeControllerState",
1437
+ "type": {
1438
+ "kind": "struct",
1439
+ "fields": [
1440
+ {
1441
+ "name": "authority",
1442
+ "type": "pubkey"
1443
+ },
1444
+ {
1445
+ "name": "vaultInitialized",
1446
+ "type": "bool"
1447
+ },
1448
+ {
1449
+ "name": "reservePoolInitialized",
1450
+ "type": "bool"
1451
+ },
1452
+ {
1453
+ "name": "nextTicketId",
1454
+ "type": "u64"
1455
+ },
1456
+ {
1457
+ "name": "totalPendingUnstake",
1458
+ "type": "u64"
1459
+ },
1460
+ {
1461
+ "name": "unstakeTickets",
1462
+ "type": {
1463
+ "vec": {
1464
+ "defined": {
1465
+ "name": "unstakeTicket"
1466
+ }
1467
+ }
1468
+ }
1469
+ },
1470
+ {
1471
+ "name": "bump",
1472
+ "type": "u8"
1473
+ }
1474
+ ]
1475
+ }
1476
+ },
1477
+ {
1478
+ "name": "stakesMerged",
1479
+ "type": {
1480
+ "kind": "struct",
1481
+ "fields": [
1482
+ {
1483
+ "name": "validator",
1484
+ "type": "pubkey"
1485
+ },
1486
+ {
1487
+ "name": "epoch",
1488
+ "type": "u64"
1489
+ },
1490
+ {
1491
+ "name": "count",
1492
+ "type": "u32"
1493
+ },
1494
+ {
1495
+ "name": "amount",
1496
+ "type": "u64"
1497
+ }
1498
+ ]
1499
+ }
1500
+ },
1501
+ {
1502
+ "name": "treasuryConfig",
1503
+ "type": {
1504
+ "kind": "struct",
1505
+ "fields": [
1506
+ {
1507
+ "name": "authorities",
1508
+ "type": {
1509
+ "vec": "pubkey"
1510
+ }
1511
+ },
1512
+ {
1513
+ "name": "bump",
1514
+ "type": "u8"
1515
+ }
1516
+ ]
1517
+ }
1518
+ },
1519
+ {
1520
+ "name": "unstakeStatus",
1521
+ "type": {
1522
+ "kind": "enum",
1523
+ "variants": [
1524
+ {
1525
+ "name": "pending"
1526
+ },
1527
+ {
1528
+ "name": "processing"
1529
+ },
1530
+ {
1531
+ "name": "claimable"
1532
+ },
1533
+ {
1534
+ "name": "claimed"
1535
+ }
1536
+ ]
1537
+ }
1538
+ },
1539
+ {
1540
+ "name": "unstakeTicket",
1541
+ "type": {
1542
+ "kind": "struct",
1543
+ "fields": [
1544
+ {
1545
+ "name": "ticketId",
1546
+ "type": "u64"
1547
+ },
1548
+ {
1549
+ "name": "owner",
1550
+ "type": "pubkey"
1551
+ },
1552
+ {
1553
+ "name": "amount",
1554
+ "type": "u64"
1555
+ },
1556
+ {
1557
+ "name": "validator",
1558
+ "type": "pubkey"
1559
+ },
1560
+ {
1561
+ "name": "createdEpoch",
1562
+ "type": "u64"
1563
+ },
1564
+ {
1565
+ "name": "deactivationStartEpoch",
1566
+ "type": {
1567
+ "option": "u64"
1568
+ }
1569
+ },
1570
+ {
1571
+ "name": "status",
1572
+ "type": {
1573
+ "defined": {
1574
+ "name": "unstakeStatus"
1575
+ }
1576
+ }
1577
+ }
1578
+ ]
1579
+ }
1580
+ },
1581
+ {
1582
+ "name": "validatorEpochInfo",
1583
+ "type": {
1584
+ "kind": "struct",
1585
+ "fields": [
1586
+ {
1587
+ "name": "epoch",
1588
+ "type": "u64"
1589
+ },
1590
+ {
1591
+ "name": "maxIndex",
1592
+ "type": "u32"
1593
+ },
1594
+ {
1595
+ "name": "resolved",
1596
+ "type": "bool"
1597
+ },
1598
+ {
1599
+ "name": "totalStakeAmount",
1600
+ "type": "u64"
1601
+ },
1602
+ {
1603
+ "name": "rewardsEarned",
1604
+ "type": "u64"
1605
+ },
1606
+ {
1607
+ "name": "bump",
1608
+ "type": "u8"
1609
+ }
1610
+ ]
1611
+ }
1612
+ },
1613
+ {
1614
+ "name": "validatorInfo",
1615
+ "type": {
1616
+ "kind": "struct",
1617
+ "fields": [
1618
+ {
1619
+ "name": "voteAccount",
1620
+ "type": "pubkey"
1621
+ },
1622
+ {
1623
+ "name": "name",
1624
+ "type": {
1625
+ "array": [
1626
+ "u8",
1627
+ 32
1628
+ ]
1629
+ }
1630
+ },
1631
+ {
1632
+ "name": "performanceScore",
1633
+ "type": "u32"
1634
+ },
1635
+ {
1636
+ "name": "activeStake",
1637
+ "type": "u64"
1638
+ },
1639
+ {
1640
+ "name": "activatingStake",
1641
+ "type": "u64"
1642
+ },
1643
+ {
1644
+ "name": "deactivatingStake",
1645
+ "type": "u64"
1646
+ },
1647
+ {
1648
+ "name": "commission",
1649
+ "type": "u64"
1650
+ },
1651
+ {
1652
+ "name": "lastUpdatedEpoch",
1653
+ "type": "u64"
1654
+ },
1655
+ {
1656
+ "name": "initialStake",
1657
+ "type": "u64"
1658
+ },
1659
+ {
1660
+ "name": "previousEpochActiveStake",
1661
+ "type": "u64"
1662
+ },
1663
+ {
1664
+ "name": "previousEpochSnapshot",
1665
+ "type": "u64"
1666
+ }
1667
+ ]
1668
+ }
1669
+ },
1670
+ {
1671
+ "name": "validatorRegistry",
1672
+ "type": {
1673
+ "kind": "struct",
1674
+ "fields": [
1675
+ {
1676
+ "name": "authority",
1677
+ "type": "pubkey"
1678
+ },
1679
+ {
1680
+ "name": "validators",
1681
+ "type": {
1682
+ "vec": {
1683
+ "defined": {
1684
+ "name": "validatorInfo"
1685
+ }
1686
+ }
1687
+ }
1688
+ },
1689
+ {
1690
+ "name": "lastUpdateEpoch",
1691
+ "type": "u64"
1692
+ },
1693
+ {
1694
+ "name": "bump",
1695
+ "type": "u8"
1696
+ }
1697
+ ]
1698
+ }
1699
+ },
1700
+ {
1701
+ "name": "validatorYieldHistory",
1702
+ "type": {
1703
+ "kind": "struct",
1704
+ "fields": [
1705
+ {
1706
+ "name": "validator",
1707
+ "type": "pubkey"
1708
+ },
1709
+ {
1710
+ "name": "currentIndex",
1711
+ "type": "u8"
1712
+ },
1713
+ {
1714
+ "name": "entries",
1715
+ "type": {
1716
+ "array": [
1717
+ {
1718
+ "defined": {
1719
+ "name": "yieldEntry"
1720
+ }
1721
+ },
1722
+ 20
1723
+ ]
1724
+ }
1725
+ },
1726
+ {
1727
+ "name": "lastSnapshotEpoch",
1728
+ "type": "u64"
1729
+ },
1730
+ {
1731
+ "name": "lastSnapshotStake",
1732
+ "type": "u64"
1733
+ },
1734
+ {
1735
+ "name": "bump",
1736
+ "type": "u8"
1737
+ }
1738
+ ]
1739
+ }
1740
+ },
1741
+ {
1742
+ "name": "yieldEntry",
1743
+ "type": {
1744
+ "kind": "struct",
1745
+ "fields": [
1746
+ {
1747
+ "name": "epoch",
1748
+ "type": "u64"
1749
+ },
1750
+ {
1751
+ "name": "apyBps",
1752
+ "type": "u32"
1753
+ },
1754
+ {
1755
+ "name": "rewardsEarned",
1756
+ "type": "u64"
1757
+ },
1758
+ {
1759
+ "name": "activeStake",
1760
+ "type": "u64"
1761
+ },
1762
+ {
1763
+ "name": "isValid",
1764
+ "type": "bool"
1765
+ }
1766
+ ]
1767
+ }
1768
+ },
1769
+ {
1770
+ "name": "yieldHistoryUpdated",
1771
+ "type": {
1772
+ "kind": "struct",
1773
+ "fields": [
1774
+ {
1775
+ "name": "validator",
1776
+ "type": "pubkey"
1777
+ },
1778
+ {
1779
+ "name": "epoch",
1780
+ "type": "u64"
1781
+ },
1782
+ {
1783
+ "name": "apyBps",
1784
+ "type": "u32"
1785
+ },
1786
+ {
1787
+ "name": "rewardsEarned",
1788
+ "type": "u64"
1789
+ }
1790
+ ]
1791
+ }
1792
+ }
1793
+ ]
1794
+ };