proof-of-take-sdk 1.0.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.
Files changed (90) hide show
  1. package/FINAL_USAGE.md +342 -0
  2. package/LIBRARY_GUIDE.md +400 -0
  3. package/LICENSE +22 -0
  4. package/README.md +370 -0
  5. package/dist/client.d.ts +32 -0
  6. package/dist/client.js +47 -0
  7. package/dist/constants/season.d.ts +18 -0
  8. package/dist/constants/season.js +22 -0
  9. package/dist/getters/getMiztake.d.ts +11 -0
  10. package/dist/getters/getMiztake.js +34 -0
  11. package/dist/getters/getMiztakeStatistics.d.ts +10 -0
  12. package/dist/getters/getMiztakeStatistics.js +20 -0
  13. package/dist/getters/getTokenVault.d.ts +30 -0
  14. package/dist/getters/getTokenVault.js +56 -0
  15. package/dist/getters/getUserStats.d.ts +21 -0
  16. package/dist/getters/getUserStats.js +43 -0
  17. package/dist/getters/index.d.ts +7 -0
  18. package/dist/getters/index.js +23 -0
  19. package/dist/idl/idl.d.ts +2 -0
  20. package/dist/idl/idl.js +8 -0
  21. package/dist/idl/proof_of_take.json +3803 -0
  22. package/dist/index.d.ts +48 -0
  23. package/dist/index.js +92 -0
  24. package/dist/instructions/claimReferralPenaltyForWindow.d.ts +38 -0
  25. package/dist/instructions/claimReferralPenaltyForWindow.js +72 -0
  26. package/dist/instructions/claimWindowRewards.d.ts +48 -0
  27. package/dist/instructions/claimWindowRewards.js +94 -0
  28. package/dist/instructions/confirmedPostOnX.d.ts +51 -0
  29. package/dist/instructions/confirmedPostOnX.js +78 -0
  30. package/dist/instructions/createMiztake.d.ts +90 -0
  31. package/dist/instructions/createMiztake.js +166 -0
  32. package/dist/instructions/initializeEscrowVault.d.ts +15 -0
  33. package/dist/instructions/initializeEscrowVault.js +36 -0
  34. package/dist/instructions/initializeSeasonSettings.d.ts +20 -0
  35. package/dist/instructions/initializeSeasonSettings.js +39 -0
  36. package/dist/instructions/initializeSeasonVault.d.ts +20 -0
  37. package/dist/instructions/initializeSeasonVault.js +43 -0
  38. package/dist/instructions/initializeStatistics.d.ts +32 -0
  39. package/dist/instructions/initializeStatistics.js +73 -0
  40. package/dist/instructions/joinSeason.d.ts +50 -0
  41. package/dist/instructions/joinSeason.js +120 -0
  42. package/dist/instructions/toggleSeasonPause.d.ts +22 -0
  43. package/dist/instructions/toggleSeasonPause.js +42 -0
  44. package/dist/instructions/updateSeasonAdmin.d.ts +23 -0
  45. package/dist/instructions/updateSeasonAdmin.js +43 -0
  46. package/dist/instructions/viewCurrentSeason.d.ts +12 -0
  47. package/dist/instructions/viewCurrentSeason.js +30 -0
  48. package/dist/instructions/viewSeasonMembershipStatus.d.ts +16 -0
  49. package/dist/instructions/viewSeasonMembershipStatus.js +33 -0
  50. package/dist/instructions/viewWindowStatus.d.ts +15 -0
  51. package/dist/instructions/viewWindowStatus.js +28 -0
  52. package/dist/instructions/withdrawSeasonDeposit.d.ts +38 -0
  53. package/dist/instructions/withdrawSeasonDeposit.js +66 -0
  54. package/dist/optimistic/index.d.ts +7 -0
  55. package/dist/optimistic/index.js +33 -0
  56. package/dist/types/accountTypes.d.ts +121 -0
  57. package/dist/types/accountTypes.js +2 -0
  58. package/dist/types/instructionResults.d.ts +44 -0
  59. package/dist/types/instructionResults.js +2 -0
  60. package/dist/types/proof_of_take.d.ts +3809 -0
  61. package/dist/types/proof_of_take.js +2 -0
  62. package/dist/types.d.ts +232 -0
  63. package/dist/types.js +16 -0
  64. package/dist/utils/accountUpdates.d.ts +245 -0
  65. package/dist/utils/accountUpdates.js +611 -0
  66. package/dist/utils/anchorHelpers.d.ts +7 -0
  67. package/dist/utils/anchorHelpers.js +21 -0
  68. package/dist/utils/constants.d.ts +21 -0
  69. package/dist/utils/constants.js +31 -0
  70. package/dist/utils/conversions.d.ts +25 -0
  71. package/dist/utils/conversions.js +53 -0
  72. package/dist/utils/enumHelpers.d.ts +63 -0
  73. package/dist/utils/enumHelpers.js +110 -0
  74. package/dist/utils/index.d.ts +0 -0
  75. package/dist/utils/index.js +2 -0
  76. package/dist/utils/pdaManager.d.ts +106 -0
  77. package/dist/utils/pdaManager.js +89 -0
  78. package/dist/utils/pdas.d.ts +68 -0
  79. package/dist/utils/pdas.js +128 -0
  80. package/dist/utils/programHelpers.d.ts +9 -0
  81. package/dist/utils/programHelpers.js +18 -0
  82. package/dist/utils/signerHelpers.d.ts +17 -0
  83. package/dist/utils/signerHelpers.js +21 -0
  84. package/dist/utils/simulationHelpers.d.ts +121 -0
  85. package/dist/utils/simulationHelpers.js +183 -0
  86. package/dist/utils/tierPenalty.d.ts +9 -0
  87. package/dist/utils/tierPenalty.js +24 -0
  88. package/dist/utils/transactionBuilder.d.ts +77 -0
  89. package/dist/utils/transactionBuilder.js +147 -0
  90. package/package.json +50 -0
