@paul.lumberwork/bonding-curve-sdk 1.7.2 → 1.8.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.
@@ -0,0 +1,1252 @@
1
+ {
2
+ "address": "BZHZ5pSZLi4zRBrCmG1VD65fqKnrPYC2bBb2HQ4VKiJ1",
3
+ "metadata": {
4
+ "name": "streamer_program",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Streamer Management Program with Ed25519 Signature Verification"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "add_whitelist",
12
+ "docs": [
13
+ "Add a wallet to the whitelist (admin only)"
14
+ ],
15
+ "discriminator": [
16
+ 215,
17
+ 46,
18
+ 143,
19
+ 176,
20
+ 108,
21
+ 113,
22
+ 24,
23
+ 1
24
+ ],
25
+ "accounts": [
26
+ {
27
+ "name": "admin",
28
+ "writable": true,
29
+ "signer": true
30
+ },
31
+ {
32
+ "name": "platform_config",
33
+ "pda": {
34
+ "seeds": [
35
+ {
36
+ "kind": "const",
37
+ "value": [
38
+ 112,
39
+ 108,
40
+ 97,
41
+ 116,
42
+ 102,
43
+ 111,
44
+ 114,
45
+ 109,
46
+ 95,
47
+ 99,
48
+ 111,
49
+ 110,
50
+ 102,
51
+ 105,
52
+ 103
53
+ ]
54
+ }
55
+ ]
56
+ }
57
+ },
58
+ {
59
+ "name": "whitelist_entry",
60
+ "writable": true,
61
+ "pda": {
62
+ "seeds": [
63
+ {
64
+ "kind": "const",
65
+ "value": [
66
+ 119,
67
+ 104,
68
+ 105,
69
+ 116,
70
+ 101,
71
+ 108,
72
+ 105,
73
+ 115,
74
+ 116
75
+ ]
76
+ },
77
+ {
78
+ "kind": "arg",
79
+ "path": "wallet"
80
+ }
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ "name": "system_program",
86
+ "address": "11111111111111111111111111111111"
87
+ }
88
+ ],
89
+ "args": [
90
+ {
91
+ "name": "wallet",
92
+ "type": "pubkey"
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "name": "claim_funds",
98
+ "docs": [
99
+ "Claim SOL/tokens from vault to a registered streamer",
100
+ "Caller must be whitelisted, streamer signs Ed25519 to authorize amounts"
101
+ ],
102
+ "discriminator": [
103
+ 145,
104
+ 36,
105
+ 143,
106
+ 242,
107
+ 168,
108
+ 66,
109
+ 200,
110
+ 155
111
+ ],
112
+ "accounts": [
113
+ {
114
+ "name": "caller",
115
+ "docs": [
116
+ "Whitelisted wallet — tx signer, pays gas (relayer)"
117
+ ],
118
+ "writable": true,
119
+ "signer": true
120
+ },
121
+ {
122
+ "name": "whitelist_entry",
123
+ "docs": [
124
+ "Whitelist entry — caller must be whitelisted"
125
+ ],
126
+ "pda": {
127
+ "seeds": [
128
+ {
129
+ "kind": "const",
130
+ "value": [
131
+ 119,
132
+ 104,
133
+ 105,
134
+ 116,
135
+ 101,
136
+ 108,
137
+ 105,
138
+ 115,
139
+ 116
140
+ ]
141
+ },
142
+ {
143
+ "kind": "account",
144
+ "path": "caller"
145
+ }
146
+ ]
147
+ }
148
+ },
149
+ {
150
+ "name": "streamer_registration",
151
+ "docs": [
152
+ "Streamer registration — validates streamer_id + wallet; updated on claim"
153
+ ],
154
+ "writable": true,
155
+ "pda": {
156
+ "seeds": [
157
+ {
158
+ "kind": "const",
159
+ "value": [
160
+ 115,
161
+ 116,
162
+ 114,
163
+ 101,
164
+ 97,
165
+ 109,
166
+ 101,
167
+ 114
168
+ ]
169
+ },
170
+ {
171
+ "kind": "arg",
172
+ "path": "streamer_id"
173
+ }
174
+ ]
175
+ }
176
+ },
177
+ {
178
+ "name": "streamer_wallet",
179
+ "docs": [
180
+ "Streamer wallet — receives SOL+tokens"
181
+ ],
182
+ "writable": true
183
+ },
184
+ {
185
+ "name": "vault",
186
+ "docs": [
187
+ "Vault PDA holding SOL"
188
+ ],
189
+ "writable": true,
190
+ "pda": {
191
+ "seeds": [
192
+ {
193
+ "kind": "const",
194
+ "value": [
195
+ 118,
196
+ 97,
197
+ 117,
198
+ 108,
199
+ 116
200
+ ]
201
+ }
202
+ ]
203
+ }
204
+ },
205
+ {
206
+ "name": "mint",
207
+ "docs": [
208
+ "Token mint"
209
+ ]
210
+ },
211
+ {
212
+ "name": "program_token_account",
213
+ "docs": [
214
+ "Vault's token account holding tokens (authority = vault PDA)"
215
+ ],
216
+ "writable": true,
217
+ "pda": {
218
+ "seeds": [
219
+ {
220
+ "kind": "account",
221
+ "path": "vault"
222
+ },
223
+ {
224
+ "kind": "const",
225
+ "value": [
226
+ 6,
227
+ 221,
228
+ 246,
229
+ 225,
230
+ 215,
231
+ 101,
232
+ 161,
233
+ 147,
234
+ 217,
235
+ 203,
236
+ 225,
237
+ 70,
238
+ 206,
239
+ 235,
240
+ 121,
241
+ 172,
242
+ 28,
243
+ 180,
244
+ 133,
245
+ 237,
246
+ 95,
247
+ 91,
248
+ 55,
249
+ 145,
250
+ 58,
251
+ 140,
252
+ 245,
253
+ 133,
254
+ 126,
255
+ 255,
256
+ 0,
257
+ 169
258
+ ]
259
+ },
260
+ {
261
+ "kind": "account",
262
+ "path": "mint"
263
+ }
264
+ ],
265
+ "program": {
266
+ "kind": "const",
267
+ "value": [
268
+ 140,
269
+ 151,
270
+ 37,
271
+ 143,
272
+ 78,
273
+ 36,
274
+ 137,
275
+ 241,
276
+ 187,
277
+ 61,
278
+ 16,
279
+ 41,
280
+ 20,
281
+ 142,
282
+ 13,
283
+ 131,
284
+ 11,
285
+ 90,
286
+ 19,
287
+ 153,
288
+ 218,
289
+ 255,
290
+ 16,
291
+ 132,
292
+ 4,
293
+ 142,
294
+ 123,
295
+ 216,
296
+ 219,
297
+ 233,
298
+ 248,
299
+ 89
300
+ ]
301
+ }
302
+ }
303
+ },
304
+ {
305
+ "name": "streamer_token_account",
306
+ "docs": [
307
+ "Streamer's token account to receive tokens"
308
+ ],
309
+ "writable": true,
310
+ "pda": {
311
+ "seeds": [
312
+ {
313
+ "kind": "account",
314
+ "path": "streamer_wallet"
315
+ },
316
+ {
317
+ "kind": "const",
318
+ "value": [
319
+ 6,
320
+ 221,
321
+ 246,
322
+ 225,
323
+ 215,
324
+ 101,
325
+ 161,
326
+ 147,
327
+ 217,
328
+ 203,
329
+ 225,
330
+ 70,
331
+ 206,
332
+ 235,
333
+ 121,
334
+ 172,
335
+ 28,
336
+ 180,
337
+ 133,
338
+ 237,
339
+ 95,
340
+ 91,
341
+ 55,
342
+ 145,
343
+ 58,
344
+ 140,
345
+ 245,
346
+ 133,
347
+ 126,
348
+ 255,
349
+ 0,
350
+ 169
351
+ ]
352
+ },
353
+ {
354
+ "kind": "account",
355
+ "path": "mint"
356
+ }
357
+ ],
358
+ "program": {
359
+ "kind": "const",
360
+ "value": [
361
+ 140,
362
+ 151,
363
+ 37,
364
+ 143,
365
+ 78,
366
+ 36,
367
+ 137,
368
+ 241,
369
+ 187,
370
+ 61,
371
+ 16,
372
+ 41,
373
+ 20,
374
+ 142,
375
+ 13,
376
+ 131,
377
+ 11,
378
+ 90,
379
+ 19,
380
+ 153,
381
+ 218,
382
+ 255,
383
+ 16,
384
+ 132,
385
+ 4,
386
+ 142,
387
+ 123,
388
+ 216,
389
+ 219,
390
+ 233,
391
+ 248,
392
+ 89
393
+ ]
394
+ }
395
+ }
396
+ },
397
+ {
398
+ "name": "instructions_sysvar",
399
+ "address": "Sysvar1nstructions1111111111111111111111111"
400
+ },
401
+ {
402
+ "name": "system_program",
403
+ "address": "11111111111111111111111111111111"
404
+ },
405
+ {
406
+ "name": "token_program",
407
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
408
+ },
409
+ {
410
+ "name": "associated_token_program",
411
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
412
+ }
413
+ ],
414
+ "args": [
415
+ {
416
+ "name": "streamer_id",
417
+ "type": "string"
418
+ },
419
+ {
420
+ "name": "sol_amount",
421
+ "type": "u64"
422
+ },
423
+ {
424
+ "name": "token_amount",
425
+ "type": "u64"
426
+ },
427
+ {
428
+ "name": "nonce",
429
+ "type": "u64"
430
+ },
431
+ {
432
+ "name": "timestamp",
433
+ "type": "i64"
434
+ }
435
+ ]
436
+ },
437
+ {
438
+ "name": "delete_streamer",
439
+ "docs": [
440
+ "Delete a registered streamer (whitelist only)"
441
+ ],
442
+ "discriminator": [
443
+ 77,
444
+ 81,
445
+ 2,
446
+ 93,
447
+ 223,
448
+ 43,
449
+ 13,
450
+ 120
451
+ ],
452
+ "accounts": [
453
+ {
454
+ "name": "caller",
455
+ "writable": true,
456
+ "signer": true
457
+ },
458
+ {
459
+ "name": "platform_config",
460
+ "pda": {
461
+ "seeds": [
462
+ {
463
+ "kind": "const",
464
+ "value": [
465
+ 112,
466
+ 108,
467
+ 97,
468
+ 116,
469
+ 102,
470
+ 111,
471
+ 114,
472
+ 109,
473
+ 95,
474
+ 99,
475
+ 111,
476
+ 110,
477
+ 102,
478
+ 105,
479
+ 103
480
+ ]
481
+ }
482
+ ]
483
+ }
484
+ },
485
+ {
486
+ "name": "whitelist_entry",
487
+ "docs": [
488
+ "Whitelist entry for the caller - must exist and be active"
489
+ ],
490
+ "pda": {
491
+ "seeds": [
492
+ {
493
+ "kind": "const",
494
+ "value": [
495
+ 119,
496
+ 104,
497
+ 105,
498
+ 116,
499
+ 101,
500
+ 108,
501
+ 105,
502
+ 115,
503
+ 116
504
+ ]
505
+ },
506
+ {
507
+ "kind": "account",
508
+ "path": "caller"
509
+ }
510
+ ]
511
+ }
512
+ },
513
+ {
514
+ "name": "streamer_registration",
515
+ "writable": true,
516
+ "pda": {
517
+ "seeds": [
518
+ {
519
+ "kind": "const",
520
+ "value": [
521
+ 115,
522
+ 116,
523
+ 114,
524
+ 101,
525
+ 97,
526
+ 109,
527
+ 101,
528
+ 114
529
+ ]
530
+ },
531
+ {
532
+ "kind": "arg",
533
+ "path": "streamer_id"
534
+ }
535
+ ]
536
+ }
537
+ },
538
+ {
539
+ "name": "system_program",
540
+ "address": "11111111111111111111111111111111"
541
+ }
542
+ ],
543
+ "args": [
544
+ {
545
+ "name": "streamer_id",
546
+ "type": "string"
547
+ }
548
+ ]
549
+ },
550
+ {
551
+ "name": "initialize_platform",
552
+ "docs": [
553
+ "Initialize the platform (one-time setup by admin)"
554
+ ],
555
+ "discriminator": [
556
+ 119,
557
+ 201,
558
+ 101,
559
+ 45,
560
+ 75,
561
+ 122,
562
+ 89,
563
+ 3
564
+ ],
565
+ "accounts": [
566
+ {
567
+ "name": "admin",
568
+ "writable": true,
569
+ "signer": true
570
+ },
571
+ {
572
+ "name": "platform_config",
573
+ "writable": true,
574
+ "pda": {
575
+ "seeds": [
576
+ {
577
+ "kind": "const",
578
+ "value": [
579
+ 112,
580
+ 108,
581
+ 97,
582
+ 116,
583
+ 102,
584
+ 111,
585
+ 114,
586
+ 109,
587
+ 95,
588
+ 99,
589
+ 111,
590
+ 110,
591
+ 102,
592
+ 105,
593
+ 103
594
+ ]
595
+ }
596
+ ]
597
+ }
598
+ },
599
+ {
600
+ "name": "system_program",
601
+ "address": "11111111111111111111111111111111"
602
+ }
603
+ ],
604
+ "args": []
605
+ },
606
+ {
607
+ "name": "register_streamer",
608
+ "docs": [
609
+ "Register a streamer with Ed25519 signature verification (whitelist only)"
610
+ ],
611
+ "discriminator": [
612
+ 228,
613
+ 216,
614
+ 173,
615
+ 237,
616
+ 216,
617
+ 202,
618
+ 48,
619
+ 59
620
+ ],
621
+ "accounts": [
622
+ {
623
+ "name": "caller",
624
+ "writable": true,
625
+ "signer": true
626
+ },
627
+ {
628
+ "name": "platform_config",
629
+ "pda": {
630
+ "seeds": [
631
+ {
632
+ "kind": "const",
633
+ "value": [
634
+ 112,
635
+ 108,
636
+ 97,
637
+ 116,
638
+ 102,
639
+ 111,
640
+ 114,
641
+ 109,
642
+ 95,
643
+ 99,
644
+ 111,
645
+ 110,
646
+ 102,
647
+ 105,
648
+ 103
649
+ ]
650
+ }
651
+ ]
652
+ }
653
+ },
654
+ {
655
+ "name": "whitelist_entry",
656
+ "docs": [
657
+ "Whitelist entry for the caller - must exist and be active"
658
+ ],
659
+ "pda": {
660
+ "seeds": [
661
+ {
662
+ "kind": "const",
663
+ "value": [
664
+ 119,
665
+ 104,
666
+ 105,
667
+ 116,
668
+ 101,
669
+ 108,
670
+ 105,
671
+ 115,
672
+ 116
673
+ ]
674
+ },
675
+ {
676
+ "kind": "account",
677
+ "path": "caller"
678
+ }
679
+ ]
680
+ }
681
+ },
682
+ {
683
+ "name": "streamer_registration",
684
+ "writable": true,
685
+ "pda": {
686
+ "seeds": [
687
+ {
688
+ "kind": "const",
689
+ "value": [
690
+ 115,
691
+ 116,
692
+ 114,
693
+ 101,
694
+ 97,
695
+ 109,
696
+ 101,
697
+ 114
698
+ ]
699
+ },
700
+ {
701
+ "kind": "arg",
702
+ "path": "streamer_id"
703
+ }
704
+ ]
705
+ }
706
+ },
707
+ {
708
+ "name": "instructions_sysvar",
709
+ "address": "Sysvar1nstructions1111111111111111111111111"
710
+ },
711
+ {
712
+ "name": "system_program",
713
+ "address": "11111111111111111111111111111111"
714
+ }
715
+ ],
716
+ "args": [
717
+ {
718
+ "name": "streamer_id",
719
+ "type": "string"
720
+ },
721
+ {
722
+ "name": "streamer_wallet",
723
+ "type": "pubkey"
724
+ },
725
+ {
726
+ "name": "timestamp",
727
+ "type": "i64"
728
+ }
729
+ ]
730
+ },
731
+ {
732
+ "name": "remove_whitelist",
733
+ "docs": [
734
+ "Remove a wallet from the whitelist (admin only)"
735
+ ],
736
+ "discriminator": [
737
+ 148,
738
+ 244,
739
+ 73,
740
+ 234,
741
+ 131,
742
+ 55,
743
+ 247,
744
+ 90
745
+ ],
746
+ "accounts": [
747
+ {
748
+ "name": "admin",
749
+ "writable": true,
750
+ "signer": true
751
+ },
752
+ {
753
+ "name": "platform_config",
754
+ "pda": {
755
+ "seeds": [
756
+ {
757
+ "kind": "const",
758
+ "value": [
759
+ 112,
760
+ 108,
761
+ 97,
762
+ 116,
763
+ 102,
764
+ 111,
765
+ 114,
766
+ 109,
767
+ 95,
768
+ 99,
769
+ 111,
770
+ 110,
771
+ 102,
772
+ 105,
773
+ 103
774
+ ]
775
+ }
776
+ ]
777
+ }
778
+ },
779
+ {
780
+ "name": "whitelist_entry",
781
+ "writable": true,
782
+ "pda": {
783
+ "seeds": [
784
+ {
785
+ "kind": "const",
786
+ "value": [
787
+ 119,
788
+ 104,
789
+ 105,
790
+ 116,
791
+ 101,
792
+ 108,
793
+ 105,
794
+ 115,
795
+ 116
796
+ ]
797
+ },
798
+ {
799
+ "kind": "account",
800
+ "path": "whitelist_entry.wallet",
801
+ "account": "WhitelistEntry"
802
+ }
803
+ ]
804
+ }
805
+ },
806
+ {
807
+ "name": "system_program",
808
+ "address": "11111111111111111111111111111111"
809
+ }
810
+ ],
811
+ "args": []
812
+ }
813
+ ],
814
+ "accounts": [
815
+ {
816
+ "name": "PlatformConfig",
817
+ "discriminator": [
818
+ 160,
819
+ 78,
820
+ 128,
821
+ 0,
822
+ 248,
823
+ 83,
824
+ 230,
825
+ 160
826
+ ]
827
+ },
828
+ {
829
+ "name": "StreamerRegistration",
830
+ "discriminator": [
831
+ 215,
832
+ 11,
833
+ 122,
834
+ 169,
835
+ 47,
836
+ 13,
837
+ 145,
838
+ 179
839
+ ]
840
+ },
841
+ {
842
+ "name": "WhitelistEntry",
843
+ "discriminator": [
844
+ 51,
845
+ 70,
846
+ 173,
847
+ 81,
848
+ 219,
849
+ 192,
850
+ 234,
851
+ 62
852
+ ]
853
+ }
854
+ ],
855
+ "events": [
856
+ {
857
+ "name": "StreamerClaim",
858
+ "discriminator": [
859
+ 111,
860
+ 131,
861
+ 155,
862
+ 100,
863
+ 154,
864
+ 243,
865
+ 78,
866
+ 224
867
+ ]
868
+ },
869
+ {
870
+ "name": "StreamerDeleted",
871
+ "discriminator": [
872
+ 93,
873
+ 21,
874
+ 157,
875
+ 7,
876
+ 69,
877
+ 5,
878
+ 248,
879
+ 209
880
+ ]
881
+ },
882
+ {
883
+ "name": "StreamerRegistered",
884
+ "discriminator": [
885
+ 250,
886
+ 238,
887
+ 67,
888
+ 213,
889
+ 160,
890
+ 156,
891
+ 240,
892
+ 105
893
+ ]
894
+ },
895
+ {
896
+ "name": "WhitelistAdded",
897
+ "discriminator": [
898
+ 97,
899
+ 233,
900
+ 173,
901
+ 159,
902
+ 42,
903
+ 22,
904
+ 108,
905
+ 250
906
+ ]
907
+ },
908
+ {
909
+ "name": "WhitelistRemoved",
910
+ "discriminator": [
911
+ 57,
912
+ 55,
913
+ 186,
914
+ 142,
915
+ 33,
916
+ 197,
917
+ 220,
918
+ 71
919
+ ]
920
+ }
921
+ ],
922
+ "errors": [
923
+ {
924
+ "code": 6000,
925
+ "name": "Unauthorized",
926
+ "msg": "Unauthorized: caller is not admin"
927
+ },
928
+ {
929
+ "code": 6001,
930
+ "name": "AlreadyRegistered",
931
+ "msg": "Streamer is already registered"
932
+ },
933
+ {
934
+ "code": 6002,
935
+ "name": "StreamerNotFound",
936
+ "msg": "Streamer not found"
937
+ },
938
+ {
939
+ "code": 6003,
940
+ "name": "InvalidSignature",
941
+ "msg": "Invalid Ed25519 signature"
942
+ },
943
+ {
944
+ "code": 6004,
945
+ "name": "SignatureExpired",
946
+ "msg": "Signature has expired (timestamp > 1 hour old)"
947
+ },
948
+ {
949
+ "code": 6005,
950
+ "name": "InvalidMessage",
951
+ "msg": "Signature message does not match expected format"
952
+ },
953
+ {
954
+ "code": 6006,
955
+ "name": "WalletMismatch",
956
+ "msg": "Wallet in signature does not match expected wallet"
957
+ },
958
+ {
959
+ "code": 6007,
960
+ "name": "InsufficientFunds",
961
+ "msg": "Insufficient funds in vault"
962
+ },
963
+ {
964
+ "code": 6008,
965
+ "name": "WhitelistAlreadyExists",
966
+ "msg": "Wallet is already whitelisted"
967
+ },
968
+ {
969
+ "code": 6009,
970
+ "name": "WhitelistNotFound",
971
+ "msg": "Wallet is not in whitelist"
972
+ },
973
+ {
974
+ "code": 6010,
975
+ "name": "InvalidTimestamp",
976
+ "msg": "Invalid timestamp"
977
+ },
978
+ {
979
+ "code": 6011,
980
+ "name": "Ed25519InstructionMissing",
981
+ "msg": "Ed25519 instruction not found in transaction"
982
+ },
983
+ {
984
+ "code": 6012,
985
+ "name": "InvalidEd25519Data",
986
+ "msg": "Invalid Ed25519 instruction data"
987
+ },
988
+ {
989
+ "code": 6013,
990
+ "name": "InvalidStreamerId",
991
+ "msg": "Streamer ID cannot be empty"
992
+ },
993
+ {
994
+ "code": 6014,
995
+ "name": "ClaimCooldownNotElapsed",
996
+ "msg": "Claim cooldown not elapsed (minimum 60 seconds between claims)"
997
+ },
998
+ {
999
+ "code": 6015,
1000
+ "name": "InvalidNonce",
1001
+ "msg": "Invalid claim nonce — possible replay attack"
1002
+ }
1003
+ ],
1004
+ "types": [
1005
+ {
1006
+ "name": "PlatformConfig",
1007
+ "type": {
1008
+ "kind": "struct",
1009
+ "fields": [
1010
+ {
1011
+ "name": "admin",
1012
+ "docs": [
1013
+ "Admin wallet that can manage whitelist and withdraw funds"
1014
+ ],
1015
+ "type": "pubkey"
1016
+ },
1017
+ {
1018
+ "name": "bump",
1019
+ "docs": [
1020
+ "PDA bump seed"
1021
+ ],
1022
+ "type": "u8"
1023
+ }
1024
+ ]
1025
+ }
1026
+ },
1027
+ {
1028
+ "name": "StreamerClaim",
1029
+ "type": {
1030
+ "kind": "struct",
1031
+ "fields": [
1032
+ {
1033
+ "name": "streamer_id",
1034
+ "type": "string"
1035
+ },
1036
+ {
1037
+ "name": "wallet",
1038
+ "type": "pubkey"
1039
+ },
1040
+ {
1041
+ "name": "mint",
1042
+ "type": "pubkey"
1043
+ },
1044
+ {
1045
+ "name": "sol_amount",
1046
+ "type": "u64"
1047
+ },
1048
+ {
1049
+ "name": "token_amount",
1050
+ "type": "u64"
1051
+ },
1052
+ {
1053
+ "name": "claimed_by",
1054
+ "type": "pubkey"
1055
+ },
1056
+ {
1057
+ "name": "timestamp",
1058
+ "type": "i64"
1059
+ }
1060
+ ]
1061
+ }
1062
+ },
1063
+ {
1064
+ "name": "StreamerDeleted",
1065
+ "type": {
1066
+ "kind": "struct",
1067
+ "fields": [
1068
+ {
1069
+ "name": "streamer_id",
1070
+ "type": "string"
1071
+ },
1072
+ {
1073
+ "name": "wallet",
1074
+ "type": "pubkey"
1075
+ },
1076
+ {
1077
+ "name": "deleted_by",
1078
+ "type": "pubkey"
1079
+ },
1080
+ {
1081
+ "name": "timestamp",
1082
+ "type": "i64"
1083
+ }
1084
+ ]
1085
+ }
1086
+ },
1087
+ {
1088
+ "name": "StreamerRegistered",
1089
+ "type": {
1090
+ "kind": "struct",
1091
+ "fields": [
1092
+ {
1093
+ "name": "streamer_id",
1094
+ "type": "string"
1095
+ },
1096
+ {
1097
+ "name": "wallet",
1098
+ "type": "pubkey"
1099
+ },
1100
+ {
1101
+ "name": "registered_by",
1102
+ "type": "pubkey"
1103
+ },
1104
+ {
1105
+ "name": "timestamp",
1106
+ "type": "i64"
1107
+ }
1108
+ ]
1109
+ }
1110
+ },
1111
+ {
1112
+ "name": "StreamerRegistration",
1113
+ "type": {
1114
+ "kind": "struct",
1115
+ "fields": [
1116
+ {
1117
+ "name": "streamer_id",
1118
+ "docs": [
1119
+ "Unique streamer identifier"
1120
+ ],
1121
+ "type": "string"
1122
+ },
1123
+ {
1124
+ "name": "wallet",
1125
+ "docs": [
1126
+ "Streamer's wallet public key"
1127
+ ],
1128
+ "type": "pubkey"
1129
+ },
1130
+ {
1131
+ "name": "verified_at",
1132
+ "docs": [
1133
+ "On-chain clock timestamp when signature was verified"
1134
+ ],
1135
+ "type": "i64"
1136
+ },
1137
+ {
1138
+ "name": "registered_by",
1139
+ "docs": [
1140
+ "Whitelisted wallet that performed the registration"
1141
+ ],
1142
+ "type": "pubkey"
1143
+ },
1144
+ {
1145
+ "name": "created_at",
1146
+ "docs": [
1147
+ "Account creation timestamp"
1148
+ ],
1149
+ "type": "i64"
1150
+ },
1151
+ {
1152
+ "name": "claim_nonce",
1153
+ "docs": [
1154
+ "Monotonically increasing counter — included in claim message to prevent replay"
1155
+ ],
1156
+ "type": "u64"
1157
+ },
1158
+ {
1159
+ "name": "last_claim_at",
1160
+ "docs": [
1161
+ "Unix timestamp of last successful claim (0 if never claimed)"
1162
+ ],
1163
+ "type": "i64"
1164
+ },
1165
+ {
1166
+ "name": "bump",
1167
+ "docs": [
1168
+ "PDA bump seed"
1169
+ ],
1170
+ "type": "u8"
1171
+ }
1172
+ ]
1173
+ }
1174
+ },
1175
+ {
1176
+ "name": "WhitelistAdded",
1177
+ "type": {
1178
+ "kind": "struct",
1179
+ "fields": [
1180
+ {
1181
+ "name": "wallet",
1182
+ "type": "pubkey"
1183
+ },
1184
+ {
1185
+ "name": "added_by",
1186
+ "type": "pubkey"
1187
+ },
1188
+ {
1189
+ "name": "timestamp",
1190
+ "type": "i64"
1191
+ }
1192
+ ]
1193
+ }
1194
+ },
1195
+ {
1196
+ "name": "WhitelistEntry",
1197
+ "type": {
1198
+ "kind": "struct",
1199
+ "fields": [
1200
+ {
1201
+ "name": "wallet",
1202
+ "docs": [
1203
+ "The whitelisted wallet address"
1204
+ ],
1205
+ "type": "pubkey"
1206
+ },
1207
+ {
1208
+ "name": "active",
1209
+ "docs": [
1210
+ "Whether this entry is active"
1211
+ ],
1212
+ "type": "bool"
1213
+ },
1214
+ {
1215
+ "name": "added_at",
1216
+ "docs": [
1217
+ "Timestamp when added to whitelist"
1218
+ ],
1219
+ "type": "i64"
1220
+ },
1221
+ {
1222
+ "name": "bump",
1223
+ "docs": [
1224
+ "PDA bump seed"
1225
+ ],
1226
+ "type": "u8"
1227
+ }
1228
+ ]
1229
+ }
1230
+ },
1231
+ {
1232
+ "name": "WhitelistRemoved",
1233
+ "type": {
1234
+ "kind": "struct",
1235
+ "fields": [
1236
+ {
1237
+ "name": "wallet",
1238
+ "type": "pubkey"
1239
+ },
1240
+ {
1241
+ "name": "removed_by",
1242
+ "type": "pubkey"
1243
+ },
1244
+ {
1245
+ "name": "timestamp",
1246
+ "type": "i64"
1247
+ }
1248
+ ]
1249
+ }
1250
+ }
1251
+ ]
1252
+ }