lfx-reward-back-sdk 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.
@@ -0,0 +1,1004 @@
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/lfx_reward_sc.json`.
6
+ */
7
+ export type LfxRewardSc = {
8
+ "address": "rwDAq5g55oUWSve43iiijTwebCe6NrPAJQ3ftpJ1tC1";
9
+ "metadata": {
10
+ "name": "lfxRewardSc";
11
+ "version": "0.1.0";
12
+ "spec": "0.1.0";
13
+ "description": "LFX Reward Smart Contract";
14
+ "repository": "https://github.com/LIFENetworks/lfx_reward_sc";
15
+ };
16
+ "instructions": [
17
+ {
18
+ "name": "claimReward";
19
+ "docs": [
20
+ "User",
21
+ "Claim reward tokens (user + API signer)."
22
+ ];
23
+ "discriminator": [
24
+ 149,
25
+ 95,
26
+ 181,
27
+ 242,
28
+ 94,
29
+ 90,
30
+ 158,
31
+ 162
32
+ ];
33
+ "accounts": [
34
+ {
35
+ "name": "user";
36
+ "docs": [
37
+ "User who receives the reward"
38
+ ];
39
+ "writable": true;
40
+ "signer": true;
41
+ },
42
+ {
43
+ "name": "api";
44
+ "docs": [
45
+ "API wallet that authorizes the reward amount off-chain"
46
+ ];
47
+ "writable": true;
48
+ "signer": true;
49
+ },
50
+ {
51
+ "name": "userTokenAccount";
52
+ "docs": [
53
+ "User's associated token account for the reward mint"
54
+ ];
55
+ "writable": true;
56
+ },
57
+ {
58
+ "name": "vaultTokenAccount";
59
+ "docs": [
60
+ "Vault token account PDA (Token-2022)"
61
+ ];
62
+ "writable": true;
63
+ "pda": {
64
+ "seeds": [
65
+ {
66
+ "kind": "const";
67
+ "value": [
68
+ 118,
69
+ 97,
70
+ 117,
71
+ 108,
72
+ 116
73
+ ];
74
+ }
75
+ ];
76
+ };
77
+ },
78
+ {
79
+ "name": "mint";
80
+ "docs": [
81
+ "Reward token mint (Token-2022)"
82
+ ];
83
+ "writable": true;
84
+ },
85
+ {
86
+ "name": "globalInfo";
87
+ "docs": [
88
+ "Global config PDA"
89
+ ];
90
+ "writable": true;
91
+ "pda": {
92
+ "seeds": [
93
+ {
94
+ "kind": "const";
95
+ "value": [
96
+ 103,
97
+ 108,
98
+ 111,
99
+ 98,
100
+ 97,
101
+ 108
102
+ ];
103
+ }
104
+ ];
105
+ };
106
+ },
107
+ {
108
+ "name": "tokenProgram";
109
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
110
+ },
111
+ {
112
+ "name": "systemProgram";
113
+ "address": "11111111111111111111111111111111";
114
+ }
115
+ ];
116
+ "args": [
117
+ {
118
+ "name": "args";
119
+ "type": {
120
+ "defined": {
121
+ "name": "claimRewardArgs";
122
+ };
123
+ };
124
+ }
125
+ ];
126
+ },
127
+ {
128
+ "name": "depositTokens";
129
+ "docs": [
130
+ "Deposit reward tokens into the vault."
131
+ ];
132
+ "discriminator": [
133
+ 176,
134
+ 83,
135
+ 229,
136
+ 18,
137
+ 191,
138
+ 143,
139
+ 176,
140
+ 150
141
+ ];
142
+ "accounts": [
143
+ {
144
+ "name": "admin";
145
+ "writable": true;
146
+ "signer": true;
147
+ },
148
+ {
149
+ "name": "adminTokenAccount";
150
+ "writable": true;
151
+ },
152
+ {
153
+ "name": "vaultTokenAccount";
154
+ "writable": true;
155
+ "pda": {
156
+ "seeds": [
157
+ {
158
+ "kind": "const";
159
+ "value": [
160
+ 118,
161
+ 97,
162
+ 117,
163
+ 108,
164
+ 116
165
+ ];
166
+ }
167
+ ];
168
+ };
169
+ },
170
+ {
171
+ "name": "mint";
172
+ "writable": true;
173
+ },
174
+ {
175
+ "name": "globalInfo";
176
+ "writable": true;
177
+ "pda": {
178
+ "seeds": [
179
+ {
180
+ "kind": "const";
181
+ "value": [
182
+ 103,
183
+ 108,
184
+ 111,
185
+ 98,
186
+ 97,
187
+ 108
188
+ ];
189
+ }
190
+ ];
191
+ };
192
+ },
193
+ {
194
+ "name": "tokenProgram";
195
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
196
+ },
197
+ {
198
+ "name": "systemProgram";
199
+ "address": "11111111111111111111111111111111";
200
+ }
201
+ ];
202
+ "args": [
203
+ {
204
+ "name": "args";
205
+ "type": {
206
+ "defined": {
207
+ "name": "depositTokensArgs";
208
+ };
209
+ };
210
+ }
211
+ ];
212
+ },
213
+ {
214
+ "name": "initGlobalInfo";
215
+ "docs": [
216
+ "Admin",
217
+ "Initialize global reward configuration and vault."
218
+ ];
219
+ "discriminator": [
220
+ 181,
221
+ 239,
222
+ 139,
223
+ 80,
224
+ 66,
225
+ 140,
226
+ 67,
227
+ 140
228
+ ];
229
+ "accounts": [
230
+ {
231
+ "name": "initWallet";
232
+ "docs": [
233
+ "Init wallet signer (must match hardcoded INIT_WALLET_ADDRESS)"
234
+ ];
235
+ "writable": true;
236
+ "signer": true;
237
+ },
238
+ {
239
+ "name": "globalInfo";
240
+ "docs": [
241
+ "Global config PDA"
242
+ ];
243
+ "writable": true;
244
+ "pda": {
245
+ "seeds": [
246
+ {
247
+ "kind": "const";
248
+ "value": [
249
+ 103,
250
+ 108,
251
+ 111,
252
+ 98,
253
+ 97,
254
+ 108
255
+ ];
256
+ }
257
+ ];
258
+ };
259
+ },
260
+ {
261
+ "name": "vaultTokenAccount";
262
+ "docs": [
263
+ "Vault token account PDA (Token-2022)"
264
+ ];
265
+ "writable": true;
266
+ "pda": {
267
+ "seeds": [
268
+ {
269
+ "kind": "const";
270
+ "value": [
271
+ 118,
272
+ 97,
273
+ 117,
274
+ 108,
275
+ 116
276
+ ];
277
+ }
278
+ ];
279
+ };
280
+ },
281
+ {
282
+ "name": "mint";
283
+ "docs": [
284
+ "Reward token mint (Token-2022)"
285
+ ];
286
+ },
287
+ {
288
+ "name": "tokenProgram";
289
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
290
+ },
291
+ {
292
+ "name": "systemProgram";
293
+ "address": "11111111111111111111111111111111";
294
+ }
295
+ ];
296
+ "args": [
297
+ {
298
+ "name": "args";
299
+ "type": {
300
+ "defined": {
301
+ "name": "initGlobalInfoArgs";
302
+ };
303
+ };
304
+ }
305
+ ];
306
+ },
307
+ {
308
+ "name": "startWithdrawalVote";
309
+ "docs": [
310
+ "Start a withdrawal wallet change vote."
311
+ ];
312
+ "discriminator": [
313
+ 151,
314
+ 141,
315
+ 194,
316
+ 115,
317
+ 123,
318
+ 127,
319
+ 181,
320
+ 186
321
+ ];
322
+ "accounts": [
323
+ {
324
+ "name": "admin";
325
+ "writable": true;
326
+ "signer": true;
327
+ },
328
+ {
329
+ "name": "globalInfo";
330
+ "writable": true;
331
+ "pda": {
332
+ "seeds": [
333
+ {
334
+ "kind": "const";
335
+ "value": [
336
+ 103,
337
+ 108,
338
+ 111,
339
+ 98,
340
+ 97,
341
+ 108
342
+ ];
343
+ }
344
+ ];
345
+ };
346
+ },
347
+ {
348
+ "name": "withdrawalVote";
349
+ "docs": [
350
+ "Global withdrawal vote PDA (single instance for the program)"
351
+ ];
352
+ "writable": true;
353
+ "pda": {
354
+ "seeds": [
355
+ {
356
+ "kind": "const";
357
+ "value": [
358
+ 119,
359
+ 105,
360
+ 116,
361
+ 104,
362
+ 100,
363
+ 114,
364
+ 97,
365
+ 119,
366
+ 97,
367
+ 108,
368
+ 95,
369
+ 118,
370
+ 111,
371
+ 116,
372
+ 101
373
+ ];
374
+ }
375
+ ];
376
+ };
377
+ },
378
+ {
379
+ "name": "systemProgram";
380
+ "address": "11111111111111111111111111111111";
381
+ }
382
+ ];
383
+ "args": [
384
+ {
385
+ "name": "args";
386
+ "type": {
387
+ "defined": {
388
+ "name": "startWithdrawalVoteArgs";
389
+ };
390
+ };
391
+ }
392
+ ];
393
+ },
394
+ {
395
+ "name": "updateGlobalInfo";
396
+ "docs": [
397
+ "Update global configuration (admin/api/internal multisig/emergency)."
398
+ ];
399
+ "discriminator": [
400
+ 84,
401
+ 172,
402
+ 119,
403
+ 223,
404
+ 36,
405
+ 64,
406
+ 248,
407
+ 180
408
+ ];
409
+ "accounts": [
410
+ {
411
+ "name": "admin";
412
+ "writable": true;
413
+ "signer": true;
414
+ },
415
+ {
416
+ "name": "globalInfo";
417
+ "writable": true;
418
+ "pda": {
419
+ "seeds": [
420
+ {
421
+ "kind": "const";
422
+ "value": [
423
+ 103,
424
+ 108,
425
+ 111,
426
+ 98,
427
+ 97,
428
+ 108
429
+ ];
430
+ }
431
+ ];
432
+ };
433
+ }
434
+ ];
435
+ "args": [
436
+ {
437
+ "name": "args";
438
+ "type": {
439
+ "defined": {
440
+ "name": "updateGlobalInfoArgs";
441
+ };
442
+ };
443
+ }
444
+ ];
445
+ },
446
+ {
447
+ "name": "voteWithdrawalWallet";
448
+ "docs": [
449
+ "Cast a vote for the current withdrawal wallet change proposal."
450
+ ];
451
+ "discriminator": [
452
+ 135,
453
+ 181,
454
+ 210,
455
+ 66,
456
+ 195,
457
+ 178,
458
+ 72,
459
+ 7
460
+ ];
461
+ "accounts": [
462
+ {
463
+ "name": "voter";
464
+ "docs": [
465
+ "One of the internal multisig wallets (must match one of the entries in global_info.internal_multisig_wallets)"
466
+ ];
467
+ "signer": true;
468
+ },
469
+ {
470
+ "name": "globalInfo";
471
+ "writable": true;
472
+ "pda": {
473
+ "seeds": [
474
+ {
475
+ "kind": "const";
476
+ "value": [
477
+ 103,
478
+ 108,
479
+ 111,
480
+ 98,
481
+ 97,
482
+ 108
483
+ ];
484
+ }
485
+ ];
486
+ };
487
+ },
488
+ {
489
+ "name": "withdrawalVote";
490
+ "writable": true;
491
+ "pda": {
492
+ "seeds": [
493
+ {
494
+ "kind": "const";
495
+ "value": [
496
+ 119,
497
+ 105,
498
+ 116,
499
+ 104,
500
+ 100,
501
+ 114,
502
+ 97,
503
+ 119,
504
+ 97,
505
+ 108,
506
+ 95,
507
+ 118,
508
+ 111,
509
+ 116,
510
+ 101
511
+ ];
512
+ }
513
+ ];
514
+ };
515
+ }
516
+ ];
517
+ "args": [];
518
+ },
519
+ {
520
+ "name": "withdrawTokens";
521
+ "docs": [
522
+ "Withdraw tokens from the vault to the configured withdrawal wallet."
523
+ ];
524
+ "discriminator": [
525
+ 2,
526
+ 4,
527
+ 225,
528
+ 61,
529
+ 19,
530
+ 182,
531
+ 106,
532
+ 170
533
+ ];
534
+ "accounts": [
535
+ {
536
+ "name": "admin";
537
+ "docs": [
538
+ "Admin signer (must match global_info.admin_wallet)"
539
+ ];
540
+ "writable": true;
541
+ "signer": true;
542
+ },
543
+ {
544
+ "name": "recipientTokenAccount";
545
+ "docs": [
546
+ "Recipient token account (must belong to current withdrawal_wallet)"
547
+ ];
548
+ "writable": true;
549
+ },
550
+ {
551
+ "name": "vaultTokenAccount";
552
+ "docs": [
553
+ "Vault token account PDA (Token-2022)"
554
+ ];
555
+ "writable": true;
556
+ "pda": {
557
+ "seeds": [
558
+ {
559
+ "kind": "const";
560
+ "value": [
561
+ 118,
562
+ 97,
563
+ 117,
564
+ 108,
565
+ 116
566
+ ];
567
+ }
568
+ ];
569
+ };
570
+ },
571
+ {
572
+ "name": "mint";
573
+ "docs": [
574
+ "Reward token mint (Token-2022)"
575
+ ];
576
+ "writable": true;
577
+ },
578
+ {
579
+ "name": "globalInfo";
580
+ "docs": [
581
+ "Global config PDA"
582
+ ];
583
+ "writable": true;
584
+ "pda": {
585
+ "seeds": [
586
+ {
587
+ "kind": "const";
588
+ "value": [
589
+ 103,
590
+ 108,
591
+ 111,
592
+ 98,
593
+ 97,
594
+ 108
595
+ ];
596
+ }
597
+ ];
598
+ };
599
+ },
600
+ {
601
+ "name": "tokenProgram";
602
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
603
+ },
604
+ {
605
+ "name": "systemProgram";
606
+ "address": "11111111111111111111111111111111";
607
+ }
608
+ ];
609
+ "args": [
610
+ {
611
+ "name": "args";
612
+ "type": {
613
+ "defined": {
614
+ "name": "withdrawTokensArgs";
615
+ };
616
+ };
617
+ }
618
+ ];
619
+ }
620
+ ];
621
+ "accounts": [
622
+ {
623
+ "name": "globalInfo";
624
+ "discriminator": [
625
+ 241,
626
+ 51,
627
+ 8,
628
+ 81,
629
+ 11,
630
+ 62,
631
+ 44,
632
+ 62
633
+ ];
634
+ },
635
+ {
636
+ "name": "withdrawalVote";
637
+ "discriminator": [
638
+ 93,
639
+ 184,
640
+ 26,
641
+ 60,
642
+ 167,
643
+ 248,
644
+ 29,
645
+ 1
646
+ ];
647
+ }
648
+ ];
649
+ "errors": [
650
+ {
651
+ "code": 6000;
652
+ "name": "accessDenied";
653
+ "msg": "Access denied";
654
+ },
655
+ {
656
+ "code": 6001;
657
+ "name": "invalidArgs";
658
+ "msg": "Invalid arguments";
659
+ },
660
+ {
661
+ "code": 6002;
662
+ "name": "mathOverflow";
663
+ "msg": "Math overflow";
664
+ },
665
+ {
666
+ "code": 6003;
667
+ "name": "emergencyModeEnabled";
668
+ "msg": "Emergency mode is enabled";
669
+ },
670
+ {
671
+ "code": 6004;
672
+ "name": "invalidAdminWallet";
673
+ "msg": "Invalid admin wallet";
674
+ },
675
+ {
676
+ "code": 6005;
677
+ "name": "invalidApiWallet";
678
+ "msg": "Invalid API wallet";
679
+ },
680
+ {
681
+ "code": 6006;
682
+ "name": "invalidWithdrawalWallet";
683
+ "msg": "Invalid withdrawal wallet";
684
+ },
685
+ {
686
+ "code": 6007;
687
+ "name": "invalidInternalMultisigWallet";
688
+ "msg": "Invalid internal multisig wallet";
689
+ },
690
+ {
691
+ "code": 6008;
692
+ "name": "invalidTokenMint";
693
+ "msg": "Invalid token mint";
694
+ },
695
+ {
696
+ "code": 6009;
697
+ "name": "insufficientVaultBalance";
698
+ "msg": "Insufficient vault balance";
699
+ },
700
+ {
701
+ "code": 6010;
702
+ "name": "withdrawalVoteNotActive";
703
+ "msg": "Withdrawal vote is not active";
704
+ },
705
+ {
706
+ "code": 6011;
707
+ "name": "withdrawalVoteCompleted";
708
+ "msg": "Withdrawal vote already completed";
709
+ },
710
+ {
711
+ "code": 6012;
712
+ "name": "notInternalMultisigWallet";
713
+ "msg": "Not an internal multisig wallet";
714
+ }
715
+ ];
716
+ "types": [
717
+ {
718
+ "name": "claimRewardArgs";
719
+ "docs": [
720
+ "Claim arguments.",
721
+ "",
722
+ "The `amount` must already be validated off-chain by the trusted API backend."
723
+ ];
724
+ "type": {
725
+ "kind": "struct";
726
+ "fields": [
727
+ {
728
+ "name": "amount";
729
+ "docs": [
730
+ "Raw token amount including decimals (Token-2022 mint decimals)."
731
+ ];
732
+ "type": "u64";
733
+ }
734
+ ];
735
+ };
736
+ },
737
+ {
738
+ "name": "depositTokensArgs";
739
+ "type": {
740
+ "kind": "struct";
741
+ "fields": [
742
+ {
743
+ "name": "amount";
744
+ "type": "u64";
745
+ }
746
+ ];
747
+ };
748
+ },
749
+ {
750
+ "name": "globalInfo";
751
+ "docs": [
752
+ "Global reward configuration and state.",
753
+ "",
754
+ "This account is the single source of truth for:",
755
+ "- Admin (multisig) wallet",
756
+ "- API wallet (trusted offchain backend)",
757
+ "- Internal multisig participant wallets (5 wallets)",
758
+ "- Current withdrawal wallet",
759
+ "- Token-2022 mint used for rewards",
760
+ "- Aggregate accounting fields"
761
+ ];
762
+ "type": {
763
+ "kind": "struct";
764
+ "fields": [
765
+ {
766
+ "name": "adminWallet";
767
+ "docs": [
768
+ "Solana multisig admin wallet (e.g. SPL multisig program account)"
769
+ ];
770
+ "type": "pubkey";
771
+ },
772
+ {
773
+ "name": "apiWallet";
774
+ "docs": [
775
+ "API wallet that must co-sign reward claims together with the user"
776
+ ];
777
+ "type": "pubkey";
778
+ },
779
+ {
780
+ "name": "internalMultisigWallets";
781
+ "docs": [
782
+ "Five internal multisig wallets for withdrawal wallet voting"
783
+ ];
784
+ "type": {
785
+ "array": [
786
+ "pubkey",
787
+ 5
788
+ ];
789
+ };
790
+ },
791
+ {
792
+ "name": "withdrawalWallet";
793
+ "docs": [
794
+ "Current withdrawal wallet (all withdrawals must go here)"
795
+ ];
796
+ "type": "pubkey";
797
+ },
798
+ {
799
+ "name": "tokenMintAddress";
800
+ "docs": [
801
+ "Reward token mint (Token-2022)"
802
+ ];
803
+ "type": "pubkey";
804
+ },
805
+ {
806
+ "name": "totalAllocatedTokenAmount";
807
+ "docs": [
808
+ "Total amount of tokens ever allocated into the vault"
809
+ ];
810
+ "type": "u64";
811
+ },
812
+ {
813
+ "name": "totalClaimedAmount";
814
+ "docs": [
815
+ "Total amount of tokens ever claimed by users"
816
+ ];
817
+ "type": "u64";
818
+ },
819
+ {
820
+ "name": "isEmergency";
821
+ "docs": [
822
+ "Emergency flag - when true, claims should be blocked"
823
+ ];
824
+ "type": "bool";
825
+ },
826
+ {
827
+ "name": "bump";
828
+ "docs": [
829
+ "Bump for global PDA"
830
+ ];
831
+ "type": "u8";
832
+ },
833
+ {
834
+ "name": "vaultBump";
835
+ "docs": [
836
+ "Bump for vault token account PDA"
837
+ ];
838
+ "type": "u8";
839
+ },
840
+ {
841
+ "name": "reservedData";
842
+ "docs": [
843
+ "Reserved for future use, always initialized to 0"
844
+ ];
845
+ "type": "u64";
846
+ }
847
+ ];
848
+ };
849
+ },
850
+ {
851
+ "name": "initGlobalInfoArgs";
852
+ "type": {
853
+ "kind": "struct";
854
+ "fields": [
855
+ {
856
+ "name": "adminWallet";
857
+ "type": "pubkey";
858
+ },
859
+ {
860
+ "name": "apiWallet";
861
+ "type": "pubkey";
862
+ },
863
+ {
864
+ "name": "internalMultisigWallets";
865
+ "type": {
866
+ "array": [
867
+ "pubkey",
868
+ 5
869
+ ];
870
+ };
871
+ },
872
+ {
873
+ "name": "withdrawalWallet";
874
+ "type": "pubkey";
875
+ }
876
+ ];
877
+ };
878
+ },
879
+ {
880
+ "name": "startWithdrawalVoteArgs";
881
+ "type": {
882
+ "kind": "struct";
883
+ "fields": [
884
+ {
885
+ "name": "proposedWithdrawalWallet";
886
+ "type": "pubkey";
887
+ }
888
+ ];
889
+ };
890
+ },
891
+ {
892
+ "name": "updateGlobalInfoArgs";
893
+ "type": {
894
+ "kind": "struct";
895
+ "fields": [
896
+ {
897
+ "name": "adminWallet";
898
+ "type": {
899
+ "option": "pubkey";
900
+ };
901
+ },
902
+ {
903
+ "name": "isEmergency";
904
+ "type": {
905
+ "option": "bool";
906
+ };
907
+ },
908
+ {
909
+ "name": "apiWallet";
910
+ "type": {
911
+ "option": "pubkey";
912
+ };
913
+ },
914
+ {
915
+ "name": "internalMultisigWallets";
916
+ "type": {
917
+ "option": {
918
+ "array": [
919
+ "pubkey",
920
+ 5
921
+ ];
922
+ };
923
+ };
924
+ }
925
+ ];
926
+ };
927
+ },
928
+ {
929
+ "name": "withdrawTokensArgs";
930
+ "type": {
931
+ "kind": "struct";
932
+ "fields": [
933
+ {
934
+ "name": "amount";
935
+ "type": "u64";
936
+ }
937
+ ];
938
+ };
939
+ },
940
+ {
941
+ "name": "withdrawalVote";
942
+ "docs": [
943
+ "Withdrawal wallet change voting state.",
944
+ "",
945
+ "There is a single global voting account (PDA) derived from `SEED_WITHDRAWAL_VOTE`.",
946
+ "Internal multisig wallets (stored in `GlobalInfo`) can approve a proposed",
947
+ "new withdrawal wallet. When approvals reach the threshold (3-of-5), the",
948
+ "program updates `GlobalInfo.withdrawal_wallet` and marks the vote as completed."
949
+ ];
950
+ "type": {
951
+ "kind": "struct";
952
+ "fields": [
953
+ {
954
+ "name": "currentWithdrawalWallet";
955
+ "docs": [
956
+ "The current withdrawal wallet at the time the vote was started."
957
+ ];
958
+ "type": "pubkey";
959
+ },
960
+ {
961
+ "name": "proposedWithdrawalWallet";
962
+ "docs": [
963
+ "The proposed new withdrawal wallet."
964
+ ];
965
+ "type": "pubkey";
966
+ },
967
+ {
968
+ "name": "approvals";
969
+ "docs": [
970
+ "Approvals from internal multisig wallets, matched by index."
971
+ ];
972
+ "type": {
973
+ "array": [
974
+ "bool",
975
+ 5
976
+ ];
977
+ };
978
+ },
979
+ {
980
+ "name": "approvalsCount";
981
+ "docs": [
982
+ "Number of approvals collected so far."
983
+ ];
984
+ "type": "u8";
985
+ },
986
+ {
987
+ "name": "isActive";
988
+ "docs": [
989
+ "Whether the vote is currently active."
990
+ ];
991
+ "type": "bool";
992
+ },
993
+ {
994
+ "name": "bump";
995
+ "docs": [
996
+ "Bump for the WithdrawalVote PDA."
997
+ ];
998
+ "type": "u8";
999
+ }
1000
+ ];
1001
+ };
1002
+ }
1003
+ ];
1004
+ };