@@ -0,0 +1,3803 @@
1
+ {
2
+ "address": "takeA82AwosboZgG7HQx8D3dGLbbbPUyQCva9HpLJBr",
3
+ "metadata": {
4
+ "name": "proof_of_take",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Created with Anchor"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "claim_referral_penalty_for_window",
12
+ "discriminator": [
13
+ 36,
14
+ 163,
15
+ 95,
16
+ 86,
17
+ 240,
18
+ 28,
19
+ 24,
20
+ 56
21
+ ],
22
+ "accounts": [
23
+ {
24
+ "name": "season_settings",
25
+ "pda": {
26
+ "seeds": [
27
+ {
28
+ "kind": "const",
29
+ "value": [
30
+ 115,
31
+ 101,
32
+ 97,
33
+ 115,
34
+ 111,
35
+ 110,
36
+ 95,
37
+ 115,
38
+ 101,
39
+ 116,
40
+ 116,
41
+ 105,
42
+ 110,
43
+ 103,
44
+ 115
45
+ ]
46
+ }
47
+ ]
48
+ }
49
+ },
50
+ {
51
+ "name": "season",
52
+ "pda": {
53
+ "seeds": [
54
+ {
55
+ "kind": "const",
56
+ "value": [
57
+ 115,
58
+ 101,
59
+ 97,
60
+ 115,
61
+ 111,
62
+ 110
63
+ ]
64
+ },
65
+ {
66
+ "kind": "arg",
67
+ "path": "season_number"
68
+ }
69
+ ]
70
+ }
71
+ },
72
+ {
73
+ "name": "season_membership",
74
+ "pda": {
75
+ "seeds": [
76
+ {
77
+ "kind": "const",
78
+ "value": [
79
+ 115,
80
+ 101,
81
+ 97,
82
+ 115,
83
+ 111,
84
+ 110,
85
+ 95,
86
+ 109,
87
+ 101,
88
+ 109,
89
+ 98,
90
+ 101,
91
+ 114,
92
+ 115,
93
+ 104,
94
+ 105,
95
+ 112
96
+ ]
97
+ },
98
+ {
99
+ "kind": "arg",
100
+ "path": "referred_user"
101
+ },
102
+ {
103
+ "kind": "arg",
104
+ "path": "season_membership_id"
105
+ }
106
+ ]
107
+ }
108
+ },
109
+ {
110
+ "name": "user_window_participation",
111
+ "writable": true,
112
+ "pda": {
113
+ "seeds": [
114
+ {
115
+ "kind": "const",
116
+ "value": [
117
+ 117,
118
+ 115,
119
+ 101,
120
+ 114,
121
+ 95,
122
+ 119,
123
+ 105,
124
+ 110,
125
+ 100,
126
+ 111,
127
+ 119
128
+ ]
129
+ },
130
+ {
131
+ "kind": "arg",
132
+ "path": "referred_user"
133
+ },
134
+ {
135
+ "kind": "arg",
136
+ "path": "season_number"
137
+ },
138
+ {
139
+ "kind": "arg",
140
+ "path": "window_number"
141
+ },
142
+ {
143
+ "kind": "arg",
144
+ "path": "season_membership_id"
145
+ }
146
+ ]
147
+ }
148
+ },
149
+ {
150
+ "name": "referral_penalty_claim",
151
+ "writable": true,
152
+ "pda": {
153
+ "seeds": [
154
+ {
155
+ "kind": "const",
156
+ "value": [
157
+ 114,
158
+ 101,
159
+ 102,
160
+ 101,
161
+ 114,
162
+ 114,
163
+ 97,
164
+ 108,
165
+ 95,
166
+ 112,
167
+ 101,
168
+ 110,
169
+ 97,
170
+ 108,
171
+ 116,
172
+ 121,
173
+ 95,
174
+ 99,
175
+ 108,
176
+ 97,
177
+ 105,
178
+ 109
179
+ ]
180
+ },
181
+ {
182
+ "kind": "arg",
183
+ "path": "referred_user"
184
+ },
185
+ {
186
+ "kind": "arg",
187
+ "path": "season_number"
188
+ },
189
+ {
190
+ "kind": "arg",
191
+ "path": "window_number"
192
+ },
193
+ {
194
+ "kind": "arg",
195
+ "path": "season_membership_id"
196
+ }
197
+ ]
198
+ }
199
+ },
200
+ {
201
+ "name": "season_deposit_vault",
202
+ "writable": true,
203
+ "pda": {
204
+ "seeds": [
205
+ {
206
+ "kind": "const",
207
+ "value": [
208
+ 115,
209
+ 101,
210
+ 97,
211
+ 115,
212
+ 111,
213
+ 110,
214
+ 95,
215
+ 100,
216
+ 101,
217
+ 112,
218
+ 111,
219
+ 115,
220
+ 105,
221
+ 116,
222
+ 95,
223
+ 118,
224
+ 97,
225
+ 117,
226
+ 108,
227
+ 116
228
+ ]
229
+ }
230
+ ]
231
+ }
232
+ },
233
+ {
234
+ "name": "mizd_mint",
235
+ "address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99"
236
+ },
237
+ {
238
+ "name": "recipient_token_account",
239
+ "writable": true
240
+ },
241
+ {
242
+ "name": "claimant",
243
+ "writable": true,
244
+ "signer": true
245
+ },
246
+ {
247
+ "name": "token_program",
248
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
249
+ },
250
+ {
251
+ "name": "system_program",
252
+ "address": "11111111111111111111111111111111"
253
+ }
254
+ ],
255
+ "args": [
256
+ {
257
+ "name": "season_number",
258
+ "type": "u64"
259
+ },
260
+ {
261
+ "name": "window_number",
262
+ "type": "u64"
263
+ },
264
+ {
265
+ "name": "referred_user",
266
+ "type": "pubkey"
267
+ },
268
+ {
269
+ "name": "season_membership_id",
270
+ "type": "u64"
271
+ }
272
+ ]
273
+ },
274
+ {
275
+ "name": "claim_window_rewards",
276
+ "discriminator": [
277
+ 22,
278
+ 18,
279
+ 31,
280
+ 222,
281
+ 219,
282
+ 48,
283
+ 9,
284
+ 95
285
+ ],
286
+ "accounts": [
287
+ {
288
+ "name": "season_settings",
289
+ "pda": {
290
+ "seeds": [
291
+ {
292
+ "kind": "const",
293
+ "value": [
294
+ 115,
295
+ 101,
296
+ 97,
297
+ 115,
298
+ 111,
299
+ 110,
300
+ 95,
301
+ 115,
302
+ 101,
303
+ 116,
304
+ 116,
305
+ 105,
306
+ 110,
307
+ 103,
308
+ 115
309
+ ]
310
+ }
311
+ ]
312
+ }
313
+ },
314
+ {
315
+ "name": "season",
316
+ "writable": true,
317
+ "pda": {
318
+ "seeds": [
319
+ {
320
+ "kind": "const",
321
+ "value": [
322
+ 115,
323
+ 101,
324
+ 97,
325
+ 115,
326
+ 111,
327
+ 110
328
+ ]
329
+ },
330
+ {
331
+ "kind": "arg",
332
+ "path": "season_number"
333
+ }
334
+ ]
335
+ }
336
+ },
337
+ {
338
+ "name": "reward_window",
339
+ "writable": true,
340
+ "pda": {
341
+ "seeds": [
342
+ {
343
+ "kind": "const",
344
+ "value": [
345
+ 114,
346
+ 101,
347
+ 119,
348
+ 97,
349
+ 114,
350
+ 100,
351
+ 95,
352
+ 119,
353
+ 105,
354
+ 110,
355
+ 100,
356
+ 111,
357
+ 119
358
+ ]
359
+ },
360
+ {
361
+ "kind": "arg",
362
+ "path": "season_number"
363
+ },
364
+ {
365
+ "kind": "arg",
366
+ "path": "window_number"
367
+ }
368
+ ]
369
+ }
370
+ },
371
+ {
372
+ "name": "user_window_participation",
373
+ "writable": true,
374
+ "pda": {
375
+ "seeds": [
376
+ {
377
+ "kind": "const",
378
+ "value": [
379
+ 117,
380
+ 115,
381
+ 101,
382
+ 114,
383
+ 95,
384
+ 119,
385
+ 105,
386
+ 110,
387
+ 100,
388
+ 111,
389
+ 119
390
+ ]
391
+ },
392
+ {
393
+ "kind": "account",
394
+ "path": "user"
395
+ },
396
+ {
397
+ "kind": "arg",
398
+ "path": "season_number"
399
+ },
400
+ {
401
+ "kind": "arg",
402
+ "path": "window_number"
403
+ },
404
+ {
405
+ "kind": "account",
406
+ "path": "user_window_participation.season_membership_id",
407
+ "account": "UserWindowParticipation"
408
+ }
409
+ ]
410
+ }
411
+ },
412
+ {
413
+ "name": "season_membership",
414
+ "writable": true,
415
+ "pda": {
416
+ "seeds": [
417
+ {
418
+ "kind": "const",
419
+ "value": [
420
+ 115,
421
+ 101,
422
+ 97,
423
+ 115,
424
+ 111,
425
+ 110,
426
+ 95,
427
+ 109,
428
+ 101,
429
+ 109,
430
+ 98,
431
+ 101,
432
+ 114,
433
+ 115,
434
+ 104,
435
+ 105,
436
+ 112
437
+ ]
438
+ },
439
+ {
440
+ "kind": "account",
441
+ "path": "user"
442
+ },
443
+ {
444
+ "kind": "account",
445
+ "path": "user_window_participation.season_membership_id",
446
+ "account": "UserWindowParticipation"
447
+ }
448
+ ]
449
+ }
450
+ },
451
+ {
452
+ "name": "season_deposit_vault",
453
+ "writable": true,
454
+ "pda": {
455
+ "seeds": [
456
+ {
457
+ "kind": "const",
458
+ "value": [
459
+ 115,
460
+ 101,
461
+ 97,
462
+ 115,
463
+ 111,
464
+ 110,
465
+ 95,
466
+ 100,
467
+ 101,
468
+ 112,
469
+ 111,
470
+ 115,
471
+ 105,
472
+ 116,
473
+ 95,
474
+ 118,
475
+ 97,
476
+ 117,
477
+ 108,
478
+ 116
479
+ ]
480
+ }
481
+ ]
482
+ }
483
+ },
484
+ {
485
+ "name": "mizd_mint",
486
+ "address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99"
487
+ },
488
+ {
489
+ "name": "user_token_account",
490
+ "writable": true
491
+ },
492
+ {
493
+ "name": "referrer_token_account",
494
+ "writable": true
495
+ },
496
+ {
497
+ "name": "user",
498
+ "signer": true
499
+ },
500
+ {
501
+ "name": "token_program",
502
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
503
+ }
504
+ ],
505
+ "args": [
506
+ {
507
+ "name": "season_number",
508
+ "type": "u64"
509
+ },
510
+ {
511
+ "name": "window_number",
512
+ "type": "u64"
513
+ }
514
+ ]
515
+ },
516
+ {
517
+ "name": "confirmed_post_on_x",
518
+ "discriminator": [
519
+ 65,
520
+ 44,
521
+ 52,
522
+ 57,
523
+ 52,
524
+ 84,
525
+ 64,
526
+ 224
527
+ ],
528
+ "accounts": [
529
+ {
530
+ "name": "season_settings",
531
+ "pda": {
532
+ "seeds": [
533
+ {
534
+ "kind": "const",
535
+ "value": [
536
+ 115,
537
+ 101,
538
+ 97,
539
+ 115,
540
+ 111,
541
+ 110,
542
+ 95,
543
+ 115,
544
+ 101,
545
+ 116,
546
+ 116,
547
+ 105,
548
+ 110,
549
+ 103,
550
+ 115
551
+ ]
552
+ }
553
+ ]
554
+ }
555
+ },
556
+ {
557
+ "name": "season_membership",
558
+ "writable": true,
559
+ "pda": {
560
+ "seeds": [
561
+ {
562
+ "kind": "const",
563
+ "value": [
564
+ 115,
565
+ 101,
566
+ 97,
567
+ 115,
568
+ 111,
569
+ 110,
570
+ 95,
571
+ 109,
572
+ 101,
573
+ 109,
574
+ 98,
575
+ 101,
576
+ 114,
577
+ 115,
578
+ 104,
579
+ 105,
580
+ 112
581
+ ]
582
+ },
583
+ {
584
+ "kind": "arg",
585
+ "path": "user"
586
+ },
587
+ {
588
+ "kind": "arg",
589
+ "path": "season_membership_id"
590
+ }
591
+ ]
592
+ }
593
+ },
594
+ {
595
+ "name": "season",
596
+ "writable": true,
597
+ "pda": {
598
+ "seeds": [
599
+ {
600
+ "kind": "const",
601
+ "value": [
602
+ 115,
603
+ 101,
604
+ 97,
605
+ 115,
606
+ 111,
607
+ 110
608
+ ]
609
+ },
610
+ {
611
+ "kind": "account",
612
+ "path": "season_membership.season_number",
613
+ "account": "SeasonMembership"
614
+ }
615
+ ]
616
+ }
617
+ },
618
+ {
619
+ "name": "reward_window",
620
+ "writable": true,
621
+ "pda": {
622
+ "seeds": [
623
+ {
624
+ "kind": "const",
625
+ "value": [
626
+ 114,
627
+ 101,
628
+ 119,
629
+ 97,
630
+ 114,
631
+ 100,
632
+ 95,
633
+ 119,
634
+ 105,
635
+ 110,
636
+ 100,
637
+ 111,
638
+ 119
639
+ ]
640
+ },
641
+ {
642
+ "kind": "account",
643
+ "path": "season_membership.season_number",
644
+ "account": "SeasonMembership"
645
+ },
646
+ {
647
+ "kind": "arg",
648
+ "path": "window_number"
649
+ }
650
+ ]
651
+ }
652
+ },
653
+ {
654
+ "name": "user_window_participation",
655
+ "writable": true,
656
+ "pda": {
657
+ "seeds": [
658
+ {
659
+ "kind": "const",
660
+ "value": [
661
+ 117,
662
+ 115,
663
+ 101,
664
+ 114,
665
+ 95,
666
+ 119,
667
+ 105,
668
+ 110,
669
+ 100,
670
+ 111,
671
+ 119
672
+ ]
673
+ },
674
+ {
675
+ "kind": "arg",
676
+ "path": "user"
677
+ },
678
+ {
679
+ "kind": "account",
680
+ "path": "season_membership.season_number",
681
+ "account": "SeasonMembership"
682
+ },
683
+ {
684
+ "kind": "arg",
685
+ "path": "window_number"
686
+ },
687
+ {
688
+ "kind": "arg",
689
+ "path": "season_membership_id"
690
+ }
691
+ ]
692
+ }
693
+ },
694
+ {
695
+ "name": "miztake",
696
+ "writable": true,
697
+ "pda": {
698
+ "seeds": [
699
+ {
700
+ "kind": "const",
701
+ "value": [
702
+ 109,
703
+ 105,
704
+ 122,
705
+ 116,
706
+ 97,
707
+ 107,
708
+ 101
709
+ ]
710
+ },
711
+ {
712
+ "kind": "arg",
713
+ "path": "miztake_sha_hash_bytes"
714
+ }
715
+ ]
716
+ }
717
+ },
718
+ {
719
+ "name": "admin",
720
+ "docs": [
721
+ "SEASON ADMIN account (SeasonSettings.admin - rotatable)",
722
+ "This is the season admin for day-to-day operations (post confirmation)",
723
+ "Can be rotated via update_season_admin instruction"
724
+ ],
725
+ "signer": true
726
+ }
727
+ ],
728
+ "args": [
729
+ {
730
+ "name": "user",
731
+ "type": "pubkey"
732
+ },
733
+ {
734
+ "name": "season_membership_id",
735
+ "type": "u64"
736
+ },
737
+ {
738
+ "name": "window_number",
739
+ "type": "u64"
740
+ },
741
+ {
742
+ "name": "miztake_sha_hash_bytes",
743
+ "type": {
744
+ "array": [
745
+ "u8",
746
+ 32
747
+ ]
748
+ }
749
+ }
750
+ ]
751
+ },
752
+ {
753
+ "name": "create_miztake",
754
+ "discriminator": [
755
+ 221,
756
+ 90,
757
+ 182,
758
+ 65,
759
+ 213,
760
+ 115,
761
+ 93,
762
+ 114
763
+ ],
764
+ "accounts": [
765
+ {
766
+ "name": "miztake",
767
+ "writable": true,
768
+ "pda": {
769
+ "seeds": [
770
+ {
771
+ "kind": "const",
772
+ "value": [
773
+ 109,
774
+ 105,
775
+ 122,
776
+ 116,
777
+ 97,
778
+ 107,
779
+ 101
780
+ ]
781
+ },
782
+ {
783
+ "kind": "arg",
784
+ "path": "sha_hash_bytes"
785
+ }
786
+ ]
787
+ }
788
+ },
789
+ {
790
+ "name": "user_stats",
791
+ "writable": true,
792
+ "pda": {
793
+ "seeds": [
794
+ {
795
+ "kind": "const",
796
+ "value": [
797
+ 117,
798
+ 115,
799
+ 101,
800
+ 114,
801
+ 95,
802
+ 115,
803
+ 116,
804
+ 97,
805
+ 116,
806
+ 115
807
+ ]
808
+ },
809
+ {
810
+ "kind": "arg",
811
+ "path": "telegram_id"
812
+ }
813
+ ]
814
+ }
815
+ },
816
+ {
817
+ "name": "miztake_statistics",
818
+ "writable": true,
819
+ "pda": {
820
+ "seeds": [
821
+ {
822
+ "kind": "const",
823
+ "value": [
824
+ 109,
825
+ 105,
826
+ 122,
827
+ 116,
828
+ 97,
829
+ 107,
830
+ 101,
831
+ 95,
832
+ 115,
833
+ 116,
834
+ 97,
835
+ 116,
836
+ 105,
837
+ 115,
838
+ 116,
839
+ 105,
840
+ 99,
841
+ 115
842
+ ]
843
+ }
844
+ ]
845
+ }
846
+ },
847
+ {
848
+ "name": "season_settings",
849
+ "pda": {
850
+ "seeds": [
851
+ {
852
+ "kind": "const",
853
+ "value": [
854
+ 115,
855
+ 101,
856
+ 97,
857
+ 115,
858
+ 111,
859
+ 110,
860
+ 95,
861
+ 115,
862
+ 101,
863
+ 116,
864
+ 116,
865
+ 105,
866
+ 110,
867
+ 103,
868
+ 115
869
+ ]
870
+ }
871
+ ]
872
+ }
873
+ },
874
+ {
875
+ "name": "season",
876
+ "pda": {
877
+ "seeds": [
878
+ {
879
+ "kind": "const",
880
+ "value": [
881
+ 115,
882
+ 101,
883
+ 97,
884
+ 115,
885
+ 111,
886
+ 110
887
+ ]
888
+ },
889
+ {
890
+ "kind": "arg",
891
+ "path": "season_number"
892
+ }
893
+ ]
894
+ }
895
+ },
896
+ {
897
+ "name": "season_membership",
898
+ "pda": {
899
+ "seeds": [
900
+ {
901
+ "kind": "const",
902
+ "value": [
903
+ 115,
904
+ 101,
905
+ 97,
906
+ 115,
907
+ 111,
908
+ 110,
909
+ 95,
910
+ 109,
911
+ 101,
912
+ 109,
913
+ 98,
914
+ 101,
915
+ 114,
916
+ 115,
917
+ 104,
918
+ 105,
919
+ 112
920
+ ]
921
+ },
922
+ {
923
+ "kind": "account",
924
+ "path": "user"
925
+ },
926
+ {
927
+ "kind": "arg",
928
+ "path": "season_membership_id"
929
+ }
930
+ ]
931
+ }
932
+ },
933
+ {
934
+ "name": "reward_window",
935
+ "writable": true,
936
+ "pda": {
937
+ "seeds": [
938
+ {
939
+ "kind": "const",
940
+ "value": [
941
+ 114,
942
+ 101,
943
+ 119,
944
+ 97,
945
+ 114,
946
+ 100,
947
+ 95,
948
+ 119,
949
+ 105,
950
+ 110,
951
+ 100,
952
+ 111,
953
+ 119
954
+ ]
955
+ },
956
+ {
957
+ "kind": "arg",
958
+ "path": "season_number"
959
+ },
960
+ {
961
+ "kind": "arg",
962
+ "path": "window_number"
963
+ }
964
+ ]
965
+ }
966
+ },
967
+ {
968
+ "name": "user_window_participation",
969
+ "writable": true,
970
+ "pda": {
971
+ "seeds": [
972
+ {
973
+ "kind": "const",
974
+ "value": [
975
+ 117,
976
+ 115,
977
+ 101,
978
+ 114,
979
+ 95,
980
+ 119,
981
+ 105,
982
+ 110,
983
+ 100,
984
+ 111,
985
+ 119
986
+ ]
987
+ },
988
+ {
989
+ "kind": "account",
990
+ "path": "user"
991
+ },
992
+ {
993
+ "kind": "arg",
994
+ "path": "season_number"
995
+ },
996
+ {
997
+ "kind": "arg",
998
+ "path": "window_number"
999
+ },
1000
+ {
1001
+ "kind": "arg",
1002
+ "path": "season_membership_id"
1003
+ }
1004
+ ]
1005
+ }
1006
+ },
1007
+ {
1008
+ "name": "user",
1009
+ "docs": [
1010
+ "User who created the miztake"
1011
+ ],
1012
+ "writable": true,
1013
+ "signer": true
1014
+ },
1015
+ {
1016
+ "name": "admin",
1017
+ "docs": [
1018
+ "ROOT ADMIN account (ADMIN_PUBLIC_KEY - immutable)",
1019
+ "This is the root admin for core protocol operations (miztake creation approval)",
1020
+ "Separate from SeasonSettings.admin which handles day-to-day season operations"
1021
+ ],
1022
+ "writable": true,
1023
+ "signer": true
1024
+ },
1025
+ {
1026
+ "name": "system_program",
1027
+ "address": "11111111111111111111111111111111"
1028
+ }
1029
+ ],
1030
+ "args": [
1031
+ {
1032
+ "name": "telegram_id",
1033
+ "type": "u64"
1034
+ },
1035
+ {
1036
+ "name": "telegram_username",
1037
+ "type": "string"
1038
+ },
1039
+ {
1040
+ "name": "perceptual_hash",
1041
+ "type": "string"
1042
+ },
1043
+ {
1044
+ "name": "average_hash",
1045
+ "type": "string"
1046
+ },
1047
+ {
1048
+ "name": "difference_hash",
1049
+ "type": "string"
1050
+ },
1051
+ {
1052
+ "name": "wavelet_hash",
1053
+ "type": "string"
1054
+ },
1055
+ {
1056
+ "name": "sha_hash",
1057
+ "type": "string"
1058
+ },
1059
+ {
1060
+ "name": "sha_hash_bytes",
1061
+ "type": {
1062
+ "array": [
1063
+ "u8",
1064
+ 32
1065
+ ]
1066
+ }
1067
+ },
1068
+ {
1069
+ "name": "computed_at",
1070
+ "type": "string"
1071
+ },
1072
+ {
1073
+ "name": "season_number",
1074
+ "type": "u64"
1075
+ },
1076
+ {
1077
+ "name": "window_number",
1078
+ "type": "u64"
1079
+ },
1080
+ {
1081
+ "name": "season_membership_id",
1082
+ "type": "u64"
1083
+ }
1084
+ ]
1085
+ },
1086
+ {
1087
+ "name": "initialize_escrow_vault",
1088
+ "discriminator": [
1089
+ 61,
1090
+ 154,
1091
+ 64,
1092
+ 227,
1093
+ 167,
1094
+ 114,
1095
+ 244,
1096
+ 221
1097
+ ],
1098
+ "accounts": [
1099
+ {
1100
+ "name": "season_escrow_vault",
1101
+ "writable": true,
1102
+ "pda": {
1103
+ "seeds": [
1104
+ {
1105
+ "kind": "const",
1106
+ "value": [
1107
+ 115,
1108
+ 101,
1109
+ 97,
1110
+ 115,
1111
+ 111,
1112
+ 110,
1113
+ 95,
1114
+ 101,
1115
+ 115,
1116
+ 99,
1117
+ 114,
1118
+ 111,
1119
+ 119,
1120
+ 95,
1121
+ 118,
1122
+ 97,
1123
+ 117,
1124
+ 108,
1125
+ 116
1126
+ ]
1127
+ }
1128
+ ]
1129
+ }
1130
+ },
1131
+ {
1132
+ "name": "mizd_mint",
1133
+ "address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99"
1134
+ },
1135
+ {
1136
+ "name": "admin",
1137
+ "writable": true,
1138
+ "signer": true
1139
+ },
1140
+ {
1141
+ "name": "token_program",
1142
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1143
+ },
1144
+ {
1145
+ "name": "system_program",
1146
+ "address": "11111111111111111111111111111111"
1147
+ }
1148
+ ],
1149
+ "args": []
1150
+ },
1151
+ {
1152
+ "name": "initialize_season_settings",
1153
+ "discriminator": [
1154
+ 47,
1155
+ 102,
1156
+ 235,
1157
+ 151,
1158
+ 102,
1159
+ 64,
1160
+ 177,
1161
+ 93
1162
+ ],
1163
+ "accounts": [
1164
+ {
1165
+ "name": "season_settings",
1166
+ "writable": true,
1167
+ "pda": {
1168
+ "seeds": [
1169
+ {
1170
+ "kind": "const",
1171
+ "value": [
1172
+ 115,
1173
+ 101,
1174
+ 97,
1175
+ 115,
1176
+ 111,
1177
+ 110,
1178
+ 95,
1179
+ 115,
1180
+ 101,
1181
+ 116,
1182
+ 116,
1183
+ 105,
1184
+ 110,
1185
+ 103,
1186
+ 115
1187
+ ]
1188
+ }
1189
+ ]
1190
+ }
1191
+ },
1192
+ {
1193
+ "name": "admin",
1194
+ "docs": [
1195
+ "ROOT ADMIN account (ADMIN_PUBLIC_KEY - immutable)",
1196
+ "This is the root admin for core protocol one-time initialization."
1197
+ ],
1198
+ "writable": true,
1199
+ "signer": true
1200
+ },
1201
+ {
1202
+ "name": "system_program",
1203
+ "address": "11111111111111111111111111111111"
1204
+ }
1205
+ ],
1206
+ "args": []
1207
+ },
1208
+ {
1209
+ "name": "initialize_season_vault",
1210
+ "discriminator": [
1211
+ 204,
1212
+ 20,
1213
+ 98,
1214
+ 132,
1215
+ 165,
1216
+ 51,
1217
+ 111,
1218
+ 88
1219
+ ],
1220
+ "accounts": [
1221
+ {
1222
+ "name": "season_deposit_vault",
1223
+ "writable": true,
1224
+ "pda": {
1225
+ "seeds": [
1226
+ {
1227
+ "kind": "const",
1228
+ "value": [
1229
+ 115,
1230
+ 101,
1231
+ 97,
1232
+ 115,
1233
+ 111,
1234
+ 110,
1235
+ 95,
1236
+ 100,
1237
+ 101,
1238
+ 112,
1239
+ 111,
1240
+ 115,
1241
+ 105,
1242
+ 116,
1243
+ 95,
1244
+ 118,
1245
+ 97,
1246
+ 117,
1247
+ 108,
1248
+ 116
1249
+ ]
1250
+ }
1251
+ ]
1252
+ }
1253
+ },
1254
+ {
1255
+ "name": "mizd_mint",
1256
+ "address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99"
1257
+ },
1258
+ {
1259
+ "name": "admin",
1260
+ "docs": [
1261
+ "ROOT ADMIN account (ADMIN_PUBLIC_KEY - immutable)"
1262
+ ],
1263
+ "writable": true,
1264
+ "signer": true
1265
+ },
1266
+ {
1267
+ "name": "token_program",
1268
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1269
+ },
1270
+ {
1271
+ "name": "system_program",
1272
+ "address": "11111111111111111111111111111111"
1273
+ }
1274
+ ],
1275
+ "args": []
1276
+ },
1277
+ {
1278
+ "name": "initialize_statistics",
1279
+ "discriminator": [
1280
+ 129,
1281
+ 124,
1282
+ 166,
1283
+ 22,
1284
+ 217,
1285
+ 242,
1286
+ 69,
1287
+ 180
1288
+ ],
1289
+ "accounts": [
1290
+ {
1291
+ "name": "miztake_statistics",
1292
+ "writable": true,
1293
+ "pda": {
1294
+ "seeds": [
1295
+ {
1296
+ "kind": "const",
1297
+ "value": [
1298
+ 109,
1299
+ 105,
1300
+ 122,
1301
+ 116,
1302
+ 97,
1303
+ 107,
1304
+ 101,
1305
+ 95,
1306
+ 115,
1307
+ 116,
1308
+ 97,
1309
+ 116,
1310
+ 105,
1311
+ 115,
1312
+ 116,
1313
+ 105,
1314
+ 99,
1315
+ 115
1316
+ ]
1317
+ }
1318
+ ]
1319
+ }
1320
+ },
1321
+ {
1322
+ "name": "admin",
1323
+ "docs": [
1324
+ "ROOT ADMIN account (ADMIN_PUBLIC_KEY - immutable)",
1325
+ "Required for one-time statistics initialization"
1326
+ ],
1327
+ "signer": true
1328
+ },
1329
+ {
1330
+ "name": "payer",
1331
+ "writable": true,
1332
+ "signer": true
1333
+ },
1334
+ {
1335
+ "name": "system_program",
1336
+ "address": "11111111111111111111111111111111"
1337
+ }
1338
+ ],
1339
+ "args": []
1340
+ },
1341
+ {
1342
+ "name": "join_season",
1343
+ "discriminator": [
1344
+ 36,
1345
+ 202,
1346
+ 202,
1347
+ 158,
1348
+ 82,
1349
+ 34,
1350
+ 248,
1351
+ 231
1352
+ ],
1353
+ "accounts": [
1354
+ {
1355
+ "name": "season_settings",
1356
+ "writable": true,
1357
+ "pda": {
1358
+ "seeds": [
1359
+ {
1360
+ "kind": "const",
1361
+ "value": [
1362
+ 115,
1363
+ 101,
1364
+ 97,
1365
+ 115,
1366
+ 111,
1367
+ 110,
1368
+ 95,
1369
+ 115,
1370
+ 101,
1371
+ 116,
1372
+ 116,
1373
+ 105,
1374
+ 110,
1375
+ 103,
1376
+ 115
1377
+ ]
1378
+ }
1379
+ ]
1380
+ }
1381
+ },
1382
+ {
1383
+ "name": "season",
1384
+ "writable": true,
1385
+ "pda": {
1386
+ "seeds": [
1387
+ {
1388
+ "kind": "const",
1389
+ "value": [
1390
+ 115,
1391
+ 101,
1392
+ 97,
1393
+ 115,
1394
+ 111,
1395
+ 110
1396
+ ]
1397
+ },
1398
+ {
1399
+ "kind": "arg",
1400
+ "path": "season_number"
1401
+ }
1402
+ ]
1403
+ }
1404
+ },
1405
+ {
1406
+ "name": "season_membership",
1407
+ "writable": true,
1408
+ "pda": {
1409
+ "seeds": [
1410
+ {
1411
+ "kind": "const",
1412
+ "value": [
1413
+ 115,
1414
+ 101,
1415
+ 97,
1416
+ 115,
1417
+ 111,
1418
+ 110,
1419
+ 95,
1420
+ 109,
1421
+ 101,
1422
+ 109,
1423
+ 98,
1424
+ 101,
1425
+ 114,
1426
+ 115,
1427
+ 104,
1428
+ 105,
1429
+ 112
1430
+ ]
1431
+ },
1432
+ {
1433
+ "kind": "account",
1434
+ "path": "user"
1435
+ },
1436
+ {
1437
+ "kind": "arg",
1438
+ "path": "season_membership_id"
1439
+ }
1440
+ ]
1441
+ }
1442
+ },
1443
+ {
1444
+ "name": "season_deposit_vault",
1445
+ "writable": true,
1446
+ "pda": {
1447
+ "seeds": [
1448
+ {
1449
+ "kind": "const",
1450
+ "value": [
1451
+ 115,
1452
+ 101,
1453
+ 97,
1454
+ 115,
1455
+ 111,
1456
+ 110,
1457
+ 95,
1458
+ 100,
1459
+ 101,
1460
+ 112,
1461
+ 111,
1462
+ 115,
1463
+ 105,
1464
+ 116,
1465
+ 95,
1466
+ 118,
1467
+ 97,
1468
+ 117,
1469
+ 108,
1470
+ 116
1471
+ ]
1472
+ }
1473
+ ]
1474
+ }
1475
+ },
1476
+ {
1477
+ "name": "season_escrow_vault",
1478
+ "writable": true,
1479
+ "pda": {
1480
+ "seeds": [
1481
+ {
1482
+ "kind": "const",
1483
+ "value": [
1484
+ 115,
1485
+ 101,
1486
+ 97,
1487
+ 115,
1488
+ 111,
1489
+ 110,
1490
+ 95,
1491
+ 101,
1492
+ 115,
1493
+ 99,
1494
+ 114,
1495
+ 111,
1496
+ 119,
1497
+ 95,
1498
+ 118,
1499
+ 97,
1500
+ 117,
1501
+ 108,
1502
+ 116
1503
+ ]
1504
+ }
1505
+ ]
1506
+ }
1507
+ },
1508
+ {
1509
+ "name": "mizd_mint",
1510
+ "address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99"
1511
+ },
1512
+ {
1513
+ "name": "user_token_account",
1514
+ "writable": true
1515
+ },
1516
+ {
1517
+ "name": "user",
1518
+ "writable": true,
1519
+ "signer": true
1520
+ },
1521
+ {
1522
+ "name": "token_program",
1523
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1524
+ },
1525
+ {
1526
+ "name": "system_program",
1527
+ "address": "11111111111111111111111111111111"
1528
+ }
1529
+ ],
1530
+ "args": [
1531
+ {
1532
+ "name": "season_membership_id",
1533
+ "type": "u64"
1534
+ },
1535
+ {
1536
+ "name": "season_number",
1537
+ "type": "u64"
1538
+ },
1539
+ {
1540
+ "name": "deposit_tier",
1541
+ "type": {
1542
+ "defined": {
1543
+ "name": "SeasonDepositTier"
1544
+ }
1545
+ }
1546
+ },
1547
+ {
1548
+ "name": "referrer",
1549
+ "type": "pubkey"
1550
+ }
1551
+ ]
1552
+ },
1553
+ {
1554
+ "name": "toggle_season_pause",
1555
+ "discriminator": [
1556
+ 219,
1557
+ 104,
1558
+ 185,
1559
+ 18,
1560
+ 26,
1561
+ 249,
1562
+ 117,
1563
+ 51
1564
+ ],
1565
+ "accounts": [
1566
+ {
1567
+ "name": "season_settings",
1568
+ "writable": true,
1569
+ "pda": {
1570
+ "seeds": [
1571
+ {
1572
+ "kind": "const",
1573
+ "value": [
1574
+ 115,
1575
+ 101,
1576
+ 97,
1577
+ 115,
1578
+ 111,
1579
+ 110,
1580
+ 95,
1581
+ 115,
1582
+ 101,
1583
+ 116,
1584
+ 116,
1585
+ 105,
1586
+ 110,
1587
+ 103,
1588
+ 115
1589
+ ]
1590
+ }
1591
+ ]
1592
+ }
1593
+ },
1594
+ {
1595
+ "name": "admin",
1596
+ "docs": [
1597
+ "Admin account (verified via helper)"
1598
+ ],
1599
+ "signer": true
1600
+ }
1601
+ ],
1602
+ "args": []
1603
+ },
1604
+ {
1605
+ "name": "update_season_admin",
1606
+ "discriminator": [
1607
+ 110,
1608
+ 248,
1609
+ 154,
1610
+ 206,
1611
+ 201,
1612
+ 69,
1613
+ 145,
1614
+ 19
1615
+ ],
1616
+ "accounts": [
1617
+ {
1618
+ "name": "season_settings",
1619
+ "writable": true,
1620
+ "pda": {
1621
+ "seeds": [
1622
+ {
1623
+ "kind": "const",
1624
+ "value": [
1625
+ 115,
1626
+ 101,
1627
+ 97,
1628
+ 115,
1629
+ 111,
1630
+ 110,
1631
+ 95,
1632
+ 115,
1633
+ 101,
1634
+ 116,
1635
+ 116,
1636
+ 105,
1637
+ 110,
1638
+ 103,
1639
+ 115
1640
+ ]
1641
+ }
1642
+ ]
1643
+ }
1644
+ },
1645
+ {
1646
+ "name": "current_admin",
1647
+ "docs": [
1648
+ "Current admin account (verified via helper)"
1649
+ ],
1650
+ "signer": true
1651
+ }
1652
+ ],
1653
+ "args": [
1654
+ {
1655
+ "name": "new_admin",
1656
+ "type": "pubkey"
1657
+ }
1658
+ ]
1659
+ },
1660
+ {
1661
+ "name": "view_current_season",
1662
+ "discriminator": [
1663
+ 76,
1664
+ 129,
1665
+ 100,
1666
+ 27,
1667
+ 148,
1668
+ 87,
1669
+ 190,
1670
+ 57
1671
+ ],
1672
+ "accounts": [
1673
+ {
1674
+ "name": "season_settings",
1675
+ "pda": {
1676
+ "seeds": [
1677
+ {
1678
+ "kind": "const",
1679
+ "value": [
1680
+ 115,
1681
+ 101,
1682
+ 97,
1683
+ 115,
1684
+ 111,
1685
+ 110,
1686
+ 95,
1687
+ 115,
1688
+ 101,
1689
+ 116,
1690
+ 116,
1691
+ 105,
1692
+ 110,
1693
+ 103,
1694
+ 115
1695
+ ]
1696
+ }
1697
+ ]
1698
+ }
1699
+ },
1700
+ {
1701
+ "name": "season"
1702
+ }
1703
+ ],
1704
+ "args": [],
1705
+ "returns": {
1706
+ "defined": {
1707
+ "name": "CurrentSeasonView"
1708
+ }
1709
+ }
1710
+ },
1711
+ {
1712
+ "name": "view_season_membership_status",
1713
+ "discriminator": [
1714
+ 60,
1715
+ 141,
1716
+ 192,
1717
+ 3,
1718
+ 159,
1719
+ 138,
1720
+ 206,
1721
+ 207
1722
+ ],
1723
+ "accounts": [
1724
+ {
1725
+ "name": "season_settings",
1726
+ "pda": {
1727
+ "seeds": [
1728
+ {
1729
+ "kind": "const",
1730
+ "value": [
1731
+ 115,
1732
+ 101,
1733
+ 97,
1734
+ 115,
1735
+ 111,
1736
+ 110,
1737
+ 95,
1738
+ 115,
1739
+ 101,
1740
+ 116,
1741
+ 116,
1742
+ 105,
1743
+ 110,
1744
+ 103,
1745
+ 115
1746
+ ]
1747
+ }
1748
+ ]
1749
+ }
1750
+ },
1751
+ {
1752
+ "name": "season",
1753
+ "pda": {
1754
+ "seeds": [
1755
+ {
1756
+ "kind": "const",
1757
+ "value": [
1758
+ 115,
1759
+ 101,
1760
+ 97,
1761
+ 115,
1762
+ 111,
1763
+ 110
1764
+ ]
1765
+ },
1766
+ {
1767
+ "kind": "account",
1768
+ "path": "season_membership.season_number",
1769
+ "account": "SeasonMembership"
1770
+ }
1771
+ ]
1772
+ }
1773
+ },
1774
+ {
1775
+ "name": "season_membership"
1776
+ }
1777
+ ],
1778
+ "args": [],
1779
+ "returns": {
1780
+ "defined": {
1781
+ "name": "SeasonMembershipStatusView"
1782
+ }
1783
+ }
1784
+ },
1785
+ {
1786
+ "name": "view_window_status",
1787
+ "discriminator": [
1788
+ 41,
1789
+ 1,
1790
+ 169,
1791
+ 46,
1792
+ 223,
1793
+ 218,
1794
+ 51,
1795
+ 241
1796
+ ],
1797
+ "accounts": [
1798
+ {
1799
+ "name": "reward_window"
1800
+ }
1801
+ ],
1802
+ "args": [],
1803
+ "returns": {
1804
+ "defined": {
1805
+ "name": "WindowStatusView"
1806
+ }
1807
+ }
1808
+ },
1809
+ {
1810
+ "name": "withdraw_season_deposit",
1811
+ "discriminator": [
1812
+ 225,
1813
+ 167,
1814
+ 83,
1815
+ 31,
1816
+ 26,
1817
+ 222,
1818
+ 40,
1819
+ 44
1820
+ ],
1821
+ "accounts": [
1822
+ {
1823
+ "name": "season_settings",
1824
+ "writable": true,
1825
+ "pda": {
1826
+ "seeds": [
1827
+ {
1828
+ "kind": "const",
1829
+ "value": [
1830
+ 115,
1831
+ 101,
1832
+ 97,
1833
+ 115,
1834
+ 111,
1835
+ 110,
1836
+ 95,
1837
+ 115,
1838
+ 101,
1839
+ 116,
1840
+ 116,
1841
+ 105,
1842
+ 110,
1843
+ 103,
1844
+ 115
1845
+ ]
1846
+ }
1847
+ ]
1848
+ }
1849
+ },
1850
+ {
1851
+ "name": "season",
1852
+ "writable": true,
1853
+ "pda": {
1854
+ "seeds": [
1855
+ {
1856
+ "kind": "const",
1857
+ "value": [
1858
+ 115,
1859
+ 101,
1860
+ 97,
1861
+ 115,
1862
+ 111,
1863
+ 110
1864
+ ]
1865
+ },
1866
+ {
1867
+ "kind": "account",
1868
+ "path": "season_membership.season_number",
1869
+ "account": "SeasonMembership"
1870
+ }
1871
+ ]
1872
+ }
1873
+ },
1874
+ {
1875
+ "name": "season_membership",
1876
+ "writable": true,
1877
+ "pda": {
1878
+ "seeds": [
1879
+ {
1880
+ "kind": "const",
1881
+ "value": [
1882
+ 115,
1883
+ 101,
1884
+ 97,
1885
+ 115,
1886
+ 111,
1887
+ 110,
1888
+ 95,
1889
+ 109,
1890
+ 101,
1891
+ 109,
1892
+ 98,
1893
+ 101,
1894
+ 114,
1895
+ 115,
1896
+ 104,
1897
+ 105,
1898
+ 112
1899
+ ]
1900
+ },
1901
+ {
1902
+ "kind": "account",
1903
+ "path": "user"
1904
+ },
1905
+ {
1906
+ "kind": "account",
1907
+ "path": "season_membership.id",
1908
+ "account": "SeasonMembership"
1909
+ }
1910
+ ]
1911
+ }
1912
+ },
1913
+ {
1914
+ "name": "season_deposit_vault",
1915
+ "writable": true,
1916
+ "pda": {
1917
+ "seeds": [
1918
+ {
1919
+ "kind": "const",
1920
+ "value": [
1921
+ 115,
1922
+ 101,
1923
+ 97,
1924
+ 115,
1925
+ 111,
1926
+ 110,
1927
+ 95,
1928
+ 100,
1929
+ 101,
1930
+ 112,
1931
+ 111,
1932
+ 115,
1933
+ 105,
1934
+ 116,
1935
+ 95,
1936
+ 118,
1937
+ 97,
1938
+ 117,
1939
+ 108,
1940
+ 116
1941
+ ]
1942
+ }
1943
+ ]
1944
+ }
1945
+ },
1946
+ {
1947
+ "name": "season_escrow_vault",
1948
+ "writable": true,
1949
+ "pda": {
1950
+ "seeds": [
1951
+ {
1952
+ "kind": "const",
1953
+ "value": [
1954
+ 115,
1955
+ 101,
1956
+ 97,
1957
+ 115,
1958
+ 111,
1959
+ 110,
1960
+ 95,
1961
+ 101,
1962
+ 115,
1963
+ 99,
1964
+ 114,
1965
+ 111,
1966
+ 119,
1967
+ 95,
1968
+ 118,
1969
+ 97,
1970
+ 117,
1971
+ 108,
1972
+ 116
1973
+ ]
1974
+ }
1975
+ ]
1976
+ }
1977
+ },
1978
+ {
1979
+ "name": "mizd_mint",
1980
+ "address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99"
1981
+ },
1982
+ {
1983
+ "name": "user_token_account",
1984
+ "writable": true
1985
+ },
1986
+ {
1987
+ "name": "user",
1988
+ "signer": true
1989
+ },
1990
+ {
1991
+ "name": "token_program",
1992
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1993
+ }
1994
+ ],
1995
+ "args": []
1996
+ }
1997
+ ],
1998
+ "accounts": [
1999
+ {
2000
+ "name": "Miztake",
2001
+ "discriminator": [
2002
+ 129,
2003
+ 206,
2004
+ 211,
2005
+ 252,
2006
+ 240,
2007
+ 167,
2008
+ 211,
2009
+ 33
2010
+ ]
2011
+ },
2012
+ {
2013
+ "name": "MiztakeStatistics",
2014
+ "discriminator": [
2015
+ 117,
2016
+ 72,
2017
+ 186,
2018
+ 23,
2019
+ 192,
2020
+ 11,
2021
+ 30,
2022
+ 211
2023
+ ]
2024
+ },
2025
+ {
2026
+ "name": "ReferralPenaltyClaim",
2027
+ "discriminator": [
2028
+ 123,
2029
+ 213,
2030
+ 130,
2031
+ 197,
2032
+ 108,
2033
+ 102,
2034
+ 61,
2035
+ 214
2036
+ ]
2037
+ },
2038
+ {
2039
+ "name": "RewardWindow",
2040
+ "discriminator": [
2041
+ 24,
2042
+ 236,
2043
+ 122,
2044
+ 67,
2045
+ 55,
2046
+ 183,
2047
+ 103,
2048
+ 82
2049
+ ]
2050
+ },
2051
+ {
2052
+ "name": "Season",
2053
+ "discriminator": [
2054
+ 76,
2055
+ 67,
2056
+ 93,
2057
+ 156,
2058
+ 180,
2059
+ 157,
2060
+ 248,
2061
+ 47
2062
+ ]
2063
+ },
2064
+ {
2065
+ "name": "SeasonMembership",
2066
+ "discriminator": [
2067
+ 206,
2068
+ 10,
2069
+ 3,
2070
+ 120,
2071
+ 168,
2072
+ 33,
2073
+ 47,
2074
+ 103
2075
+ ]
2076
+ },
2077
+ {
2078
+ "name": "SeasonSettings",
2079
+ "discriminator": [
2080
+ 1,
2081
+ 18,
2082
+ 140,
2083
+ 59,
2084
+ 137,
2085
+ 33,
2086
+ 168,
2087
+ 162
2088
+ ]
2089
+ },
2090
+ {
2091
+ "name": "UserStats",
2092
+ "discriminator": [
2093
+ 176,
2094
+ 223,
2095
+ 136,
2096
+ 27,
2097
+ 122,
2098
+ 79,
2099
+ 32,
2100
+ 227
2101
+ ]
2102
+ },
2103
+ {
2104
+ "name": "UserWindowParticipation",
2105
+ "discriminator": [
2106
+ 209,
2107
+ 255,
2108
+ 41,
2109
+ 42,
2110
+ 4,
2111
+ 20,
2112
+ 122,
2113
+ 30
2114
+ ]
2115
+ }
2116
+ ],
2117
+ "events": [
2118
+ {
2119
+ "name": "MiztakeCreated",
2120
+ "discriminator": [
2121
+ 31,
2122
+ 177,
2123
+ 151,
2124
+ 81,
2125
+ 77,
2126
+ 97,
2127
+ 39,
2128
+ 14
2129
+ ]
2130
+ },
2131
+ {
2132
+ "name": "PostConfirmed",
2133
+ "discriminator": [
2134
+ 166,
2135
+ 81,
2136
+ 224,
2137
+ 32,
2138
+ 49,
2139
+ 74,
2140
+ 62,
2141
+ 45
2142
+ ]
2143
+ },
2144
+ {
2145
+ "name": "ReferralPenaltyClaimed",
2146
+ "discriminator": [
2147
+ 214,
2148
+ 61,
2149
+ 130,
2150
+ 197,
2151
+ 204,
2152
+ 74,
2153
+ 63,
2154
+ 196
2155
+ ]
2156
+ },
2157
+ {
2158
+ "name": "ReferralRewardPaid",
2159
+ "discriminator": [
2160
+ 247,
2161
+ 206,
2162
+ 14,
2163
+ 191,
2164
+ 85,
2165
+ 164,
2166
+ 46,
2167
+ 228
2168
+ ]
2169
+ },
2170
+ {
2171
+ "name": "SeasonAdminUpdated",
2172
+ "discriminator": [
2173
+ 157,
2174
+ 243,
2175
+ 217,
2176
+ 33,
2177
+ 45,
2178
+ 103,
2179
+ 74,
2180
+ 124
2181
+ ]
2182
+ },
2183
+ {
2184
+ "name": "SeasonDepositWithdrawn",
2185
+ "discriminator": [
2186
+ 68,
2187
+ 246,
2188
+ 67,
2189
+ 191,
2190
+ 70,
2191
+ 105,
2192
+ 44,
2193
+ 27
2194
+ ]
2195
+ },
2196
+ {
2197
+ "name": "SeasonFinalized",
2198
+ "discriminator": [
2199
+ 17,
2200
+ 0,
2201
+ 146,
2202
+ 8,
2203
+ 1,
2204
+ 167,
2205
+ 147,
2206
+ 101
2207
+ ]
2208
+ },
2209
+ {
2210
+ "name": "SeasonInitialized",
2211
+ "discriminator": [
2212
+ 192,
2213
+ 104,
2214
+ 122,
2215
+ 236,
2216
+ 147,
2217
+ 151,
2218
+ 4,
2219
+ 93
2220
+ ]
2221
+ },
2222
+ {
2223
+ "name": "SeasonJoined",
2224
+ "discriminator": [
2225
+ 85,
2226
+ 246,
2227
+ 110,
2228
+ 209,
2229
+ 46,
2230
+ 188,
2231
+ 215,
2232
+ 93
2233
+ ]
2234
+ },
2235
+ {
2236
+ "name": "SeasonSystemPauseToggled",
2237
+ "discriminator": [
2238
+ 152,
2239
+ 81,
2240
+ 137,
2241
+ 83,
2242
+ 147,
2243
+ 138,
2244
+ 200,
2245
+ 123
2246
+ ]
2247
+ },
2248
+ {
2249
+ "name": "WindowFinalized",
2250
+ "discriminator": [
2251
+ 88,
2252
+ 205,
2253
+ 50,
2254
+ 2,
2255
+ 189,
2256
+ 54,
2257
+ 157,
2258
+ 192
2259
+ ]
2260
+ },
2261
+ {
2262
+ "name": "WindowRewardClaimed",
2263
+ "discriminator": [
2264
+ 226,
2265
+ 46,
2266
+ 195,
2267
+ 61,
2268
+ 7,
2269
+ 100,
2270
+ 120,
2271
+ 152
2272
+ ]
2273
+ }
2274
+ ],
2275
+ "errors": [
2276
+ {
2277
+ "code": 6000,
2278
+ "name": "UsernameTooLong",
2279
+ "msg": "Telegram username cannot be longer than 21 characters"
2280
+ },
2281
+ {
2282
+ "code": 6001,
2283
+ "name": "Unauthorized",
2284
+ "msg": "Unauthorized: Only admin can perform this action"
2285
+ },
2286
+ {
2287
+ "code": 6002,
2288
+ "name": "Overflow",
2289
+ "msg": "Arithmetic overflow"
2290
+ },
2291
+ {
2292
+ "code": 6003,
2293
+ "name": "InsufficientVaultBalance",
2294
+ "msg": "Insufficient vault balance"
2295
+ },
2296
+ {
2297
+ "code": 6004,
2298
+ "name": "InvalidHashLength",
2299
+ "msg": "SHA hash must be 64 hex characters (32 bytes)"
2300
+ },
2301
+ {
2302
+ "code": 6005,
2303
+ "name": "InvalidHashFormat",
2304
+ "msg": "Invalid hash format (must be hex string)"
2305
+ },
2306
+ {
2307
+ "code": 6006,
2308
+ "name": "SeasonSystemPaused",
2309
+ "msg": "Season system is paused"
2310
+ },
2311
+ {
2312
+ "code": 6007,
2313
+ "name": "CannotInitializeNewSeason",
2314
+ "msg": "Cannot initialize new season yet"
2315
+ },
2316
+ {
2317
+ "code": 6008,
2318
+ "name": "PreviousSeasonStillActive",
2319
+ "msg": "Previous season is still active"
2320
+ },
2321
+ {
2322
+ "code": 6009,
2323
+ "name": "SeasonNotActive",
2324
+ "msg": "Season is not active"
2325
+ },
2326
+ {
2327
+ "code": 6010,
2328
+ "name": "SeasonEnded",
2329
+ "msg": "Season has ended"
2330
+ },
2331
+ {
2332
+ "code": 6011,
2333
+ "name": "SeasonStillActive",
2334
+ "msg": "Season is still active (cannot withdraw yet)"
2335
+ },
2336
+ {
2337
+ "code": 6012,
2338
+ "name": "InvalidTimestamp",
2339
+ "msg": "Invalid timestamp"
2340
+ },
2341
+ {
2342
+ "code": 6013,
2343
+ "name": "InvalidWindowNumber",
2344
+ "msg": "Invalid window number"
2345
+ },
2346
+ {
2347
+ "code": 6014,
2348
+ "name": "InvalidSeasonMembership",
2349
+ "msg": "Invalid season membership"
2350
+ },
2351
+ {
2352
+ "code": 6015,
2353
+ "name": "SeasonMembershipInactive",
2354
+ "msg": "Season membership is inactive"
2355
+ },
2356
+ {
2357
+ "code": 6016,
2358
+ "name": "WrongSeason",
2359
+ "msg": "Wrong season"
2360
+ },
2361
+ {
2362
+ "code": 6017,
2363
+ "name": "AlreadyPostedThisWindow",
2364
+ "msg": "User already posted in this window"
2365
+ },
2366
+ {
2367
+ "code": 6018,
2368
+ "name": "MiztakeNotInWindow",
2369
+ "msg": "Miztake was not created within the reward window"
2370
+ },
2371
+ {
2372
+ "code": 6019,
2373
+ "name": "MiztakeOwnershipMismatch",
2374
+ "msg": "Miztake does not belong to the user"
2375
+ },
2376
+ {
2377
+ "code": 6020,
2378
+ "name": "MiztakeAlreadyUsed",
2379
+ "msg": "Miztake has already been used for another season window"
2380
+ },
2381
+ {
2382
+ "code": 6021,
2383
+ "name": "WindowStillActive",
2384
+ "msg": "Window is still active (cannot finalize yet)"
2385
+ },
2386
+ {
2387
+ "code": 6022,
2388
+ "name": "WindowConfirmationClosed",
2389
+ "msg": "Confirmation closed for this window (claim buffer has started)"
2390
+ },
2391
+ {
2392
+ "code": 6023,
2393
+ "name": "WindowUninitialized",
2394
+ "msg": "Window is not initialized"
2395
+ },
2396
+ {
2397
+ "code": 6024,
2398
+ "name": "DidNotPostSuccessfully",
2399
+ "msg": "User did not post successfully in this window"
2400
+ },
2401
+ {
2402
+ "code": 6025,
2403
+ "name": "RewardAlreadyClaimed",
2404
+ "msg": "Reward already claimed"
2405
+ },
2406
+ {
2407
+ "code": 6026,
2408
+ "name": "DepositAlreadyWithdrawn",
2409
+ "msg": "Deposit already withdrawn"
2410
+ },
2411
+ {
2412
+ "code": 6027,
2413
+ "name": "DivisionByZero",
2414
+ "msg": "Division by zero"
2415
+ },
2416
+ {
2417
+ "code": 6028,
2418
+ "name": "SeasonFull",
2419
+ "msg": "Season is full (maximum members reached)"
2420
+ },
2421
+ {
2422
+ "code": 6029,
2423
+ "name": "MiztakeAlreadyExistsForWindow",
2424
+ "msg": "A miztake already exists for this window participation"
2425
+ },
2426
+ {
2427
+ "code": 6030,
2428
+ "name": "MiztakeMismatch",
2429
+ "msg": "Miztake does not match the participation record"
2430
+ },
2431
+ {
2432
+ "code": 6031,
2433
+ "name": "InvalidContext",
2434
+ "msg": "Invalid context for lazy initialization"
2435
+ },
2436
+ {
2437
+ "code": 6032,
2438
+ "name": "InvalidSeasonSettings",
2439
+ "msg": "Invalid season settings configuration"
2440
+ },
2441
+ {
2442
+ "code": 6033,
2443
+ "name": "InvalidReferrer",
2444
+ "msg": "Invalid referrer"
2445
+ },
2446
+ {
2447
+ "code": 6034,
2448
+ "name": "InvalidReferrerTokenAccount",
2449
+ "msg": "Invalid referrer token account"
2450
+ },
2451
+ {
2452
+ "code": 6035,
2453
+ "name": "ReferralPenaltyAlreadyClaimed",
2454
+ "msg": "Referral penalty already claimed for this user/window"
2455
+ },
2456
+ {
2457
+ "code": 6036,
2458
+ "name": "ReferralPenaltyClaimNotAvailableYet",
2459
+ "msg": "Referral penalty claim not available yet (must wait until window end + claim buffer)"
2460
+ },
2461
+ {
2462
+ "code": 6037,
2463
+ "name": "ReferralPenaltyNotEligibleForWindow",
2464
+ "msg": "Referred user was not eligible for this window"
2465
+ },
2466
+ {
2467
+ "code": 6038,
2468
+ "name": "ReferralPenaltyNoMissedPenalty",
2469
+ "msg": "Referred user posted successfully (no penalty to claim)"
2470
+ }
2471
+ ],
2472
+ "types": [
2473
+ {
2474
+ "name": "CurrentSeasonView",
2475
+ "type": {
2476
+ "kind": "struct",
2477
+ "fields": [
2478
+ {
2479
+ "name": "season_number",
2480
+ "type": "u64"
2481
+ },
2482
+ {
2483
+ "name": "started_at",
2484
+ "type": "i64"
2485
+ },
2486
+ {
2487
+ "name": "ends_at",
2488
+ "type": "i64"
2489
+ },
2490
+ {
2491
+ "name": "total_windows",
2492
+ "type": "u8"
2493
+ },
2494
+ {
2495
+ "name": "total_members",
2496
+ "type": "u64"
2497
+ },
2498
+ {
2499
+ "name": "total_deposits_held",
2500
+ "type": "u64"
2501
+ },
2502
+ {
2503
+ "name": "total_successful_posts",
2504
+ "type": "u64"
2505
+ },
2506
+ {
2507
+ "name": "total_penalties_collected",
2508
+ "type": "u64"
2509
+ },
2510
+ {
2511
+ "name": "current_window_number",
2512
+ "type": "u64"
2513
+ },
2514
+ {
2515
+ "name": "windows_remaining",
2516
+ "type": "u64"
2517
+ },
2518
+ {
2519
+ "name": "time_remaining",
2520
+ "type": "i64"
2521
+ },
2522
+ {
2523
+ "name": "is_active",
2524
+ "type": "bool"
2525
+ },
2526
+ {
2527
+ "name": "is_joinable",
2528
+ "type": "bool"
2529
+ }
2530
+ ]
2531
+ }
2532
+ },
2533
+ {
2534
+ "name": "Miztake",
2535
+ "type": {
2536
+ "kind": "struct",
2537
+ "fields": [
2538
+ {
2539
+ "name": "id",
2540
+ "type": "u64"
2541
+ },
2542
+ {
2543
+ "name": "telegram_id",
2544
+ "type": "u64"
2545
+ },
2546
+ {
2547
+ "name": "telegram_username",
2548
+ "type": "string"
2549
+ },
2550
+ {
2551
+ "name": "perceptual_hash",
2552
+ "type": "string"
2553
+ },
2554
+ {
2555
+ "name": "average_hash",
2556
+ "type": "string"
2557
+ },
2558
+ {
2559
+ "name": "difference_hash",
2560
+ "type": "string"
2561
+ },
2562
+ {
2563
+ "name": "wavelet_hash",
2564
+ "type": "string"
2565
+ },
2566
+ {
2567
+ "name": "sha_hash",
2568
+ "type": "string"
2569
+ },
2570
+ {
2571
+ "name": "computed_at",
2572
+ "type": "string"
2573
+ },
2574
+ {
2575
+ "name": "creator",
2576
+ "type": "pubkey"
2577
+ },
2578
+ {
2579
+ "name": "user_stats",
2580
+ "type": "pubkey"
2581
+ },
2582
+ {
2583
+ "name": "user_key",
2584
+ "type": "pubkey"
2585
+ },
2586
+ {
2587
+ "name": "onchain_created_at",
2588
+ "docs": [
2589
+ "Timestamp when miztake was created"
2590
+ ],
2591
+ "type": "i64"
2592
+ },
2593
+ {
2594
+ "name": "used_in_season",
2595
+ "docs": [
2596
+ "Season number where this Miztake was used (0 if never used)"
2597
+ ],
2598
+ "type": "u64"
2599
+ },
2600
+ {
2601
+ "name": "used_in_window",
2602
+ "docs": [
2603
+ "Window number where this Miztake was used (0 if never used)"
2604
+ ],
2605
+ "type": "u64"
2606
+ }
2607
+ ]
2608
+ }
2609
+ },
2610
+ {
2611
+ "name": "MiztakeCreated",
2612
+ "type": {
2613
+ "kind": "struct",
2614
+ "fields": [
2615
+ {
2616
+ "name": "miztake_id",
2617
+ "type": "u64"
2618
+ },
2619
+ {
2620
+ "name": "telegram_id",
2621
+ "type": "u64"
2622
+ },
2623
+ {
2624
+ "name": "telegram_username",
2625
+ "type": "string"
2626
+ },
2627
+ {
2628
+ "name": "creator",
2629
+ "type": "pubkey"
2630
+ },
2631
+ {
2632
+ "name": "user_stats",
2633
+ "type": "pubkey"
2634
+ },
2635
+ {
2636
+ "name": "season_number",
2637
+ "type": "u64"
2638
+ },
2639
+ {
2640
+ "name": "window_number",
2641
+ "type": "u64"
2642
+ },
2643
+ {
2644
+ "name": "season_membership_id",
2645
+ "type": "u64"
2646
+ },
2647
+ {
2648
+ "name": "timestamp",
2649
+ "type": "i64"
2650
+ }
2651
+ ]
2652
+ }
2653
+ },
2654
+ {
2655
+ "name": "MiztakeStatistics",
2656
+ "type": {
2657
+ "kind": "struct",
2658
+ "fields": [
2659
+ {
2660
+ "name": "total_miztakes",
2661
+ "docs": [
2662
+ "Total number of miztakes created (global counter for Miztake IDs)"
2663
+ ],
2664
+ "type": "u64"
2665
+ },
2666
+ {
2667
+ "name": "bump",
2668
+ "docs": [
2669
+ "Bump seed for PDA"
2670
+ ],
2671
+ "type": "u8"
2672
+ }
2673
+ ]
2674
+ }
2675
+ },
2676
+ {
2677
+ "name": "PostConfirmed",
2678
+ "type": {
2679
+ "kind": "struct",
2680
+ "fields": [
2681
+ {
2682
+ "name": "season_number",
2683
+ "type": "u64"
2684
+ },
2685
+ {
2686
+ "name": "window_number",
2687
+ "type": "u64"
2688
+ },
2689
+ {
2690
+ "name": "user",
2691
+ "type": "pubkey"
2692
+ },
2693
+ {
2694
+ "name": "season_membership_id",
2695
+ "type": "u64"
2696
+ },
2697
+ {
2698
+ "name": "miztake_id",
2699
+ "type": "u64"
2700
+ },
2701
+ {
2702
+ "name": "was_on_time",
2703
+ "type": "bool"
2704
+ },
2705
+ {
2706
+ "name": "penalty_amount",
2707
+ "type": "u64"
2708
+ },
2709
+ {
2710
+ "name": "timestamp",
2711
+ "type": "i64"
2712
+ }
2713
+ ]
2714
+ }
2715
+ },
2716
+ {
2717
+ "name": "ReferralPenaltyClaim",
2718
+ "type": {
2719
+ "kind": "struct",
2720
+ "fields": [
2721
+ {
2722
+ "name": "referred_user",
2723
+ "docs": [
2724
+ "Referred user (the user who missed)"
2725
+ ],
2726
+ "type": "pubkey"
2727
+ },
2728
+ {
2729
+ "name": "season_number",
2730
+ "docs": [
2731
+ "Season number"
2732
+ ],
2733
+ "type": "u64"
2734
+ },
2735
+ {
2736
+ "name": "window_number",
2737
+ "docs": [
2738
+ "Window number"
2739
+ ],
2740
+ "type": "u64"
2741
+ },
2742
+ {
2743
+ "name": "season_membership_id",
2744
+ "docs": [
2745
+ "Referred user's season membership id"
2746
+ ],
2747
+ "type": "u64"
2748
+ },
2749
+ {
2750
+ "name": "claimant",
2751
+ "docs": [
2752
+ "Who claimed (referrer or root admin)"
2753
+ ],
2754
+ "type": "pubkey"
2755
+ },
2756
+ {
2757
+ "name": "amount",
2758
+ "docs": [
2759
+ "Amount paid out (20% of per-window penalty)"
2760
+ ],
2761
+ "type": "u64"
2762
+ },
2763
+ {
2764
+ "name": "claimed_at",
2765
+ "docs": [
2766
+ "When claim was executed"
2767
+ ],
2768
+ "type": "i64"
2769
+ },
2770
+ {
2771
+ "name": "claimed",
2772
+ "docs": [
2773
+ "Whether claim has been executed"
2774
+ ],
2775
+ "type": "bool"
2776
+ },
2777
+ {
2778
+ "name": "bump",
2779
+ "docs": [
2780
+ "PDA bump"
2781
+ ],
2782
+ "type": "u8"
2783
+ }
2784
+ ]
2785
+ }
2786
+ },
2787
+ {
2788
+ "name": "ReferralPenaltyClaimed",
2789
+ "type": {
2790
+ "kind": "struct",
2791
+ "fields": [
2792
+ {
2793
+ "name": "season_number",
2794
+ "type": "u64"
2795
+ },
2796
+ {
2797
+ "name": "window_number",
2798
+ "type": "u64"
2799
+ },
2800
+ {
2801
+ "name": "referred_user",
2802
+ "type": "pubkey"
2803
+ },
2804
+ {
2805
+ "name": "season_membership_id",
2806
+ "type": "u64"
2807
+ },
2808
+ {
2809
+ "name": "claimant",
2810
+ "type": "pubkey"
2811
+ },
2812
+ {
2813
+ "name": "recipient",
2814
+ "type": "pubkey"
2815
+ },
2816
+ {
2817
+ "name": "amount",
2818
+ "type": "u64"
2819
+ },
2820
+ {
2821
+ "name": "timestamp",
2822
+ "type": "i64"
2823
+ }
2824
+ ]
2825
+ }
2826
+ },
2827
+ {
2828
+ "name": "ReferralRewardPaid",
2829
+ "type": {
2830
+ "kind": "struct",
2831
+ "fields": [
2832
+ {
2833
+ "name": "season_number",
2834
+ "type": "u64"
2835
+ },
2836
+ {
2837
+ "name": "window_number",
2838
+ "type": "u64"
2839
+ },
2840
+ {
2841
+ "name": "user",
2842
+ "type": "pubkey"
2843
+ },
2844
+ {
2845
+ "name": "referrer",
2846
+ "type": "pubkey"
2847
+ },
2848
+ {
2849
+ "name": "user_amount",
2850
+ "type": "u64"
2851
+ },
2852
+ {
2853
+ "name": "referral_amount",
2854
+ "type": "u64"
2855
+ },
2856
+ {
2857
+ "name": "timestamp",
2858
+ "type": "i64"
2859
+ }
2860
+ ]
2861
+ }
2862
+ },
2863
+ {
2864
+ "name": "RewardWindow",
2865
+ "type": {
2866
+ "kind": "struct",
2867
+ "fields": [
2868
+ {
2869
+ "name": "season_number",
2870
+ "docs": [
2871
+ "Season this window belongs to"
2872
+ ],
2873
+ "type": "u64"
2874
+ },
2875
+ {
2876
+ "name": "window_number",
2877
+ "docs": [
2878
+ "Window number (0-20)"
2879
+ ],
2880
+ "type": "u64"
2881
+ },
2882
+ {
2883
+ "name": "window_state",
2884
+ "docs": [
2885
+ "Current state of the window"
2886
+ ],
2887
+ "type": {
2888
+ "defined": {
2889
+ "name": "WindowState"
2890
+ }
2891
+ }
2892
+ },
2893
+ {
2894
+ "name": "started_at",
2895
+ "docs": [
2896
+ "Timestamp when window started"
2897
+ ],
2898
+ "type": "i64"
2899
+ },
2900
+ {
2901
+ "name": "ends_at",
2902
+ "docs": [
2903
+ "Timestamp when window ends"
2904
+ ],
2905
+ "type": "i64"
2906
+ },
2907
+ {
2908
+ "name": "total_members_in_season",
2909
+ "docs": [
2910
+ "Total members in season (snapshot at window finalization)"
2911
+ ],
2912
+ "type": "u64"
2913
+ },
2914
+ {
2915
+ "name": "penalty_pool",
2916
+ "docs": [
2917
+ "Accumulated penalties from missed/late posts (tracked for redundancy)"
2918
+ ],
2919
+ "type": "u64"
2920
+ },
2921
+ {
2922
+ "name": "successful_posters_count",
2923
+ "docs": [
2924
+ "Number of users who posted successfully"
2925
+ ],
2926
+ "type": "u64"
2927
+ },
2928
+ {
2929
+ "name": "successful_stake_total",
2930
+ "docs": [
2931
+ "Total stake of on-time confirmed posters for this window (Y), in base units."
2932
+ ],
2933
+ "type": "u64"
2934
+ },
2935
+ {
2936
+ "name": "reward_per_poster",
2937
+ "docs": [
2938
+ "Reward amount per successful poster (calculated when finalized)"
2939
+ ],
2940
+ "type": "u64"
2941
+ },
2942
+ {
2943
+ "name": "is_finalized",
2944
+ "docs": [
2945
+ "Whether rewards have been calculated"
2946
+ ],
2947
+ "type": "bool"
2948
+ },
2949
+ {
2950
+ "name": "bump",
2951
+ "docs": [
2952
+ "Bump seed for PDA"
2953
+ ],
2954
+ "type": "u8"
2955
+ }
2956
+ ]
2957
+ }
2958
+ },
2959
+ {
2960
+ "name": "Season",
2961
+ "type": {
2962
+ "kind": "struct",
2963
+ "fields": [
2964
+ {
2965
+ "name": "season_number",
2966
+ "docs": [
2967
+ "Unique season number"
2968
+ ],
2969
+ "type": "u64"
2970
+ },
2971
+ {
2972
+ "name": "season_state",
2973
+ "docs": [
2974
+ "Current state of the season"
2975
+ ],
2976
+ "type": {
2977
+ "defined": {
2978
+ "name": "SeasonState"
2979
+ }
2980
+ }
2981
+ },
2982
+ {
2983
+ "name": "started_at",
2984
+ "docs": [
2985
+ "Timestamp when season started"
2986
+ ],
2987
+ "type": "i64"
2988
+ },
2989
+ {
2990
+ "name": "ends_at",
2991
+ "docs": [
2992
+ "Timestamp when season ends"
2993
+ ],
2994
+ "type": "i64"
2995
+ },
2996
+ {
2997
+ "name": "total_windows",
2998
+ "docs": [
2999
+ "Total number of windows in this season"
3000
+ ],
3001
+ "type": "u8"
3002
+ },
3003
+ {
3004
+ "name": "total_members",
3005
+ "docs": [
3006
+ "Total number of members who joined"
3007
+ ],
3008
+ "type": "u64"
3009
+ },
3010
+ {
3011
+ "name": "copper_members_count",
3012
+ "docs": [
3013
+ "Per-tier join counters (count total joins per season; not decremented on withdraw)"
3014
+ ],
3015
+ "type": "u64"
3016
+ },
3017
+ {
3018
+ "name": "silver_members_count",
3019
+ "type": "u64"
3020
+ },
3021
+ {
3022
+ "name": "gold_members_count",
3023
+ "type": "u64"
3024
+ },
3025
+ {
3026
+ "name": "platinum_members_count",
3027
+ "type": "u64"
3028
+ },
3029
+ {
3030
+ "name": "mithril_members_count",
3031
+ "type": "u64"
3032
+ },
3033
+ {
3034
+ "name": "eligible_stake_per_window",
3035
+ "docs": [
3036
+ "Total eligible stake per window (X), in base units.",
3037
+ "Index is the window_number (0..20)."
3038
+ ],
3039
+ "type": {
3040
+ "array": [
3041
+ "u64",
3042
+ 21
3043
+ ]
3044
+ }
3045
+ },
3046
+ {
3047
+ "name": "total_deposits_held",
3048
+ "docs": [
3049
+ "Total deposits held for this season"
3050
+ ],
3051
+ "type": "u64"
3052
+ },
3053
+ {
3054
+ "name": "total_successful_posts",
3055
+ "docs": [
3056
+ "Total successful posts across all windows"
3057
+ ],
3058
+ "type": "u64"
3059
+ },
3060
+ {
3061
+ "name": "total_penalties_collected",
3062
+ "docs": [
3063
+ "Total penalties collected this season"
3064
+ ],
3065
+ "type": "u64"
3066
+ },
3067
+ {
3068
+ "name": "bump",
3069
+ "docs": [
3070
+ "Bump seed for PDA"
3071
+ ],
3072
+ "type": "u8"
3073
+ }
3074
+ ]
3075
+ }
3076
+ },
3077
+ {
3078
+ "name": "SeasonAdminUpdated",
3079
+ "type": {
3080
+ "kind": "struct",
3081
+ "fields": [
3082
+ {
3083
+ "name": "old_admin",
3084
+ "type": "pubkey"
3085
+ },
3086
+ {
3087
+ "name": "new_admin",
3088
+ "type": "pubkey"
3089
+ },
3090
+ {
3091
+ "name": "timestamp",
3092
+ "type": "i64"
3093
+ }
3094
+ ]
3095
+ }
3096
+ },
3097
+ {
3098
+ "name": "SeasonDepositTier",
3099
+ "docs": [
3100
+ "Season deposit tier chosen by the user.",
3101
+ "",
3102
+ "Economics:",
3103
+ "- Per-window penalty is tier-based (fixed amount per window)",
3104
+ "- Full season deposit is (per-window penalty) * total_windows_per_season"
3105
+ ],
3106
+ "type": {
3107
+ "kind": "enum",
3108
+ "variants": [
3109
+ {
3110
+ "name": "Copper"
3111
+ },
3112
+ {
3113
+ "name": "Silver"
3114
+ },
3115
+ {
3116
+ "name": "Gold"
3117
+ },
3118
+ {
3119
+ "name": "Platinum"
3120
+ },
3121
+ {
3122
+ "name": "Mithril"
3123
+ }
3124
+ ]
3125
+ }
3126
+ },
3127
+ {
3128
+ "name": "SeasonDepositWithdrawn",
3129
+ "type": {
3130
+ "kind": "struct",
3131
+ "fields": [
3132
+ {
3133
+ "name": "season_number",
3134
+ "type": "u64"
3135
+ },
3136
+ {
3137
+ "name": "season_membership_id",
3138
+ "type": "u64"
3139
+ },
3140
+ {
3141
+ "name": "user",
3142
+ "type": "pubkey"
3143
+ },
3144
+ {
3145
+ "name": "deposit_amount",
3146
+ "type": "u64"
3147
+ },
3148
+ {
3149
+ "name": "penalties_paid",
3150
+ "type": "u64"
3151
+ },
3152
+ {
3153
+ "name": "withdrawal_amount",
3154
+ "type": "u64"
3155
+ },
3156
+ {
3157
+ "name": "timestamp",
3158
+ "type": "i64"
3159
+ }
3160
+ ]
3161
+ }
3162
+ },
3163
+ {
3164
+ "name": "SeasonFinalized",
3165
+ "type": {
3166
+ "kind": "struct",
3167
+ "fields": [
3168
+ {
3169
+ "name": "season_number",
3170
+ "type": "u64"
3171
+ },
3172
+ {
3173
+ "name": "total_members",
3174
+ "type": "u64"
3175
+ },
3176
+ {
3177
+ "name": "total_windows",
3178
+ "type": "u8"
3179
+ },
3180
+ {
3181
+ "name": "timestamp",
3182
+ "type": "i64"
3183
+ }
3184
+ ]
3185
+ }
3186
+ },
3187
+ {
3188
+ "name": "SeasonInitialized",
3189
+ "type": {
3190
+ "kind": "struct",
3191
+ "fields": [
3192
+ {
3193
+ "name": "season_number",
3194
+ "type": "u64"
3195
+ },
3196
+ {
3197
+ "name": "started_at",
3198
+ "type": "i64"
3199
+ },
3200
+ {
3201
+ "name": "ends_at",
3202
+ "type": "i64"
3203
+ },
3204
+ {
3205
+ "name": "total_windows",
3206
+ "type": "u8"
3207
+ },
3208
+ {
3209
+ "name": "timestamp",
3210
+ "type": "i64"
3211
+ }
3212
+ ]
3213
+ }
3214
+ },
3215
+ {
3216
+ "name": "SeasonJoined",
3217
+ "type": {
3218
+ "kind": "struct",
3219
+ "fields": [
3220
+ {
3221
+ "name": "season_number",
3222
+ "type": "u64"
3223
+ },
3224
+ {
3225
+ "name": "season_membership_id",
3226
+ "type": "u64"
3227
+ },
3228
+ {
3229
+ "name": "user",
3230
+ "type": "pubkey"
3231
+ },
3232
+ {
3233
+ "name": "joined_at",
3234
+ "type": "i64"
3235
+ },
3236
+ {
3237
+ "name": "joined_window_number",
3238
+ "type": "u64"
3239
+ },
3240
+ {
3241
+ "name": "deposit_amount",
3242
+ "type": "u64"
3243
+ },
3244
+ {
3245
+ "name": "timestamp",
3246
+ "type": "i64"
3247
+ }
3248
+ ]
3249
+ }
3250
+ },
3251
+ {
3252
+ "name": "SeasonMembership",
3253
+ "type": {
3254
+ "kind": "struct",
3255
+ "fields": [
3256
+ {
3257
+ "name": "id",
3258
+ "docs": [
3259
+ "Unique membership ID for this user"
3260
+ ],
3261
+ "type": "u64"
3262
+ },
3263
+ {
3264
+ "name": "owner",
3265
+ "docs": [
3266
+ "Owner of this membership"
3267
+ ],
3268
+ "type": "pubkey"
3269
+ },
3270
+ {
3271
+ "name": "referrer",
3272
+ "docs": [
3273
+ "Optional referrer for this membership (Pubkey::default() means no referrer)"
3274
+ ],
3275
+ "type": "pubkey"
3276
+ },
3277
+ {
3278
+ "name": "season_number",
3279
+ "docs": [
3280
+ "Season this membership is for"
3281
+ ],
3282
+ "type": "u64"
3283
+ },
3284
+ {
3285
+ "name": "deposit_tier",
3286
+ "docs": [
3287
+ "Tier chosen at join time"
3288
+ ],
3289
+ "type": {
3290
+ "defined": {
3291
+ "name": "SeasonDepositTier"
3292
+ }
3293
+ }
3294
+ },
3295
+ {
3296
+ "name": "deposit_amount",
3297
+ "docs": [
3298
+ "Amount deposited into the season vault that participates in the game (active portion)"
3299
+ ],
3300
+ "type": "u64"
3301
+ },
3302
+ {
3303
+ "name": "deposit_escrowed_amount",
3304
+ "docs": [
3305
+ "Portion of the full season deposit that is escrowed (pre-join windows) and always refundable"
3306
+ ],
3307
+ "type": "u64"
3308
+ },
3309
+ {
3310
+ "name": "joined_at",
3311
+ "docs": [
3312
+ "Timestamp when user joined"
3313
+ ],
3314
+ "type": "i64"
3315
+ },
3316
+ {
3317
+ "name": "joined_window_number",
3318
+ "docs": [
3319
+ "Window number when user joined"
3320
+ ],
3321
+ "type": "u64"
3322
+ },
3323
+ {
3324
+ "name": "successful_posts_count",
3325
+ "docs": [
3326
+ "Total successful posts made (incremented in confirmed_post_on_x)"
3327
+ ],
3328
+ "type": "u64"
3329
+ },
3330
+ {
3331
+ "name": "total_rewards_claimed",
3332
+ "docs": [
3333
+ "Total base refunds claimed (1.375 MIZD × successful_posts)",
3334
+ "Note: This tracks only the \"refund\" portion, NOT bonus rewards from others"
3335
+ ],
3336
+ "type": "u64"
3337
+ },
3338
+ {
3339
+ "name": "total_penalties_paid",
3340
+ "docs": [
3341
+ "Total penalties paid for missed windows (tracked for redundancy)"
3342
+ ],
3343
+ "type": "u64"
3344
+ },
3345
+ {
3346
+ "name": "deposit_withdrawn",
3347
+ "docs": [
3348
+ "Whether the user has already withdrawn their season deposit (prevents double-withdraw)"
3349
+ ],
3350
+ "type": "bool"
3351
+ },
3352
+ {
3353
+ "name": "is_active",
3354
+ "docs": [
3355
+ "Whether membership is still active"
3356
+ ],
3357
+ "type": "bool"
3358
+ },
3359
+ {
3360
+ "name": "bump",
3361
+ "docs": [
3362
+ "Bump seed for PDA"
3363
+ ],
3364
+ "type": "u8"
3365
+ }
3366
+ ]
3367
+ }
3368
+ },
3369
+ {
3370
+ "name": "SeasonMembershipStatusView",
3371
+ "type": {
3372
+ "kind": "struct",
3373
+ "fields": [
3374
+ {
3375
+ "name": "owner",
3376
+ "type": "pubkey"
3377
+ },
3378
+ {
3379
+ "name": "season_number",
3380
+ "type": "u64"
3381
+ },
3382
+ {
3383
+ "name": "deposit_amount",
3384
+ "type": "u64"
3385
+ },
3386
+ {
3387
+ "name": "joined_at",
3388
+ "type": "i64"
3389
+ },
3390
+ {
3391
+ "name": "joined_window_number",
3392
+ "type": "u64"
3393
+ },
3394
+ {
3395
+ "name": "successful_posts_count",
3396
+ "type": "u64"
3397
+ },
3398
+ {
3399
+ "name": "total_rewards_claimed",
3400
+ "type": "u64"
3401
+ },
3402
+ {
3403
+ "name": "total_penalties_paid",
3404
+ "type": "u64"
3405
+ },
3406
+ {
3407
+ "name": "deposit_withdrawn",
3408
+ "type": "bool"
3409
+ },
3410
+ {
3411
+ "name": "is_active",
3412
+ "type": "bool"
3413
+ },
3414
+ {
3415
+ "name": "season_started_at",
3416
+ "type": "i64"
3417
+ },
3418
+ {
3419
+ "name": "season_ends_at",
3420
+ "type": "i64"
3421
+ },
3422
+ {
3423
+ "name": "season_total_members",
3424
+ "type": "u64"
3425
+ },
3426
+ {
3427
+ "name": "current_window_number",
3428
+ "type": "u64"
3429
+ },
3430
+ {
3431
+ "name": "windows_remaining",
3432
+ "type": "u64"
3433
+ }
3434
+ ]
3435
+ }
3436
+ },
3437
+ {
3438
+ "name": "SeasonSettings",
3439
+ "type": {
3440
+ "kind": "struct",
3441
+ "fields": [
3442
+ {
3443
+ "name": "completed_seasons",
3444
+ "docs": [
3445
+ "Total number of completed seasons"
3446
+ ],
3447
+ "type": "u64"
3448
+ },
3449
+ {
3450
+ "name": "season_duration",
3451
+ "docs": [
3452
+ "Duration of each season in seconds (7 days = 604,800)"
3453
+ ],
3454
+ "type": "i64"
3455
+ },
3456
+ {
3457
+ "name": "window_duration",
3458
+ "docs": [
3459
+ "Duration of each window in seconds (8 hours = 28,800)"
3460
+ ],
3461
+ "type": "i64"
3462
+ },
3463
+ {
3464
+ "name": "total_windows_per_season",
3465
+ "docs": [
3466
+ "Total number of windows per season (21)"
3467
+ ],
3468
+ "type": "u8"
3469
+ },
3470
+ {
3471
+ "name": "can_initialize_next_season",
3472
+ "docs": [
3473
+ "Whether new seasons can be initialized"
3474
+ ],
3475
+ "type": "bool"
3476
+ },
3477
+ {
3478
+ "name": "last_season_ends_at",
3479
+ "docs": [
3480
+ "Timestamp when the last season ends (for gating)"
3481
+ ],
3482
+ "type": "i64"
3483
+ },
3484
+ {
3485
+ "name": "current_season_number",
3486
+ "docs": [
3487
+ "Current active season number"
3488
+ ],
3489
+ "type": "u64"
3490
+ },
3491
+ {
3492
+ "name": "admin",
3493
+ "docs": [
3494
+ "Admin who can confirm posts"
3495
+ ],
3496
+ "type": "pubkey"
3497
+ },
3498
+ {
3499
+ "name": "is_paused",
3500
+ "docs": [
3501
+ "Emergency pause flag"
3502
+ ],
3503
+ "type": "bool"
3504
+ },
3505
+ {
3506
+ "name": "max_members_per_season",
3507
+ "docs": [
3508
+ "Maximum members allowed per season (DOS protection)"
3509
+ ],
3510
+ "type": "u64"
3511
+ },
3512
+ {
3513
+ "name": "bump",
3514
+ "docs": [
3515
+ "Bump seed for PDA"
3516
+ ],
3517
+ "type": "u8"
3518
+ }
3519
+ ]
3520
+ }
3521
+ },
3522
+ {
3523
+ "name": "SeasonState",
3524
+ "type": {
3525
+ "kind": "enum",
3526
+ "variants": [
3527
+ {
3528
+ "name": "Uninitialized"
3529
+ },
3530
+ {
3531
+ "name": "Active"
3532
+ },
3533
+ {
3534
+ "name": "Ended"
3535
+ }
3536
+ ]
3537
+ }
3538
+ },
3539
+ {
3540
+ "name": "SeasonSystemPauseToggled",
3541
+ "type": {
3542
+ "kind": "struct",
3543
+ "fields": [
3544
+ {
3545
+ "name": "admin",
3546
+ "type": "pubkey"
3547
+ },
3548
+ {
3549
+ "name": "is_paused",
3550
+ "type": "bool"
3551
+ },
3552
+ {
3553
+ "name": "timestamp",
3554
+ "type": "i64"
3555
+ }
3556
+ ]
3557
+ }
3558
+ },
3559
+ {
3560
+ "name": "UserStats",
3561
+ "type": {
3562
+ "kind": "struct",
3563
+ "fields": [
3564
+ {
3565
+ "name": "telegram_id",
3566
+ "docs": [
3567
+ "Telegram ID of the user"
3568
+ ],
3569
+ "type": "u64"
3570
+ },
3571
+ {
3572
+ "name": "total_number_of_miztakes",
3573
+ "docs": [
3574
+ "Total number of miztakes created by this user (cross-season count)"
3575
+ ],
3576
+ "type": "u64"
3577
+ },
3578
+ {
3579
+ "name": "onchain_first_miztake_at",
3580
+ "docs": [
3581
+ "Timestamp of first miztake created"
3582
+ ],
3583
+ "type": "i64"
3584
+ },
3585
+ {
3586
+ "name": "onchain_last_miztake_at",
3587
+ "docs": [
3588
+ "Timestamp of last miztake created"
3589
+ ],
3590
+ "type": "i64"
3591
+ },
3592
+ {
3593
+ "name": "bump",
3594
+ "docs": [
3595
+ "Bump seed for PDA"
3596
+ ],
3597
+ "type": "u8"
3598
+ }
3599
+ ]
3600
+ }
3601
+ },
3602
+ {
3603
+ "name": "UserWindowParticipation",
3604
+ "type": {
3605
+ "kind": "struct",
3606
+ "fields": [
3607
+ {
3608
+ "name": "user",
3609
+ "docs": [
3610
+ "User who participated"
3611
+ ],
3612
+ "type": "pubkey"
3613
+ },
3614
+ {
3615
+ "name": "season_number",
3616
+ "docs": [
3617
+ "Season number"
3618
+ ],
3619
+ "type": "u64"
3620
+ },
3621
+ {
3622
+ "name": "window_number",
3623
+ "docs": [
3624
+ "Window number"
3625
+ ],
3626
+ "type": "u64"
3627
+ },
3628
+ {
3629
+ "name": "season_membership_id",
3630
+ "docs": [
3631
+ "User's season membership ID"
3632
+ ],
3633
+ "type": "u64"
3634
+ },
3635
+ {
3636
+ "name": "posted_successfully",
3637
+ "docs": [
3638
+ "Whether user posted successfully in this window"
3639
+ ],
3640
+ "type": "bool"
3641
+ },
3642
+ {
3643
+ "name": "claimed_reward",
3644
+ "docs": [
3645
+ "Whether user has claimed their reward"
3646
+ ],
3647
+ "type": "bool"
3648
+ },
3649
+ {
3650
+ "name": "reward_amount",
3651
+ "docs": [
3652
+ "Amount of reward claimed"
3653
+ ],
3654
+ "type": "u64"
3655
+ },
3656
+ {
3657
+ "name": "miztake_id",
3658
+ "docs": [
3659
+ "ID of the Miztake used for this window (0 if not posted)"
3660
+ ],
3661
+ "type": "u64"
3662
+ },
3663
+ {
3664
+ "name": "bump",
3665
+ "docs": [
3666
+ "Bump seed for PDA"
3667
+ ],
3668
+ "type": "u8"
3669
+ }
3670
+ ]
3671
+ }
3672
+ },
3673
+ {
3674
+ "name": "WindowFinalized",
3675
+ "type": {
3676
+ "kind": "struct",
3677
+ "fields": [
3678
+ {
3679
+ "name": "season_number",
3680
+ "type": "u64"
3681
+ },
3682
+ {
3683
+ "name": "window_number",
3684
+ "type": "u64"
3685
+ },
3686
+ {
3687
+ "name": "penalty_pool",
3688
+ "type": "u64"
3689
+ },
3690
+ {
3691
+ "name": "successful_posters_count",
3692
+ "type": "u64"
3693
+ },
3694
+ {
3695
+ "name": "reward_per_poster",
3696
+ "type": "u64"
3697
+ },
3698
+ {
3699
+ "name": "timestamp",
3700
+ "type": "i64"
3701
+ }
3702
+ ]
3703
+ }
3704
+ },
3705
+ {
3706
+ "name": "WindowRewardClaimed",
3707
+ "type": {
3708
+ "kind": "struct",
3709
+ "fields": [
3710
+ {
3711
+ "name": "season_number",
3712
+ "type": "u64"
3713
+ },
3714
+ {
3715
+ "name": "window_number",
3716
+ "type": "u64"
3717
+ },
3718
+ {
3719
+ "name": "user",
3720
+ "type": "pubkey"
3721
+ },
3722
+ {
3723
+ "name": "reward_amount",
3724
+ "type": "u64"
3725
+ },
3726
+ {
3727
+ "name": "timestamp",
3728
+ "type": "i64"
3729
+ }
3730
+ ]
3731
+ }
3732
+ },
3733
+ {
3734
+ "name": "WindowState",
3735
+ "type": {
3736
+ "kind": "enum",
3737
+ "variants": [
3738
+ {
3739
+ "name": "Uninitialized"
3740
+ },
3741
+ {
3742
+ "name": "Active"
3743
+ },
3744
+ {
3745
+ "name": "Finalized"
3746
+ }
3747
+ ]
3748
+ }
3749
+ },
3750
+ {
3751
+ "name": "WindowStatusView",
3752
+ "type": {
3753
+ "kind": "struct",
3754
+ "fields": [
3755
+ {
3756
+ "name": "season_number",
3757
+ "type": "u64"
3758
+ },
3759
+ {
3760
+ "name": "window_number",
3761
+ "type": "u64"
3762
+ },
3763
+ {
3764
+ "name": "started_at",
3765
+ "type": "i64"
3766
+ },
3767
+ {
3768
+ "name": "ends_at",
3769
+ "type": "i64"
3770
+ },
3771
+ {
3772
+ "name": "total_members_in_season",
3773
+ "type": "u64"
3774
+ },
3775
+ {
3776
+ "name": "successful_posters_count",
3777
+ "type": "u64"
3778
+ },
3779
+ {
3780
+ "name": "penalty_pool",
3781
+ "type": "u64"
3782
+ },
3783
+ {
3784
+ "name": "reward_per_poster",
3785
+ "type": "u64"
3786
+ },
3787
+ {
3788
+ "name": "is_finalized",
3789
+ "type": "bool"
3790
+ },
3791
+ {
3792
+ "name": "is_active",
3793
+ "type": "bool"
3794
+ },
3795
+ {
3796
+ "name": "is_ended",
3797
+ "type": "bool"
3798
+ }
3799
+ ]
3800
+ }
3801
+ }
3802
+ ]
3803
+ }