@fuul/sdk-solana 0.5.2

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 (126) hide show
  1. package/README.md +145 -0
  2. package/dist/cjs/accounts.js +84 -0
  3. package/dist/cjs/accounts.js.map +1 -0
  4. package/dist/cjs/common/contract.js +68 -0
  5. package/dist/cjs/common/contract.js.map +1 -0
  6. package/dist/cjs/common/errors.js +11 -0
  7. package/dist/cjs/common/errors.js.map +1 -0
  8. package/dist/cjs/common/index.js +20 -0
  9. package/dist/cjs/common/index.js.map +1 -0
  10. package/dist/cjs/common/messages.js +122 -0
  11. package/dist/cjs/common/messages.js.map +1 -0
  12. package/dist/cjs/constants.js +20 -0
  13. package/dist/cjs/constants.js.map +1 -0
  14. package/dist/cjs/idls/fuul.js +3 -0
  15. package/dist/cjs/idls/fuul.js.map +1 -0
  16. package/dist/cjs/idls/fuul.json +4714 -0
  17. package/dist/cjs/index.js +23 -0
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/instructions/admin-roles.js +39 -0
  20. package/dist/cjs/instructions/admin-roles.js.map +1 -0
  21. package/dist/cjs/instructions/admin-token-management.js +39 -0
  22. package/dist/cjs/instructions/admin-token-management.js.map +1 -0
  23. package/dist/cjs/instructions/admin.js +65 -0
  24. package/dist/cjs/instructions/admin.js.map +1 -0
  25. package/dist/cjs/instructions/create-global-config.js +16 -0
  26. package/dist/cjs/instructions/create-global-config.js.map +1 -0
  27. package/dist/cjs/instructions/create-project.js +26 -0
  28. package/dist/cjs/instructions/create-project.js.map +1 -0
  29. package/dist/cjs/instructions/index.js +25 -0
  30. package/dist/cjs/instructions/index.js.map +1 -0
  31. package/dist/cjs/instructions/project-budget.js +192 -0
  32. package/dist/cjs/instructions/project-budget.js.map +1 -0
  33. package/dist/cjs/instructions/project-roles.js +39 -0
  34. package/dist/cjs/instructions/project-roles.js.map +1 -0
  35. package/dist/cjs/instructions/project.js +16 -0
  36. package/dist/cjs/instructions/project.js.map +1 -0
  37. package/dist/cjs/pdas.js +38 -0
  38. package/dist/cjs/pdas.js.map +1 -0
  39. package/dist/cjs/sdks/fuul.js +244 -0
  40. package/dist/cjs/sdks/fuul.js.map +1 -0
  41. package/dist/cjs/sdks/index.js +18 -0
  42. package/dist/cjs/sdks/index.js.map +1 -0
  43. package/dist/cjs/types.js +92 -0
  44. package/dist/cjs/types.js.map +1 -0
  45. package/dist/cjs/utils/ed25519.js +71 -0
  46. package/dist/cjs/utils/ed25519.js.map +1 -0
  47. package/dist/cjs/utils/helpers.js +71 -0
  48. package/dist/cjs/utils/helpers.js.map +1 -0
  49. package/dist/cjs/utils/index.js +18 -0
  50. package/dist/cjs/utils/index.js.map +1 -0
  51. package/dist/esm/accounts.js +76 -0
  52. package/dist/esm/accounts.js.map +1 -0
  53. package/dist/esm/common/contract.js +31 -0
  54. package/dist/esm/common/contract.js.map +1 -0
  55. package/dist/esm/common/errors.js +7 -0
  56. package/dist/esm/common/errors.js.map +1 -0
  57. package/dist/esm/common/index.js +4 -0
  58. package/dist/esm/common/index.js.map +1 -0
  59. package/dist/esm/common/messages.js +83 -0
  60. package/dist/esm/common/messages.js.map +1 -0
  61. package/dist/esm/constants.js +17 -0
  62. package/dist/esm/constants.js.map +1 -0
  63. package/dist/esm/idls/fuul.js +2 -0
  64. package/dist/esm/idls/fuul.js.map +1 -0
  65. package/dist/esm/idls/fuul.json +4714 -0
  66. package/dist/esm/index.js +7 -0
  67. package/dist/esm/index.js.map +1 -0
  68. package/dist/esm/instructions/admin-roles.js +33 -0
  69. package/dist/esm/instructions/admin-roles.js.map +1 -0
  70. package/dist/esm/instructions/admin-token-management.js +33 -0
  71. package/dist/esm/instructions/admin-token-management.js.map +1 -0
  72. package/dist/esm/instructions/admin.js +56 -0
  73. package/dist/esm/instructions/admin.js.map +1 -0
  74. package/dist/esm/instructions/create-global-config.js +12 -0
  75. package/dist/esm/instructions/create-global-config.js.map +1 -0
  76. package/dist/esm/instructions/create-project.js +22 -0
  77. package/dist/esm/instructions/create-project.js.map +1 -0
  78. package/dist/esm/instructions/index.js +9 -0
  79. package/dist/esm/instructions/index.js.map +1 -0
  80. package/dist/esm/instructions/project-budget.js +184 -0
  81. package/dist/esm/instructions/project-budget.js.map +1 -0
  82. package/dist/esm/instructions/project-roles.js +33 -0
  83. package/dist/esm/instructions/project-roles.js.map +1 -0
  84. package/dist/esm/instructions/project.js +12 -0
  85. package/dist/esm/instructions/project.js.map +1 -0
  86. package/dist/esm/pdas.js +29 -0
  87. package/dist/esm/pdas.js.map +1 -0
  88. package/dist/esm/sdks/fuul.js +237 -0
  89. package/dist/esm/sdks/fuul.js.map +1 -0
  90. package/dist/esm/sdks/index.js +2 -0
  91. package/dist/esm/sdks/index.js.map +1 -0
  92. package/dist/esm/types.js +53 -0
  93. package/dist/esm/types.js.map +1 -0
  94. package/dist/esm/utils/ed25519.js +67 -0
  95. package/dist/esm/utils/ed25519.js.map +1 -0
  96. package/dist/esm/utils/helpers.js +30 -0
  97. package/dist/esm/utils/helpers.js.map +1 -0
  98. package/dist/esm/utils/index.js +2 -0
  99. package/dist/esm/utils/index.js.map +1 -0
  100. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  101. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  102. package/dist/types/accounts.d.ts +34 -0
  103. package/dist/types/common/contract.d.ts +14 -0
  104. package/dist/types/common/errors.d.ts +3 -0
  105. package/dist/types/common/index.d.ts +3 -0
  106. package/dist/types/common/messages.d.ts +55 -0
  107. package/dist/types/constants.d.ts +9 -0
  108. package/dist/types/idls/fuul.d.ts +3823 -0
  109. package/dist/types/index.d.ts +6 -0
  110. package/dist/types/instructions/admin-roles.d.ts +26 -0
  111. package/dist/types/instructions/admin-token-management.d.ts +28 -0
  112. package/dist/types/instructions/admin.d.ts +47 -0
  113. package/dist/types/instructions/create-global-config.d.ts +10 -0
  114. package/dist/types/instructions/create-project.d.ts +11 -0
  115. package/dist/types/instructions/index.d.ts +8 -0
  116. package/dist/types/instructions/project-budget.d.ts +47 -0
  117. package/dist/types/instructions/project-roles.d.ts +29 -0
  118. package/dist/types/instructions/project.d.ts +13 -0
  119. package/dist/types/pdas.d.ts +8 -0
  120. package/dist/types/sdks/fuul.d.ts +130 -0
  121. package/dist/types/sdks/index.d.ts +1 -0
  122. package/dist/types/types.d.ts +40 -0
  123. package/dist/types/utils/ed25519.d.ts +7 -0
  124. package/dist/types/utils/helpers.d.ts +13 -0
  125. package/dist/types/utils/index.d.ts +1 -0
  126. package/package.json +59 -0
@@ -0,0 +1,4714 @@
1
+ {
2
+ "address": "7BLkgULKe2eMmrjqMZUSaX8iGsaStue9LgZTQuEpTBEg",
3
+ "metadata": {
4
+ "name": "fuul_solana",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Fuul Solana Programs"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "add_currency_token",
12
+ "docs": [
13
+ "Add a new currency token to the global config",
14
+ "",
15
+ "Requirements:",
16
+ "",
17
+ "- Only admins can call this function."
18
+ ],
19
+ "discriminator": [
20
+ 200,
21
+ 3,
22
+ 244,
23
+ 181,
24
+ 140,
25
+ 26,
26
+ 171,
27
+ 197
28
+ ],
29
+ "accounts": [
30
+ {
31
+ "name": "authority",
32
+ "writable": true,
33
+ "signer": true
34
+ },
35
+ {
36
+ "name": "global_config",
37
+ "writable": true,
38
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
39
+ },
40
+ {
41
+ "name": "currency_token",
42
+ "writable": true,
43
+ "pda": {
44
+ "seeds": [
45
+ {
46
+ "kind": "const",
47
+ "value": [
48
+ 99,
49
+ 117,
50
+ 114,
51
+ 114,
52
+ 101,
53
+ 110,
54
+ 99,
55
+ 121,
56
+ 45,
57
+ 116,
58
+ 111,
59
+ 107,
60
+ 101,
61
+ 110
62
+ ]
63
+ },
64
+ {
65
+ "kind": "account",
66
+ "path": "token_mint"
67
+ }
68
+ ]
69
+ }
70
+ },
71
+ {
72
+ "name": "token_mint",
73
+ "docs": [
74
+ "It can also be the native token account and so we check token validity in the handler."
75
+ ]
76
+ },
77
+ {
78
+ "name": "system_program",
79
+ "address": "11111111111111111111111111111111"
80
+ }
81
+ ],
82
+ "args": [
83
+ {
84
+ "name": "token_type",
85
+ "type": {
86
+ "defined": {
87
+ "name": "TokenType"
88
+ }
89
+ }
90
+ },
91
+ {
92
+ "name": "claim_limit_per_cooldown",
93
+ "type": "u64"
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ "name": "add_no_claim_fee_whitelist",
99
+ "docs": [
100
+ "Add a wallet to the no claim fee whitelist",
101
+ "Parameters:",
102
+ "- account: The wallet to add to the no claim fee whitelist"
103
+ ],
104
+ "discriminator": [
105
+ 200,
106
+ 218,
107
+ 236,
108
+ 44,
109
+ 206,
110
+ 9,
111
+ 145,
112
+ 200
113
+ ],
114
+ "accounts": [
115
+ {
116
+ "name": "authority",
117
+ "writable": true,
118
+ "signer": true
119
+ },
120
+ {
121
+ "name": "global_config",
122
+ "writable": true,
123
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
124
+ }
125
+ ],
126
+ "args": [
127
+ {
128
+ "name": "account",
129
+ "type": "pubkey"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "name": "claim",
135
+ "docs": [
136
+ "Claim a currency token from the project budget",
137
+ "",
138
+ "Requirements:",
139
+ "",
140
+ "- `project_nonce`: The nonce of the project",
141
+ "- `proof`: The unique identifier for the claim"
142
+ ],
143
+ "discriminator": [
144
+ 62,
145
+ 198,
146
+ 214,
147
+ 193,
148
+ 213,
149
+ 159,
150
+ 108,
151
+ 210
152
+ ],
153
+ "accounts": [
154
+ {
155
+ "name": "authority",
156
+ "writable": true,
157
+ "signer": true
158
+ },
159
+ {
160
+ "name": "project",
161
+ "docs": [
162
+ "The project to claim from."
163
+ ],
164
+ "writable": true,
165
+ "pda": {
166
+ "seeds": [
167
+ {
168
+ "kind": "const",
169
+ "value": [
170
+ 112,
171
+ 114,
172
+ 111,
173
+ 106,
174
+ 101,
175
+ 99,
176
+ 116
177
+ ]
178
+ },
179
+ {
180
+ "kind": "arg",
181
+ "path": "project_nonce"
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ {
187
+ "name": "global_config",
188
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
189
+ },
190
+ {
191
+ "name": "token_mint",
192
+ "docs": [
193
+ "The mint of the token being distributed (can be default pubkey for native tokens)"
194
+ ]
195
+ },
196
+ {
197
+ "name": "fee_collector",
198
+ "writable": true
199
+ },
200
+ {
201
+ "name": "fee_collector_ata",
202
+ "docs": [
203
+ "The fee collector account"
204
+ ],
205
+ "writable": true,
206
+ "optional": true,
207
+ "pda": {
208
+ "seeds": [
209
+ {
210
+ "kind": "account",
211
+ "path": "fee_collector"
212
+ },
213
+ {
214
+ "kind": "const",
215
+ "value": [
216
+ 6,
217
+ 221,
218
+ 246,
219
+ 225,
220
+ 215,
221
+ 101,
222
+ 161,
223
+ 147,
224
+ 217,
225
+ 203,
226
+ 225,
227
+ 70,
228
+ 206,
229
+ 235,
230
+ 121,
231
+ 172,
232
+ 28,
233
+ 180,
234
+ 133,
235
+ 237,
236
+ 95,
237
+ 91,
238
+ 55,
239
+ 145,
240
+ 58,
241
+ 140,
242
+ 245,
243
+ 133,
244
+ 126,
245
+ 255,
246
+ 0,
247
+ 169
248
+ ]
249
+ },
250
+ {
251
+ "kind": "account",
252
+ "path": "token_mint"
253
+ }
254
+ ],
255
+ "program": {
256
+ "kind": "const",
257
+ "value": [
258
+ 140,
259
+ 151,
260
+ 37,
261
+ 143,
262
+ 78,
263
+ 36,
264
+ 137,
265
+ 241,
266
+ 187,
267
+ 61,
268
+ 16,
269
+ 41,
270
+ 20,
271
+ 142,
272
+ 13,
273
+ 131,
274
+ 11,
275
+ 90,
276
+ 19,
277
+ 153,
278
+ 218,
279
+ 255,
280
+ 16,
281
+ 132,
282
+ 4,
283
+ 142,
284
+ 123,
285
+ 216,
286
+ 219,
287
+ 233,
288
+ 248,
289
+ 89
290
+ ]
291
+ }
292
+ }
293
+ },
294
+ {
295
+ "name": "currency_token",
296
+ "docs": [
297
+ "The currency token account"
298
+ ],
299
+ "writable": true,
300
+ "pda": {
301
+ "seeds": [
302
+ {
303
+ "kind": "const",
304
+ "value": [
305
+ 99,
306
+ 117,
307
+ 114,
308
+ 114,
309
+ 101,
310
+ 110,
311
+ 99,
312
+ 121,
313
+ 45,
314
+ 116,
315
+ 111,
316
+ 107,
317
+ 101,
318
+ 110
319
+ ]
320
+ },
321
+ {
322
+ "kind": "account",
323
+ "path": "token_mint"
324
+ }
325
+ ]
326
+ }
327
+ },
328
+ {
329
+ "name": "project_ata",
330
+ "docs": [
331
+ "The token account owned by the project PDA (source of tokens)"
332
+ ],
333
+ "writable": true,
334
+ "optional": true,
335
+ "pda": {
336
+ "seeds": [
337
+ {
338
+ "kind": "account",
339
+ "path": "project"
340
+ },
341
+ {
342
+ "kind": "const",
343
+ "value": [
344
+ 6,
345
+ 221,
346
+ 246,
347
+ 225,
348
+ 215,
349
+ 101,
350
+ 161,
351
+ 147,
352
+ 217,
353
+ 203,
354
+ 225,
355
+ 70,
356
+ 206,
357
+ 235,
358
+ 121,
359
+ 172,
360
+ 28,
361
+ 180,
362
+ 133,
363
+ 237,
364
+ 95,
365
+ 91,
366
+ 55,
367
+ 145,
368
+ 58,
369
+ 140,
370
+ 245,
371
+ 133,
372
+ 126,
373
+ 255,
374
+ 0,
375
+ 169
376
+ ]
377
+ },
378
+ {
379
+ "kind": "account",
380
+ "path": "token_mint"
381
+ }
382
+ ],
383
+ "program": {
384
+ "kind": "const",
385
+ "value": [
386
+ 140,
387
+ 151,
388
+ 37,
389
+ 143,
390
+ 78,
391
+ 36,
392
+ 137,
393
+ 241,
394
+ 187,
395
+ 61,
396
+ 16,
397
+ 41,
398
+ 20,
399
+ 142,
400
+ 13,
401
+ 131,
402
+ 11,
403
+ 90,
404
+ 19,
405
+ 153,
406
+ 218,
407
+ 255,
408
+ 16,
409
+ 132,
410
+ 4,
411
+ 142,
412
+ 123,
413
+ 216,
414
+ 219,
415
+ 233,
416
+ 248,
417
+ 89
418
+ ]
419
+ }
420
+ }
421
+ },
422
+ {
423
+ "name": "recipient",
424
+ "docs": [
425
+ "The recipient's public key"
426
+ ],
427
+ "writable": true
428
+ },
429
+ {
430
+ "name": "recipient_ata",
431
+ "docs": [
432
+ "The recipient's token account (destination of tokens)"
433
+ ],
434
+ "writable": true,
435
+ "optional": true,
436
+ "pda": {
437
+ "seeds": [
438
+ {
439
+ "kind": "account",
440
+ "path": "recipient"
441
+ },
442
+ {
443
+ "kind": "const",
444
+ "value": [
445
+ 6,
446
+ 221,
447
+ 246,
448
+ 225,
449
+ 215,
450
+ 101,
451
+ 161,
452
+ 147,
453
+ 217,
454
+ 203,
455
+ 225,
456
+ 70,
457
+ 206,
458
+ 235,
459
+ 121,
460
+ 172,
461
+ 28,
462
+ 180,
463
+ 133,
464
+ 237,
465
+ 95,
466
+ 91,
467
+ 55,
468
+ 145,
469
+ 58,
470
+ 140,
471
+ 245,
472
+ 133,
473
+ 126,
474
+ 255,
475
+ 0,
476
+ 169
477
+ ]
478
+ },
479
+ {
480
+ "kind": "account",
481
+ "path": "token_mint"
482
+ }
483
+ ],
484
+ "program": {
485
+ "kind": "const",
486
+ "value": [
487
+ 140,
488
+ 151,
489
+ 37,
490
+ 143,
491
+ 78,
492
+ 36,
493
+ 137,
494
+ 241,
495
+ 187,
496
+ 61,
497
+ 16,
498
+ 41,
499
+ 20,
500
+ 142,
501
+ 13,
502
+ 131,
503
+ 11,
504
+ 90,
505
+ 19,
506
+ 153,
507
+ 218,
508
+ 255,
509
+ 16,
510
+ 132,
511
+ 4,
512
+ 142,
513
+ 123,
514
+ 216,
515
+ 219,
516
+ 233,
517
+ 248,
518
+ 89
519
+ ]
520
+ }
521
+ }
522
+ },
523
+ {
524
+ "name": "project_currency_budget",
525
+ "writable": true,
526
+ "pda": {
527
+ "seeds": [
528
+ {
529
+ "kind": "const",
530
+ "value": [
531
+ 112,
532
+ 114,
533
+ 111,
534
+ 106,
535
+ 101,
536
+ 99,
537
+ 116,
538
+ 45,
539
+ 99,
540
+ 117,
541
+ 114,
542
+ 114,
543
+ 101,
544
+ 110,
545
+ 99,
546
+ 121,
547
+ 45,
548
+ 98,
549
+ 117,
550
+ 100,
551
+ 103,
552
+ 101,
553
+ 116
554
+ ]
555
+ },
556
+ {
557
+ "kind": "account",
558
+ "path": "project"
559
+ },
560
+ {
561
+ "kind": "account",
562
+ "path": "currency_token"
563
+ }
564
+ ]
565
+ }
566
+ },
567
+ {
568
+ "name": "project_attribution",
569
+ "docs": [
570
+ "Project attribution account, used to prevent replay attacks and simply record the attribution of the claim",
571
+ "If this account already exists, the transaction will fail, preventing replay attacks"
572
+ ],
573
+ "writable": true,
574
+ "pda": {
575
+ "seeds": [
576
+ {
577
+ "kind": "const",
578
+ "value": [
579
+ 112,
580
+ 114,
581
+ 111,
582
+ 106,
583
+ 101,
584
+ 99,
585
+ 116,
586
+ 45,
587
+ 97,
588
+ 116,
589
+ 116,
590
+ 114,
591
+ 105,
592
+ 98,
593
+ 117,
594
+ 116,
595
+ 105,
596
+ 111,
597
+ 110
598
+ ]
599
+ },
600
+ {
601
+ "kind": "account",
602
+ "path": "project"
603
+ },
604
+ {
605
+ "kind": "arg",
606
+ "path": "proof"
607
+ }
608
+ ]
609
+ }
610
+ },
611
+ {
612
+ "name": "project_user",
613
+ "docs": [
614
+ "The user stats account, used to track the user's stats"
615
+ ],
616
+ "writable": true,
617
+ "pda": {
618
+ "seeds": [
619
+ {
620
+ "kind": "const",
621
+ "value": [
622
+ 112,
623
+ 114,
624
+ 111,
625
+ 106,
626
+ 101,
627
+ 99,
628
+ 116,
629
+ 45,
630
+ 117,
631
+ 115,
632
+ 101,
633
+ 114
634
+ ]
635
+ },
636
+ {
637
+ "kind": "account",
638
+ "path": "project"
639
+ },
640
+ {
641
+ "kind": "account",
642
+ "path": "recipient"
643
+ }
644
+ ]
645
+ }
646
+ },
647
+ {
648
+ "name": "instruction_sysvar",
649
+ "docs": [
650
+ "The sysvar containing the full transaction's instructions"
651
+ ],
652
+ "address": "Sysvar1nstructions1111111111111111111111111"
653
+ },
654
+ {
655
+ "name": "system_program",
656
+ "address": "11111111111111111111111111111111"
657
+ },
658
+ {
659
+ "name": "token_program",
660
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
661
+ },
662
+ {
663
+ "name": "associated_token_program",
664
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
665
+ }
666
+ ],
667
+ "args": [
668
+ {
669
+ "name": "project_nonce",
670
+ "type": "u64"
671
+ },
672
+ {
673
+ "name": "proof",
674
+ "type": {
675
+ "array": [
676
+ "u8",
677
+ 32
678
+ ]
679
+ }
680
+ }
681
+ ]
682
+ },
683
+ {
684
+ "name": "create_global_config",
685
+ "docs": [
686
+ "Create global config",
687
+ "This is the first account that is created when the program is initialized."
688
+ ],
689
+ "discriminator": [
690
+ 47,
691
+ 208,
692
+ 62,
693
+ 51,
694
+ 32,
695
+ 34,
696
+ 119,
697
+ 132
698
+ ],
699
+ "accounts": [
700
+ {
701
+ "name": "authority",
702
+ "writable": true,
703
+ "signer": true
704
+ },
705
+ {
706
+ "name": "global_config",
707
+ "writable": true,
708
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY",
709
+ "pda": {
710
+ "seeds": [
711
+ {
712
+ "kind": "const",
713
+ "value": [
714
+ 103,
715
+ 108,
716
+ 111,
717
+ 98,
718
+ 97,
719
+ 108,
720
+ 45,
721
+ 99,
722
+ 111,
723
+ 110,
724
+ 102,
725
+ 105,
726
+ 103
727
+ ]
728
+ }
729
+ ]
730
+ }
731
+ },
732
+ {
733
+ "name": "system_program",
734
+ "address": "11111111111111111111111111111111"
735
+ }
736
+ ],
737
+ "args": [
738
+ {
739
+ "name": "fee_collector",
740
+ "type": "pubkey"
741
+ }
742
+ ]
743
+ },
744
+ {
745
+ "name": "create_project",
746
+ "docs": [
747
+ "Creates a new Project",
748
+ "",
749
+ "Requirements:",
750
+ "",
751
+ "- `project_admin`: The admin of the project"
752
+ ],
753
+ "discriminator": [
754
+ 148,
755
+ 219,
756
+ 181,
757
+ 42,
758
+ 221,
759
+ 114,
760
+ 145,
761
+ 190
762
+ ],
763
+ "accounts": [
764
+ {
765
+ "name": "authority",
766
+ "writable": true,
767
+ "signer": true
768
+ },
769
+ {
770
+ "name": "global_config",
771
+ "writable": true,
772
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
773
+ },
774
+ {
775
+ "name": "project",
776
+ "writable": true,
777
+ "pda": {
778
+ "seeds": [
779
+ {
780
+ "kind": "const",
781
+ "value": [
782
+ 112,
783
+ 114,
784
+ 111,
785
+ 106,
786
+ 101,
787
+ 99,
788
+ 116
789
+ ]
790
+ },
791
+ {
792
+ "kind": "account",
793
+ "path": "global_config.project_nonce",
794
+ "account": "GlobalConfig"
795
+ }
796
+ ]
797
+ }
798
+ },
799
+ {
800
+ "name": "system_program",
801
+ "address": "11111111111111111111111111111111"
802
+ }
803
+ ],
804
+ "args": [
805
+ {
806
+ "name": "admin",
807
+ "type": "pubkey"
808
+ },
809
+ {
810
+ "name": "metadata_uri",
811
+ "type": "string"
812
+ }
813
+ ]
814
+ },
815
+ {
816
+ "name": "deposit_fungible_token",
817
+ "docs": [
818
+ "Deposit a currency token into the project (Only admin can deposit)",
819
+ "",
820
+ "Requirements:",
821
+ "",
822
+ "- `project_nonce`: The nonce of the project",
823
+ "- `amount`: The amount of the currency token to deposit"
824
+ ],
825
+ "discriminator": [
826
+ 22,
827
+ 243,
828
+ 236,
829
+ 86,
830
+ 36,
831
+ 150,
832
+ 55,
833
+ 179
834
+ ],
835
+ "accounts": [
836
+ {
837
+ "name": "token_mint"
838
+ },
839
+ {
840
+ "name": "currency_token",
841
+ "docs": [
842
+ "The currency token to deposit."
843
+ ],
844
+ "writable": true,
845
+ "pda": {
846
+ "seeds": [
847
+ {
848
+ "kind": "const",
849
+ "value": [
850
+ 99,
851
+ 117,
852
+ 114,
853
+ 114,
854
+ 101,
855
+ 110,
856
+ 99,
857
+ 121,
858
+ 45,
859
+ 116,
860
+ 111,
861
+ 107,
862
+ 101,
863
+ 110
864
+ ]
865
+ },
866
+ {
867
+ "kind": "account",
868
+ "path": "token_mint"
869
+ }
870
+ ]
871
+ }
872
+ },
873
+ {
874
+ "name": "authority",
875
+ "docs": [
876
+ "The authority to deposit from."
877
+ ],
878
+ "writable": true,
879
+ "signer": true
880
+ },
881
+ {
882
+ "name": "authority_ata",
883
+ "docs": [
884
+ "The authority token account to deposit from, only required for SPL tokens."
885
+ ],
886
+ "writable": true,
887
+ "optional": true
888
+ },
889
+ {
890
+ "name": "project",
891
+ "docs": [
892
+ "The project to deposit to."
893
+ ],
894
+ "writable": true,
895
+ "pda": {
896
+ "seeds": [
897
+ {
898
+ "kind": "const",
899
+ "value": [
900
+ 112,
901
+ 114,
902
+ 111,
903
+ 106,
904
+ 101,
905
+ 99,
906
+ 116
907
+ ]
908
+ },
909
+ {
910
+ "kind": "arg",
911
+ "path": "project_nonce"
912
+ }
913
+ ]
914
+ }
915
+ },
916
+ {
917
+ "name": "project_ata",
918
+ "docs": [
919
+ "The project token account to deposit to."
920
+ ],
921
+ "writable": true,
922
+ "optional": true,
923
+ "pda": {
924
+ "seeds": [
925
+ {
926
+ "kind": "account",
927
+ "path": "project"
928
+ },
929
+ {
930
+ "kind": "const",
931
+ "value": [
932
+ 6,
933
+ 221,
934
+ 246,
935
+ 225,
936
+ 215,
937
+ 101,
938
+ 161,
939
+ 147,
940
+ 217,
941
+ 203,
942
+ 225,
943
+ 70,
944
+ 206,
945
+ 235,
946
+ 121,
947
+ 172,
948
+ 28,
949
+ 180,
950
+ 133,
951
+ 237,
952
+ 95,
953
+ 91,
954
+ 55,
955
+ 145,
956
+ 58,
957
+ 140,
958
+ 245,
959
+ 133,
960
+ 126,
961
+ 255,
962
+ 0,
963
+ 169
964
+ ]
965
+ },
966
+ {
967
+ "kind": "account",
968
+ "path": "token_mint"
969
+ }
970
+ ],
971
+ "program": {
972
+ "kind": "const",
973
+ "value": [
974
+ 140,
975
+ 151,
976
+ 37,
977
+ 143,
978
+ 78,
979
+ 36,
980
+ 137,
981
+ 241,
982
+ 187,
983
+ 61,
984
+ 16,
985
+ 41,
986
+ 20,
987
+ 142,
988
+ 13,
989
+ 131,
990
+ 11,
991
+ 90,
992
+ 19,
993
+ 153,
994
+ 218,
995
+ 255,
996
+ 16,
997
+ 132,
998
+ 4,
999
+ 142,
1000
+ 123,
1001
+ 216,
1002
+ 219,
1003
+ 233,
1004
+ 248,
1005
+ 89
1006
+ ]
1007
+ }
1008
+ }
1009
+ },
1010
+ {
1011
+ "name": "project_currency_budget",
1012
+ "docs": [
1013
+ "The project currency vault keeps track of the deposited balance"
1014
+ ],
1015
+ "writable": true,
1016
+ "pda": {
1017
+ "seeds": [
1018
+ {
1019
+ "kind": "const",
1020
+ "value": [
1021
+ 112,
1022
+ 114,
1023
+ 111,
1024
+ 106,
1025
+ 101,
1026
+ 99,
1027
+ 116,
1028
+ 45,
1029
+ 99,
1030
+ 117,
1031
+ 114,
1032
+ 114,
1033
+ 101,
1034
+ 110,
1035
+ 99,
1036
+ 121,
1037
+ 45,
1038
+ 98,
1039
+ 117,
1040
+ 100,
1041
+ 103,
1042
+ 101,
1043
+ 116
1044
+ ]
1045
+ },
1046
+ {
1047
+ "kind": "account",
1048
+ "path": "project"
1049
+ },
1050
+ {
1051
+ "kind": "account",
1052
+ "path": "currency_token"
1053
+ }
1054
+ ]
1055
+ }
1056
+ },
1057
+ {
1058
+ "name": "system_program",
1059
+ "address": "11111111111111111111111111111111"
1060
+ },
1061
+ {
1062
+ "name": "token_program",
1063
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1064
+ }
1065
+ ],
1066
+ "args": [
1067
+ {
1068
+ "name": "project_nonce",
1069
+ "type": "u64"
1070
+ },
1071
+ {
1072
+ "name": "amount",
1073
+ "type": "u64"
1074
+ }
1075
+ ]
1076
+ },
1077
+ {
1078
+ "name": "deposit_non_fungible_token",
1079
+ "docs": [
1080
+ "Deposit a single NFT into a project",
1081
+ "",
1082
+ "Requirements:",
1083
+ "",
1084
+ "- `project_nonce`: The nonce of the project",
1085
+ "- The NFT must be owned by the authority",
1086
+ "- The project must have a token account for the NFT mint"
1087
+ ],
1088
+ "discriminator": [
1089
+ 42,
1090
+ 3,
1091
+ 22,
1092
+ 195,
1093
+ 201,
1094
+ 177,
1095
+ 11,
1096
+ 126
1097
+ ],
1098
+ "accounts": [
1099
+ {
1100
+ "name": "authority",
1101
+ "docs": [
1102
+ "The authority to deposit from."
1103
+ ],
1104
+ "writable": true,
1105
+ "signer": true
1106
+ },
1107
+ {
1108
+ "name": "authority_ata",
1109
+ "docs": [
1110
+ "The authority token account to deposit from (the NFT source)"
1111
+ ],
1112
+ "writable": true
1113
+ },
1114
+ {
1115
+ "name": "project",
1116
+ "docs": [
1117
+ "The project to deposit to."
1118
+ ],
1119
+ "writable": true,
1120
+ "pda": {
1121
+ "seeds": [
1122
+ {
1123
+ "kind": "const",
1124
+ "value": [
1125
+ 112,
1126
+ 114,
1127
+ 111,
1128
+ 106,
1129
+ 101,
1130
+ 99,
1131
+ 116
1132
+ ]
1133
+ },
1134
+ {
1135
+ "kind": "arg",
1136
+ "path": "project_nonce"
1137
+ }
1138
+ ]
1139
+ }
1140
+ },
1141
+ {
1142
+ "name": "project_ata",
1143
+ "docs": [
1144
+ "The project token account to deposit to (the NFT destination)"
1145
+ ],
1146
+ "writable": true,
1147
+ "pda": {
1148
+ "seeds": [
1149
+ {
1150
+ "kind": "account",
1151
+ "path": "project"
1152
+ },
1153
+ {
1154
+ "kind": "const",
1155
+ "value": [
1156
+ 6,
1157
+ 221,
1158
+ 246,
1159
+ 225,
1160
+ 215,
1161
+ 101,
1162
+ 161,
1163
+ 147,
1164
+ 217,
1165
+ 203,
1166
+ 225,
1167
+ 70,
1168
+ 206,
1169
+ 235,
1170
+ 121,
1171
+ 172,
1172
+ 28,
1173
+ 180,
1174
+ 133,
1175
+ 237,
1176
+ 95,
1177
+ 91,
1178
+ 55,
1179
+ 145,
1180
+ 58,
1181
+ 140,
1182
+ 245,
1183
+ 133,
1184
+ 126,
1185
+ 255,
1186
+ 0,
1187
+ 169
1188
+ ]
1189
+ },
1190
+ {
1191
+ "kind": "account",
1192
+ "path": "token_mint"
1193
+ }
1194
+ ],
1195
+ "program": {
1196
+ "kind": "const",
1197
+ "value": [
1198
+ 140,
1199
+ 151,
1200
+ 37,
1201
+ 143,
1202
+ 78,
1203
+ 36,
1204
+ 137,
1205
+ 241,
1206
+ 187,
1207
+ 61,
1208
+ 16,
1209
+ 41,
1210
+ 20,
1211
+ 142,
1212
+ 13,
1213
+ 131,
1214
+ 11,
1215
+ 90,
1216
+ 19,
1217
+ 153,
1218
+ 218,
1219
+ 255,
1220
+ 16,
1221
+ 132,
1222
+ 4,
1223
+ 142,
1224
+ 123,
1225
+ 216,
1226
+ 219,
1227
+ 233,
1228
+ 248,
1229
+ 89
1230
+ ]
1231
+ }
1232
+ }
1233
+ },
1234
+ {
1235
+ "name": "token_mint",
1236
+ "docs": [
1237
+ "The NFT mint being transferred (must have 0 decimals)"
1238
+ ]
1239
+ },
1240
+ {
1241
+ "name": "currency_token",
1242
+ "docs": [
1243
+ "The currency token to deposit."
1244
+ ],
1245
+ "writable": true,
1246
+ "pda": {
1247
+ "seeds": [
1248
+ {
1249
+ "kind": "const",
1250
+ "value": [
1251
+ 99,
1252
+ 117,
1253
+ 114,
1254
+ 114,
1255
+ 101,
1256
+ 110,
1257
+ 99,
1258
+ 121,
1259
+ 45,
1260
+ 116,
1261
+ 111,
1262
+ 107,
1263
+ 101,
1264
+ 110
1265
+ ]
1266
+ },
1267
+ {
1268
+ "kind": "account",
1269
+ "path": "token_mint"
1270
+ }
1271
+ ]
1272
+ }
1273
+ },
1274
+ {
1275
+ "name": "project_currency_budget",
1276
+ "docs": [
1277
+ "The project currency budget keeps track of the budget balance"
1278
+ ],
1279
+ "writable": true,
1280
+ "pda": {
1281
+ "seeds": [
1282
+ {
1283
+ "kind": "const",
1284
+ "value": [
1285
+ 112,
1286
+ 114,
1287
+ 111,
1288
+ 106,
1289
+ 101,
1290
+ 99,
1291
+ 116,
1292
+ 45,
1293
+ 99,
1294
+ 117,
1295
+ 114,
1296
+ 114,
1297
+ 101,
1298
+ 110,
1299
+ 99,
1300
+ 121,
1301
+ 45,
1302
+ 98,
1303
+ 117,
1304
+ 100,
1305
+ 103,
1306
+ 101,
1307
+ 116
1308
+ ]
1309
+ },
1310
+ {
1311
+ "kind": "account",
1312
+ "path": "project"
1313
+ },
1314
+ {
1315
+ "kind": "account",
1316
+ "path": "currency_token"
1317
+ }
1318
+ ]
1319
+ }
1320
+ },
1321
+ {
1322
+ "name": "system_program",
1323
+ "address": "11111111111111111111111111111111"
1324
+ },
1325
+ {
1326
+ "name": "token_program",
1327
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1328
+ }
1329
+ ],
1330
+ "args": [
1331
+ {
1332
+ "name": "project_nonce",
1333
+ "type": "u64"
1334
+ }
1335
+ ]
1336
+ },
1337
+ {
1338
+ "name": "grant_global_role",
1339
+ "docs": [
1340
+ "Grant a role to an account",
1341
+ "Parameters:",
1342
+ "- account: The account to grant the role to",
1343
+ "- role: The role to grant"
1344
+ ],
1345
+ "discriminator": [
1346
+ 211,
1347
+ 178,
1348
+ 177,
1349
+ 137,
1350
+ 155,
1351
+ 250,
1352
+ 155,
1353
+ 122
1354
+ ],
1355
+ "accounts": [
1356
+ {
1357
+ "name": "authority",
1358
+ "writable": true,
1359
+ "signer": true
1360
+ },
1361
+ {
1362
+ "name": "global_config",
1363
+ "writable": true,
1364
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
1365
+ }
1366
+ ],
1367
+ "args": [
1368
+ {
1369
+ "name": "account",
1370
+ "type": "pubkey"
1371
+ },
1372
+ {
1373
+ "name": "role",
1374
+ "type": {
1375
+ "defined": {
1376
+ "name": "GlobalRole"
1377
+ }
1378
+ }
1379
+ }
1380
+ ]
1381
+ },
1382
+ {
1383
+ "name": "grant_project_role",
1384
+ "docs": [
1385
+ "Grant a role to an account",
1386
+ "Parameters:",
1387
+ "- account: The account to grant the role to",
1388
+ "- role: The role to grant"
1389
+ ],
1390
+ "discriminator": [
1391
+ 17,
1392
+ 96,
1393
+ 54,
1394
+ 143,
1395
+ 115,
1396
+ 177,
1397
+ 202,
1398
+ 155
1399
+ ],
1400
+ "accounts": [
1401
+ {
1402
+ "name": "authority",
1403
+ "writable": true,
1404
+ "signer": true
1405
+ },
1406
+ {
1407
+ "name": "project",
1408
+ "writable": true,
1409
+ "pda": {
1410
+ "seeds": [
1411
+ {
1412
+ "kind": "const",
1413
+ "value": [
1414
+ 112,
1415
+ 114,
1416
+ 111,
1417
+ 106,
1418
+ 101,
1419
+ 99,
1420
+ 116
1421
+ ]
1422
+ },
1423
+ {
1424
+ "kind": "arg",
1425
+ "path": "project_nonce"
1426
+ }
1427
+ ]
1428
+ }
1429
+ }
1430
+ ],
1431
+ "args": [
1432
+ {
1433
+ "name": "project_nonce",
1434
+ "type": "u64"
1435
+ },
1436
+ {
1437
+ "name": "account",
1438
+ "type": "pubkey"
1439
+ },
1440
+ {
1441
+ "name": "role",
1442
+ "type": {
1443
+ "defined": {
1444
+ "name": "ProjectRole"
1445
+ }
1446
+ }
1447
+ }
1448
+ ]
1449
+ },
1450
+ {
1451
+ "name": "pause_program",
1452
+ "docs": [
1453
+ "Pause the program",
1454
+ "Sets the paused state of the global config to true.",
1455
+ "Only pausers can call this function."
1456
+ ],
1457
+ "discriminator": [
1458
+ 91,
1459
+ 86,
1460
+ 253,
1461
+ 175,
1462
+ 66,
1463
+ 236,
1464
+ 172,
1465
+ 124
1466
+ ],
1467
+ "accounts": [
1468
+ {
1469
+ "name": "authority",
1470
+ "writable": true,
1471
+ "signer": true
1472
+ },
1473
+ {
1474
+ "name": "global_config",
1475
+ "writable": true,
1476
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
1477
+ }
1478
+ ],
1479
+ "args": []
1480
+ },
1481
+ {
1482
+ "name": "remove_currency_token",
1483
+ "docs": [
1484
+ "Remove a currency token from the global config",
1485
+ "",
1486
+ "Requirements:",
1487
+ "",
1488
+ "- Only admins can call this function."
1489
+ ],
1490
+ "discriminator": [
1491
+ 115,
1492
+ 131,
1493
+ 60,
1494
+ 140,
1495
+ 194,
1496
+ 3,
1497
+ 209,
1498
+ 34
1499
+ ],
1500
+ "accounts": [
1501
+ {
1502
+ "name": "authority",
1503
+ "writable": true,
1504
+ "signer": true
1505
+ },
1506
+ {
1507
+ "name": "global_config",
1508
+ "writable": true,
1509
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
1510
+ },
1511
+ {
1512
+ "name": "currency_token",
1513
+ "writable": true,
1514
+ "pda": {
1515
+ "seeds": [
1516
+ {
1517
+ "kind": "const",
1518
+ "value": [
1519
+ 99,
1520
+ 117,
1521
+ 114,
1522
+ 114,
1523
+ 101,
1524
+ 110,
1525
+ 99,
1526
+ 121,
1527
+ 45,
1528
+ 116,
1529
+ 111,
1530
+ 107,
1531
+ 101,
1532
+ 110
1533
+ ]
1534
+ },
1535
+ {
1536
+ "kind": "account",
1537
+ "path": "token_mint"
1538
+ }
1539
+ ]
1540
+ }
1541
+ },
1542
+ {
1543
+ "name": "token_mint"
1544
+ },
1545
+ {
1546
+ "name": "system_program",
1547
+ "address": "11111111111111111111111111111111"
1548
+ }
1549
+ ],
1550
+ "args": []
1551
+ },
1552
+ {
1553
+ "name": "remove_fungible_token",
1554
+ "docs": [
1555
+ "Remove a currency token from the project (Only admin can remove)",
1556
+ "",
1557
+ "Requirements:",
1558
+ "",
1559
+ "- `project_nonce`: The nonce of the project",
1560
+ "- `amount`: The amount of the currency token to remove"
1561
+ ],
1562
+ "discriminator": [
1563
+ 53,
1564
+ 164,
1565
+ 172,
1566
+ 131,
1567
+ 64,
1568
+ 14,
1569
+ 62,
1570
+ 51
1571
+ ],
1572
+ "accounts": [
1573
+ {
1574
+ "name": "global_config",
1575
+ "writable": true,
1576
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
1577
+ },
1578
+ {
1579
+ "name": "token_mint"
1580
+ },
1581
+ {
1582
+ "name": "fee_collector",
1583
+ "docs": [
1584
+ "The fee collector account"
1585
+ ],
1586
+ "writable": true
1587
+ },
1588
+ {
1589
+ "name": "protocol_fee_collector_ata",
1590
+ "docs": [
1591
+ "The fee collector account"
1592
+ ],
1593
+ "writable": true,
1594
+ "optional": true,
1595
+ "pda": {
1596
+ "seeds": [
1597
+ {
1598
+ "kind": "account",
1599
+ "path": "fee_collector"
1600
+ },
1601
+ {
1602
+ "kind": "const",
1603
+ "value": [
1604
+ 6,
1605
+ 221,
1606
+ 246,
1607
+ 225,
1608
+ 215,
1609
+ 101,
1610
+ 161,
1611
+ 147,
1612
+ 217,
1613
+ 203,
1614
+ 225,
1615
+ 70,
1616
+ 206,
1617
+ 235,
1618
+ 121,
1619
+ 172,
1620
+ 28,
1621
+ 180,
1622
+ 133,
1623
+ 237,
1624
+ 95,
1625
+ 91,
1626
+ 55,
1627
+ 145,
1628
+ 58,
1629
+ 140,
1630
+ 245,
1631
+ 133,
1632
+ 126,
1633
+ 255,
1634
+ 0,
1635
+ 169
1636
+ ]
1637
+ },
1638
+ {
1639
+ "kind": "account",
1640
+ "path": "token_mint"
1641
+ }
1642
+ ],
1643
+ "program": {
1644
+ "kind": "const",
1645
+ "value": [
1646
+ 140,
1647
+ 151,
1648
+ 37,
1649
+ 143,
1650
+ 78,
1651
+ 36,
1652
+ 137,
1653
+ 241,
1654
+ 187,
1655
+ 61,
1656
+ 16,
1657
+ 41,
1658
+ 20,
1659
+ 142,
1660
+ 13,
1661
+ 131,
1662
+ 11,
1663
+ 90,
1664
+ 19,
1665
+ 153,
1666
+ 218,
1667
+ 255,
1668
+ 16,
1669
+ 132,
1670
+ 4,
1671
+ 142,
1672
+ 123,
1673
+ 216,
1674
+ 219,
1675
+ 233,
1676
+ 248,
1677
+ 89
1678
+ ]
1679
+ }
1680
+ }
1681
+ },
1682
+ {
1683
+ "name": "authority",
1684
+ "docs": [
1685
+ "The authority that will receive the fee. Must be admin."
1686
+ ],
1687
+ "writable": true,
1688
+ "signer": true
1689
+ },
1690
+ {
1691
+ "name": "authority_ata",
1692
+ "docs": [
1693
+ "The authority token account to withdraw to, only required for SPL tokens."
1694
+ ],
1695
+ "writable": true,
1696
+ "optional": true,
1697
+ "pda": {
1698
+ "seeds": [
1699
+ {
1700
+ "kind": "account",
1701
+ "path": "authority"
1702
+ },
1703
+ {
1704
+ "kind": "const",
1705
+ "value": [
1706
+ 6,
1707
+ 221,
1708
+ 246,
1709
+ 225,
1710
+ 215,
1711
+ 101,
1712
+ 161,
1713
+ 147,
1714
+ 217,
1715
+ 203,
1716
+ 225,
1717
+ 70,
1718
+ 206,
1719
+ 235,
1720
+ 121,
1721
+ 172,
1722
+ 28,
1723
+ 180,
1724
+ 133,
1725
+ 237,
1726
+ 95,
1727
+ 91,
1728
+ 55,
1729
+ 145,
1730
+ 58,
1731
+ 140,
1732
+ 245,
1733
+ 133,
1734
+ 126,
1735
+ 255,
1736
+ 0,
1737
+ 169
1738
+ ]
1739
+ },
1740
+ {
1741
+ "kind": "account",
1742
+ "path": "token_mint"
1743
+ }
1744
+ ],
1745
+ "program": {
1746
+ "kind": "const",
1747
+ "value": [
1748
+ 140,
1749
+ 151,
1750
+ 37,
1751
+ 143,
1752
+ 78,
1753
+ 36,
1754
+ 137,
1755
+ 241,
1756
+ 187,
1757
+ 61,
1758
+ 16,
1759
+ 41,
1760
+ 20,
1761
+ 142,
1762
+ 13,
1763
+ 131,
1764
+ 11,
1765
+ 90,
1766
+ 19,
1767
+ 153,
1768
+ 218,
1769
+ 255,
1770
+ 16,
1771
+ 132,
1772
+ 4,
1773
+ 142,
1774
+ 123,
1775
+ 216,
1776
+ 219,
1777
+ 233,
1778
+ 248,
1779
+ 89
1780
+ ]
1781
+ }
1782
+ }
1783
+ },
1784
+ {
1785
+ "name": "project",
1786
+ "docs": [
1787
+ "The project to withdraw from."
1788
+ ],
1789
+ "writable": true,
1790
+ "pda": {
1791
+ "seeds": [
1792
+ {
1793
+ "kind": "const",
1794
+ "value": [
1795
+ 112,
1796
+ 114,
1797
+ 111,
1798
+ 106,
1799
+ 101,
1800
+ 99,
1801
+ 116
1802
+ ]
1803
+ },
1804
+ {
1805
+ "kind": "arg",
1806
+ "path": "project_nonce"
1807
+ }
1808
+ ]
1809
+ }
1810
+ },
1811
+ {
1812
+ "name": "project_ata",
1813
+ "docs": [
1814
+ "The project currency vault ata to withdraw from, only required for SPL tokens."
1815
+ ],
1816
+ "writable": true,
1817
+ "optional": true,
1818
+ "pda": {
1819
+ "seeds": [
1820
+ {
1821
+ "kind": "account",
1822
+ "path": "project"
1823
+ },
1824
+ {
1825
+ "kind": "const",
1826
+ "value": [
1827
+ 6,
1828
+ 221,
1829
+ 246,
1830
+ 225,
1831
+ 215,
1832
+ 101,
1833
+ 161,
1834
+ 147,
1835
+ 217,
1836
+ 203,
1837
+ 225,
1838
+ 70,
1839
+ 206,
1840
+ 235,
1841
+ 121,
1842
+ 172,
1843
+ 28,
1844
+ 180,
1845
+ 133,
1846
+ 237,
1847
+ 95,
1848
+ 91,
1849
+ 55,
1850
+ 145,
1851
+ 58,
1852
+ 140,
1853
+ 245,
1854
+ 133,
1855
+ 126,
1856
+ 255,
1857
+ 0,
1858
+ 169
1859
+ ]
1860
+ },
1861
+ {
1862
+ "kind": "account",
1863
+ "path": "token_mint"
1864
+ }
1865
+ ],
1866
+ "program": {
1867
+ "kind": "const",
1868
+ "value": [
1869
+ 140,
1870
+ 151,
1871
+ 37,
1872
+ 143,
1873
+ 78,
1874
+ 36,
1875
+ 137,
1876
+ 241,
1877
+ 187,
1878
+ 61,
1879
+ 16,
1880
+ 41,
1881
+ 20,
1882
+ 142,
1883
+ 13,
1884
+ 131,
1885
+ 11,
1886
+ 90,
1887
+ 19,
1888
+ 153,
1889
+ 218,
1890
+ 255,
1891
+ 16,
1892
+ 132,
1893
+ 4,
1894
+ 142,
1895
+ 123,
1896
+ 216,
1897
+ 219,
1898
+ 233,
1899
+ 248,
1900
+ 89
1901
+ ]
1902
+ }
1903
+ }
1904
+ },
1905
+ {
1906
+ "name": "currency_token",
1907
+ "docs": [
1908
+ "The currency token to withdraw."
1909
+ ],
1910
+ "writable": true,
1911
+ "pda": {
1912
+ "seeds": [
1913
+ {
1914
+ "kind": "const",
1915
+ "value": [
1916
+ 99,
1917
+ 117,
1918
+ 114,
1919
+ 114,
1920
+ 101,
1921
+ 110,
1922
+ 99,
1923
+ 121,
1924
+ 45,
1925
+ 116,
1926
+ 111,
1927
+ 107,
1928
+ 101,
1929
+ 110
1930
+ ]
1931
+ },
1932
+ {
1933
+ "kind": "account",
1934
+ "path": "token_mint"
1935
+ }
1936
+ ]
1937
+ }
1938
+ },
1939
+ {
1940
+ "name": "project_currency_budget",
1941
+ "docs": [
1942
+ "The project currency budget keeps track of the budget balance"
1943
+ ],
1944
+ "writable": true,
1945
+ "pda": {
1946
+ "seeds": [
1947
+ {
1948
+ "kind": "const",
1949
+ "value": [
1950
+ 112,
1951
+ 114,
1952
+ 111,
1953
+ 106,
1954
+ 101,
1955
+ 99,
1956
+ 116,
1957
+ 45,
1958
+ 99,
1959
+ 117,
1960
+ 114,
1961
+ 114,
1962
+ 101,
1963
+ 110,
1964
+ 99,
1965
+ 121,
1966
+ 45,
1967
+ 98,
1968
+ 117,
1969
+ 100,
1970
+ 103,
1971
+ 101,
1972
+ 116
1973
+ ]
1974
+ },
1975
+ {
1976
+ "kind": "account",
1977
+ "path": "project"
1978
+ },
1979
+ {
1980
+ "kind": "account",
1981
+ "path": "currency_token"
1982
+ }
1983
+ ]
1984
+ }
1985
+ },
1986
+ {
1987
+ "name": "system_program",
1988
+ "address": "11111111111111111111111111111111"
1989
+ },
1990
+ {
1991
+ "name": "token_program",
1992
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1993
+ }
1994
+ ],
1995
+ "args": [
1996
+ {
1997
+ "name": "project_nonce",
1998
+ "type": "u64"
1999
+ },
2000
+ {
2001
+ "name": "amount",
2002
+ "type": "u64"
2003
+ }
2004
+ ]
2005
+ },
2006
+ {
2007
+ "name": "remove_no_claim_fee_whitelist",
2008
+ "docs": [
2009
+ "Remove a wallet from the no claim fee whitelist",
2010
+ "Parameters:",
2011
+ "- account: The wallet to remove from the no claim fee whitelist"
2012
+ ],
2013
+ "discriminator": [
2014
+ 102,
2015
+ 120,
2016
+ 193,
2017
+ 156,
2018
+ 126,
2019
+ 32,
2020
+ 239,
2021
+ 167
2022
+ ],
2023
+ "accounts": [
2024
+ {
2025
+ "name": "authority",
2026
+ "writable": true,
2027
+ "signer": true
2028
+ },
2029
+ {
2030
+ "name": "global_config",
2031
+ "writable": true,
2032
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2033
+ }
2034
+ ],
2035
+ "args": [
2036
+ {
2037
+ "name": "account",
2038
+ "type": "pubkey"
2039
+ }
2040
+ ]
2041
+ },
2042
+ {
2043
+ "name": "remove_non_fungible_token",
2044
+ "docs": [
2045
+ "Remove a single NFT from the project (Only admin can remove)",
2046
+ "",
2047
+ "Requirements:",
2048
+ "",
2049
+ "- `project_nonce`: The nonce of the project",
2050
+ "- The project must have the NFT"
2051
+ ],
2052
+ "discriminator": [
2053
+ 157,
2054
+ 179,
2055
+ 215,
2056
+ 98,
2057
+ 88,
2058
+ 34,
2059
+ 103,
2060
+ 138
2061
+ ],
2062
+ "accounts": [
2063
+ {
2064
+ "name": "authority",
2065
+ "writable": true,
2066
+ "signer": true
2067
+ },
2068
+ {
2069
+ "name": "authority_ata",
2070
+ "docs": [
2071
+ "The authority token account to withdraw to (the NFT destination)"
2072
+ ],
2073
+ "writable": true,
2074
+ "pda": {
2075
+ "seeds": [
2076
+ {
2077
+ "kind": "account",
2078
+ "path": "authority"
2079
+ },
2080
+ {
2081
+ "kind": "const",
2082
+ "value": [
2083
+ 6,
2084
+ 221,
2085
+ 246,
2086
+ 225,
2087
+ 215,
2088
+ 101,
2089
+ 161,
2090
+ 147,
2091
+ 217,
2092
+ 203,
2093
+ 225,
2094
+ 70,
2095
+ 206,
2096
+ 235,
2097
+ 121,
2098
+ 172,
2099
+ 28,
2100
+ 180,
2101
+ 133,
2102
+ 237,
2103
+ 95,
2104
+ 91,
2105
+ 55,
2106
+ 145,
2107
+ 58,
2108
+ 140,
2109
+ 245,
2110
+ 133,
2111
+ 126,
2112
+ 255,
2113
+ 0,
2114
+ 169
2115
+ ]
2116
+ },
2117
+ {
2118
+ "kind": "account",
2119
+ "path": "token_mint"
2120
+ }
2121
+ ],
2122
+ "program": {
2123
+ "kind": "const",
2124
+ "value": [
2125
+ 140,
2126
+ 151,
2127
+ 37,
2128
+ 143,
2129
+ 78,
2130
+ 36,
2131
+ 137,
2132
+ 241,
2133
+ 187,
2134
+ 61,
2135
+ 16,
2136
+ 41,
2137
+ 20,
2138
+ 142,
2139
+ 13,
2140
+ 131,
2141
+ 11,
2142
+ 90,
2143
+ 19,
2144
+ 153,
2145
+ 218,
2146
+ 255,
2147
+ 16,
2148
+ 132,
2149
+ 4,
2150
+ 142,
2151
+ 123,
2152
+ 216,
2153
+ 219,
2154
+ 233,
2155
+ 248,
2156
+ 89
2157
+ ]
2158
+ }
2159
+ }
2160
+ },
2161
+ {
2162
+ "name": "project",
2163
+ "docs": [
2164
+ "The project to withdraw from."
2165
+ ],
2166
+ "writable": true,
2167
+ "pda": {
2168
+ "seeds": [
2169
+ {
2170
+ "kind": "const",
2171
+ "value": [
2172
+ 112,
2173
+ 114,
2174
+ 111,
2175
+ 106,
2176
+ 101,
2177
+ 99,
2178
+ 116
2179
+ ]
2180
+ },
2181
+ {
2182
+ "kind": "arg",
2183
+ "path": "project_nonce"
2184
+ }
2185
+ ]
2186
+ }
2187
+ },
2188
+ {
2189
+ "name": "project_ata",
2190
+ "docs": [
2191
+ "The project token account to withdraw from (the NFT source)"
2192
+ ],
2193
+ "writable": true,
2194
+ "pda": {
2195
+ "seeds": [
2196
+ {
2197
+ "kind": "account",
2198
+ "path": "project"
2199
+ },
2200
+ {
2201
+ "kind": "const",
2202
+ "value": [
2203
+ 6,
2204
+ 221,
2205
+ 246,
2206
+ 225,
2207
+ 215,
2208
+ 101,
2209
+ 161,
2210
+ 147,
2211
+ 217,
2212
+ 203,
2213
+ 225,
2214
+ 70,
2215
+ 206,
2216
+ 235,
2217
+ 121,
2218
+ 172,
2219
+ 28,
2220
+ 180,
2221
+ 133,
2222
+ 237,
2223
+ 95,
2224
+ 91,
2225
+ 55,
2226
+ 145,
2227
+ 58,
2228
+ 140,
2229
+ 245,
2230
+ 133,
2231
+ 126,
2232
+ 255,
2233
+ 0,
2234
+ 169
2235
+ ]
2236
+ },
2237
+ {
2238
+ "kind": "account",
2239
+ "path": "token_mint"
2240
+ }
2241
+ ],
2242
+ "program": {
2243
+ "kind": "const",
2244
+ "value": [
2245
+ 140,
2246
+ 151,
2247
+ 37,
2248
+ 143,
2249
+ 78,
2250
+ 36,
2251
+ 137,
2252
+ 241,
2253
+ 187,
2254
+ 61,
2255
+ 16,
2256
+ 41,
2257
+ 20,
2258
+ 142,
2259
+ 13,
2260
+ 131,
2261
+ 11,
2262
+ 90,
2263
+ 19,
2264
+ 153,
2265
+ 218,
2266
+ 255,
2267
+ 16,
2268
+ 132,
2269
+ 4,
2270
+ 142,
2271
+ 123,
2272
+ 216,
2273
+ 219,
2274
+ 233,
2275
+ 248,
2276
+ 89
2277
+ ]
2278
+ }
2279
+ }
2280
+ },
2281
+ {
2282
+ "name": "token_mint",
2283
+ "docs": [
2284
+ "The NFT mint being transferred (must have 0 decimals)"
2285
+ ]
2286
+ },
2287
+ {
2288
+ "name": "currency_token",
2289
+ "docs": [
2290
+ "The currency token to deposit."
2291
+ ],
2292
+ "writable": true,
2293
+ "pda": {
2294
+ "seeds": [
2295
+ {
2296
+ "kind": "const",
2297
+ "value": [
2298
+ 99,
2299
+ 117,
2300
+ 114,
2301
+ 114,
2302
+ 101,
2303
+ 110,
2304
+ 99,
2305
+ 121,
2306
+ 45,
2307
+ 116,
2308
+ 111,
2309
+ 107,
2310
+ 101,
2311
+ 110
2312
+ ]
2313
+ },
2314
+ {
2315
+ "kind": "account",
2316
+ "path": "token_mint"
2317
+ }
2318
+ ]
2319
+ }
2320
+ },
2321
+ {
2322
+ "name": "project_currency_budget",
2323
+ "docs": [
2324
+ "The project currency budget keeps track of the budget balance"
2325
+ ],
2326
+ "writable": true,
2327
+ "pda": {
2328
+ "seeds": [
2329
+ {
2330
+ "kind": "const",
2331
+ "value": [
2332
+ 112,
2333
+ 114,
2334
+ 111,
2335
+ 106,
2336
+ 101,
2337
+ 99,
2338
+ 116,
2339
+ 45,
2340
+ 99,
2341
+ 117,
2342
+ 114,
2343
+ 114,
2344
+ 101,
2345
+ 110,
2346
+ 99,
2347
+ 121,
2348
+ 45,
2349
+ 98,
2350
+ 117,
2351
+ 100,
2352
+ 103,
2353
+ 101,
2354
+ 116
2355
+ ]
2356
+ },
2357
+ {
2358
+ "kind": "account",
2359
+ "path": "project"
2360
+ },
2361
+ {
2362
+ "kind": "account",
2363
+ "path": "currency_token"
2364
+ }
2365
+ ]
2366
+ }
2367
+ },
2368
+ {
2369
+ "name": "system_program",
2370
+ "address": "11111111111111111111111111111111"
2371
+ },
2372
+ {
2373
+ "name": "token_program",
2374
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
2375
+ }
2376
+ ],
2377
+ "args": [
2378
+ {
2379
+ "name": "project_nonce",
2380
+ "type": "u64"
2381
+ }
2382
+ ]
2383
+ },
2384
+ {
2385
+ "name": "renounce_global_role",
2386
+ "docs": [
2387
+ "Renounce a role",
2388
+ "Parameters:",
2389
+ "- role: The role to renounce"
2390
+ ],
2391
+ "discriminator": [
2392
+ 160,
2393
+ 86,
2394
+ 246,
2395
+ 206,
2396
+ 72,
2397
+ 125,
2398
+ 225,
2399
+ 148
2400
+ ],
2401
+ "accounts": [
2402
+ {
2403
+ "name": "authority",
2404
+ "writable": true,
2405
+ "signer": true
2406
+ },
2407
+ {
2408
+ "name": "global_config",
2409
+ "writable": true,
2410
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2411
+ }
2412
+ ],
2413
+ "args": [
2414
+ {
2415
+ "name": "role",
2416
+ "type": {
2417
+ "defined": {
2418
+ "name": "GlobalRole"
2419
+ }
2420
+ }
2421
+ }
2422
+ ]
2423
+ },
2424
+ {
2425
+ "name": "renounce_project_role",
2426
+ "docs": [
2427
+ "Renounce a role",
2428
+ "Parameters:",
2429
+ "- `project_nonce`: The nonce of the project",
2430
+ "- `role`: The role to renounce"
2431
+ ],
2432
+ "discriminator": [
2433
+ 113,
2434
+ 5,
2435
+ 99,
2436
+ 145,
2437
+ 220,
2438
+ 34,
2439
+ 84,
2440
+ 170
2441
+ ],
2442
+ "accounts": [
2443
+ {
2444
+ "name": "authority",
2445
+ "writable": true,
2446
+ "signer": true
2447
+ },
2448
+ {
2449
+ "name": "project",
2450
+ "writable": true,
2451
+ "pda": {
2452
+ "seeds": [
2453
+ {
2454
+ "kind": "const",
2455
+ "value": [
2456
+ 112,
2457
+ 114,
2458
+ 111,
2459
+ 106,
2460
+ 101,
2461
+ 99,
2462
+ 116
2463
+ ]
2464
+ },
2465
+ {
2466
+ "kind": "arg",
2467
+ "path": "project_nonce"
2468
+ }
2469
+ ]
2470
+ }
2471
+ }
2472
+ ],
2473
+ "args": [
2474
+ {
2475
+ "name": "project_nonce",
2476
+ "type": "u64"
2477
+ },
2478
+ {
2479
+ "name": "role",
2480
+ "type": {
2481
+ "defined": {
2482
+ "name": "ProjectRole"
2483
+ }
2484
+ }
2485
+ }
2486
+ ]
2487
+ },
2488
+ {
2489
+ "name": "revoke_global_role",
2490
+ "docs": [
2491
+ "Revoke a role from an account",
2492
+ "Parameters:",
2493
+ "- account: The account to revoke the role from",
2494
+ "- role: The role to revoke"
2495
+ ],
2496
+ "discriminator": [
2497
+ 124,
2498
+ 96,
2499
+ 96,
2500
+ 85,
2501
+ 83,
2502
+ 43,
2503
+ 157,
2504
+ 28
2505
+ ],
2506
+ "accounts": [
2507
+ {
2508
+ "name": "authority",
2509
+ "writable": true,
2510
+ "signer": true
2511
+ },
2512
+ {
2513
+ "name": "global_config",
2514
+ "writable": true,
2515
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2516
+ }
2517
+ ],
2518
+ "args": [
2519
+ {
2520
+ "name": "account",
2521
+ "type": "pubkey"
2522
+ },
2523
+ {
2524
+ "name": "role",
2525
+ "type": {
2526
+ "defined": {
2527
+ "name": "GlobalRole"
2528
+ }
2529
+ }
2530
+ }
2531
+ ]
2532
+ },
2533
+ {
2534
+ "name": "revoke_project_role",
2535
+ "docs": [
2536
+ "Revoke a role from an account",
2537
+ "Parameters:",
2538
+ "- account: The account to revoke the role from",
2539
+ "- role: The role to revoke"
2540
+ ],
2541
+ "discriminator": [
2542
+ 135,
2543
+ 238,
2544
+ 36,
2545
+ 13,
2546
+ 94,
2547
+ 43,
2548
+ 14,
2549
+ 36
2550
+ ],
2551
+ "accounts": [
2552
+ {
2553
+ "name": "authority",
2554
+ "writable": true,
2555
+ "signer": true
2556
+ },
2557
+ {
2558
+ "name": "project",
2559
+ "writable": true,
2560
+ "pda": {
2561
+ "seeds": [
2562
+ {
2563
+ "kind": "const",
2564
+ "value": [
2565
+ 112,
2566
+ 114,
2567
+ 111,
2568
+ 106,
2569
+ 101,
2570
+ 99,
2571
+ 116
2572
+ ]
2573
+ },
2574
+ {
2575
+ "kind": "arg",
2576
+ "path": "project_nonce"
2577
+ }
2578
+ ]
2579
+ }
2580
+ }
2581
+ ],
2582
+ "args": [
2583
+ {
2584
+ "name": "project_nonce",
2585
+ "type": "u64"
2586
+ },
2587
+ {
2588
+ "name": "account",
2589
+ "type": "pubkey"
2590
+ },
2591
+ {
2592
+ "name": "role",
2593
+ "type": {
2594
+ "defined": {
2595
+ "name": "ProjectRole"
2596
+ }
2597
+ }
2598
+ }
2599
+ ]
2600
+ },
2601
+ {
2602
+ "name": "unpause_program",
2603
+ "docs": [
2604
+ "Unpause the program",
2605
+ "Sets the paused state of the global config to false.",
2606
+ "Only unpausers can call this function."
2607
+ ],
2608
+ "discriminator": [
2609
+ 43,
2610
+ 162,
2611
+ 233,
2612
+ 92,
2613
+ 254,
2614
+ 62,
2615
+ 69,
2616
+ 58
2617
+ ],
2618
+ "accounts": [
2619
+ {
2620
+ "name": "authority",
2621
+ "writable": true,
2622
+ "signer": true
2623
+ },
2624
+ {
2625
+ "name": "global_config",
2626
+ "writable": true,
2627
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2628
+ }
2629
+ ],
2630
+ "args": []
2631
+ },
2632
+ {
2633
+ "name": "update_currency_token_limit",
2634
+ "docs": [
2635
+ "Update the limit of a currency token",
2636
+ "",
2637
+ "Requirements:",
2638
+ "",
2639
+ "- Only admins can call this function."
2640
+ ],
2641
+ "discriminator": [
2642
+ 20,
2643
+ 177,
2644
+ 169,
2645
+ 21,
2646
+ 128,
2647
+ 59,
2648
+ 186,
2649
+ 77
2650
+ ],
2651
+ "accounts": [
2652
+ {
2653
+ "name": "authority",
2654
+ "writable": true,
2655
+ "signer": true
2656
+ },
2657
+ {
2658
+ "name": "global_config",
2659
+ "writable": true,
2660
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2661
+ },
2662
+ {
2663
+ "name": "currency_token",
2664
+ "writable": true,
2665
+ "pda": {
2666
+ "seeds": [
2667
+ {
2668
+ "kind": "const",
2669
+ "value": [
2670
+ 99,
2671
+ 117,
2672
+ 114,
2673
+ 114,
2674
+ 101,
2675
+ 110,
2676
+ 99,
2677
+ 121,
2678
+ 45,
2679
+ 116,
2680
+ 111,
2681
+ 107,
2682
+ 101,
2683
+ 110
2684
+ ]
2685
+ },
2686
+ {
2687
+ "kind": "account",
2688
+ "path": "token_mint"
2689
+ }
2690
+ ]
2691
+ }
2692
+ },
2693
+ {
2694
+ "name": "token_mint"
2695
+ }
2696
+ ],
2697
+ "args": [
2698
+ {
2699
+ "name": "claim_limit_per_cooldown",
2700
+ "type": {
2701
+ "option": "u64"
2702
+ }
2703
+ },
2704
+ {
2705
+ "name": "is_active",
2706
+ "type": {
2707
+ "option": "bool"
2708
+ }
2709
+ }
2710
+ ]
2711
+ },
2712
+ {
2713
+ "name": "update_global_config",
2714
+ "docs": [
2715
+ "Update the global config",
2716
+ "",
2717
+ "Requirements:",
2718
+ "",
2719
+ "- `claim_cool_down` must be different from the current one.",
2720
+ "- `required_signers_for_claim` must be different from the current one.",
2721
+ "- Only admins can call this function."
2722
+ ],
2723
+ "discriminator": [
2724
+ 164,
2725
+ 84,
2726
+ 130,
2727
+ 189,
2728
+ 111,
2729
+ 58,
2730
+ 250,
2731
+ 200
2732
+ ],
2733
+ "accounts": [
2734
+ {
2735
+ "name": "authority",
2736
+ "writable": true,
2737
+ "signer": true
2738
+ },
2739
+ {
2740
+ "name": "global_config",
2741
+ "writable": true,
2742
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2743
+ }
2744
+ ],
2745
+ "args": [
2746
+ {
2747
+ "name": "claim_cool_down",
2748
+ "type": {
2749
+ "option": "u64"
2750
+ }
2751
+ },
2752
+ {
2753
+ "name": "required_signers_for_claim",
2754
+ "type": {
2755
+ "option": "u8"
2756
+ }
2757
+ }
2758
+ ]
2759
+ },
2760
+ {
2761
+ "name": "update_global_config_fees",
2762
+ "docs": [
2763
+ "Update global config fee management fields at once.",
2764
+ "",
2765
+ "Requirements:",
2766
+ "",
2767
+ "- Any supplied field must be different from the current value.",
2768
+ "- Only admins can call this function."
2769
+ ],
2770
+ "discriminator": [
2771
+ 162,
2772
+ 217,
2773
+ 12,
2774
+ 173,
2775
+ 175,
2776
+ 187,
2777
+ 167,
2778
+ 177
2779
+ ],
2780
+ "accounts": [
2781
+ {
2782
+ "name": "authority",
2783
+ "writable": true,
2784
+ "signer": true
2785
+ },
2786
+ {
2787
+ "name": "global_config",
2788
+ "writable": true,
2789
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2790
+ }
2791
+ ],
2792
+ "args": [
2793
+ {
2794
+ "name": "fee_collector",
2795
+ "type": {
2796
+ "option": "pubkey"
2797
+ }
2798
+ },
2799
+ {
2800
+ "name": "user_native_claim_fee",
2801
+ "type": {
2802
+ "option": "u64"
2803
+ }
2804
+ },
2805
+ {
2806
+ "name": "project_claim_fee",
2807
+ "type": {
2808
+ "option": "u16"
2809
+ }
2810
+ },
2811
+ {
2812
+ "name": "remove_fee",
2813
+ "type": {
2814
+ "option": "u16"
2815
+ }
2816
+ }
2817
+ ]
2818
+ },
2819
+ {
2820
+ "name": "update_project_config",
2821
+ "docs": [
2822
+ "Update the project config",
2823
+ "",
2824
+ "Requirements:",
2825
+ "",
2826
+ "- `project_nonce`: The nonce of the project",
2827
+ "- `metadata_uri`: The new metadata URI"
2828
+ ],
2829
+ "discriminator": [
2830
+ 92,
2831
+ 158,
2832
+ 238,
2833
+ 143,
2834
+ 67,
2835
+ 224,
2836
+ 25,
2837
+ 155
2838
+ ],
2839
+ "accounts": [
2840
+ {
2841
+ "name": "authority",
2842
+ "writable": true,
2843
+ "signer": true
2844
+ },
2845
+ {
2846
+ "name": "project",
2847
+ "docs": [
2848
+ "The project to update."
2849
+ ],
2850
+ "writable": true,
2851
+ "pda": {
2852
+ "seeds": [
2853
+ {
2854
+ "kind": "const",
2855
+ "value": [
2856
+ 112,
2857
+ 114,
2858
+ 111,
2859
+ 106,
2860
+ 101,
2861
+ 99,
2862
+ 116
2863
+ ]
2864
+ },
2865
+ {
2866
+ "kind": "arg",
2867
+ "path": "project_nonce"
2868
+ }
2869
+ ]
2870
+ }
2871
+ }
2872
+ ],
2873
+ "args": [
2874
+ {
2875
+ "name": "project_nonce",
2876
+ "type": "u64"
2877
+ },
2878
+ {
2879
+ "name": "metadata_uri",
2880
+ "type": "string"
2881
+ }
2882
+ ]
2883
+ },
2884
+ {
2885
+ "name": "update_project_fees",
2886
+ "docs": [
2887
+ "Update the project fees",
2888
+ "",
2889
+ "Requirements:",
2890
+ "",
2891
+ "- `project_nonce`: The nonce of the project",
2892
+ "- `user_native_claim_fee`: The user native claim fee to update",
2893
+ "- `project_claim_fee`: The project claim fee to update",
2894
+ "- `remove_fee`: The remove fee to update",
2895
+ "- Only global config authorities can call this function."
2896
+ ],
2897
+ "discriminator": [
2898
+ 69,
2899
+ 112,
2900
+ 48,
2901
+ 223,
2902
+ 112,
2903
+ 10,
2904
+ 201,
2905
+ 138
2906
+ ],
2907
+ "accounts": [
2908
+ {
2909
+ "name": "authority",
2910
+ "writable": true,
2911
+ "signer": true
2912
+ },
2913
+ {
2914
+ "name": "project",
2915
+ "docs": [
2916
+ "The project to update."
2917
+ ],
2918
+ "writable": true,
2919
+ "pda": {
2920
+ "seeds": [
2921
+ {
2922
+ "kind": "const",
2923
+ "value": [
2924
+ 112,
2925
+ 114,
2926
+ 111,
2927
+ 106,
2928
+ 101,
2929
+ 99,
2930
+ 116
2931
+ ]
2932
+ },
2933
+ {
2934
+ "kind": "arg",
2935
+ "path": "project_nonce"
2936
+ }
2937
+ ]
2938
+ }
2939
+ },
2940
+ {
2941
+ "name": "global_config",
2942
+ "address": "6tmBxYUDkm8xg2NybDU5hgrpHLgs4gT1CPF1ngkQe9iY"
2943
+ }
2944
+ ],
2945
+ "args": [
2946
+ {
2947
+ "name": "project_nonce",
2948
+ "type": "u64"
2949
+ },
2950
+ {
2951
+ "name": "user_native_claim_fee",
2952
+ "type": {
2953
+ "option": "u64"
2954
+ }
2955
+ },
2956
+ {
2957
+ "name": "project_claim_fee",
2958
+ "type": {
2959
+ "option": "u16"
2960
+ }
2961
+ },
2962
+ {
2963
+ "name": "remove_fee",
2964
+ "type": {
2965
+ "option": "u16"
2966
+ }
2967
+ }
2968
+ ]
2969
+ }
2970
+ ],
2971
+ "accounts": [
2972
+ {
2973
+ "name": "CurrencyToken",
2974
+ "discriminator": [
2975
+ 194,
2976
+ 224,
2977
+ 161,
2978
+ 122,
2979
+ 190,
2980
+ 198,
2981
+ 83,
2982
+ 226
2983
+ ]
2984
+ },
2985
+ {
2986
+ "name": "GlobalConfig",
2987
+ "discriminator": [
2988
+ 149,
2989
+ 8,
2990
+ 156,
2991
+ 202,
2992
+ 160,
2993
+ 252,
2994
+ 176,
2995
+ 217
2996
+ ]
2997
+ },
2998
+ {
2999
+ "name": "Project",
3000
+ "discriminator": [
3001
+ 205,
3002
+ 168,
3003
+ 189,
3004
+ 202,
3005
+ 181,
3006
+ 247,
3007
+ 142,
3008
+ 19
3009
+ ]
3010
+ },
3011
+ {
3012
+ "name": "ProjectAttribution",
3013
+ "discriminator": [
3014
+ 28,
3015
+ 61,
3016
+ 129,
3017
+ 71,
3018
+ 75,
3019
+ 153,
3020
+ 174,
3021
+ 55
3022
+ ]
3023
+ },
3024
+ {
3025
+ "name": "ProjectCurrencyBudget",
3026
+ "discriminator": [
3027
+ 12,
3028
+ 51,
3029
+ 66,
3030
+ 70,
3031
+ 121,
3032
+ 81,
3033
+ 118,
3034
+ 186
3035
+ ]
3036
+ },
3037
+ {
3038
+ "name": "ProjectUser",
3039
+ "discriminator": [
3040
+ 227,
3041
+ 22,
3042
+ 255,
3043
+ 18,
3044
+ 216,
3045
+ 26,
3046
+ 126,
3047
+ 136
3048
+ ]
3049
+ }
3050
+ ],
3051
+ "events": [
3052
+ {
3053
+ "name": "LogClaimedFromProjectBudgetEvent",
3054
+ "discriminator": [
3055
+ 231,
3056
+ 175,
3057
+ 26,
3058
+ 204,
3059
+ 81,
3060
+ 200,
3061
+ 86,
3062
+ 128
3063
+ ]
3064
+ },
3065
+ {
3066
+ "name": "LogCurrencyTokenAddedEvent",
3067
+ "discriminator": [
3068
+ 176,
3069
+ 171,
3070
+ 122,
3071
+ 63,
3072
+ 246,
3073
+ 215,
3074
+ 191,
3075
+ 83
3076
+ ]
3077
+ },
3078
+ {
3079
+ "name": "LogCurrencyTokenRemovedEvent",
3080
+ "discriminator": [
3081
+ 145,
3082
+ 126,
3083
+ 168,
3084
+ 174,
3085
+ 147,
3086
+ 43,
3087
+ 172,
3088
+ 202
3089
+ ]
3090
+ },
3091
+ {
3092
+ "name": "LogCurrencyTokenUpdatedEvent",
3093
+ "discriminator": [
3094
+ 238,
3095
+ 151,
3096
+ 206,
3097
+ 63,
3098
+ 5,
3099
+ 74,
3100
+ 179,
3101
+ 250
3102
+ ]
3103
+ },
3104
+ {
3105
+ "name": "LogFungibleTokenDepositedEvent",
3106
+ "discriminator": [
3107
+ 45,
3108
+ 4,
3109
+ 156,
3110
+ 137,
3111
+ 69,
3112
+ 10,
3113
+ 44,
3114
+ 202
3115
+ ]
3116
+ },
3117
+ {
3118
+ "name": "LogFungibleTokenRemovedEvent",
3119
+ "discriminator": [
3120
+ 217,
3121
+ 52,
3122
+ 179,
3123
+ 140,
3124
+ 110,
3125
+ 249,
3126
+ 100,
3127
+ 6
3128
+ ]
3129
+ },
3130
+ {
3131
+ "name": "LogGlobalConfigCreatedEvent",
3132
+ "discriminator": [
3133
+ 102,
3134
+ 200,
3135
+ 38,
3136
+ 66,
3137
+ 103,
3138
+ 139,
3139
+ 204,
3140
+ 214
3141
+ ]
3142
+ },
3143
+ {
3144
+ "name": "LogGlobalConfigFeesUpdatedEvent",
3145
+ "discriminator": [
3146
+ 92,
3147
+ 230,
3148
+ 138,
3149
+ 11,
3150
+ 56,
3151
+ 57,
3152
+ 22,
3153
+ 91
3154
+ ]
3155
+ },
3156
+ {
3157
+ "name": "LogGlobalConfigUpdatedEvent",
3158
+ "discriminator": [
3159
+ 145,
3160
+ 10,
3161
+ 87,
3162
+ 250,
3163
+ 22,
3164
+ 209,
3165
+ 82,
3166
+ 32
3167
+ ]
3168
+ },
3169
+ {
3170
+ "name": "LogGlobalRoleGrantedEvent",
3171
+ "discriminator": [
3172
+ 86,
3173
+ 182,
3174
+ 37,
3175
+ 9,
3176
+ 45,
3177
+ 129,
3178
+ 17,
3179
+ 27
3180
+ ]
3181
+ },
3182
+ {
3183
+ "name": "LogGlobalRoleRenouncedEvent",
3184
+ "discriminator": [
3185
+ 194,
3186
+ 51,
3187
+ 16,
3188
+ 25,
3189
+ 128,
3190
+ 117,
3191
+ 182,
3192
+ 16
3193
+ ]
3194
+ },
3195
+ {
3196
+ "name": "LogGlobalRoleRevokedEvent",
3197
+ "discriminator": [
3198
+ 211,
3199
+ 208,
3200
+ 223,
3201
+ 180,
3202
+ 192,
3203
+ 218,
3204
+ 224,
3205
+ 41
3206
+ ]
3207
+ },
3208
+ {
3209
+ "name": "LogNoClaimFeeWhitelistAddedEvent",
3210
+ "discriminator": [
3211
+ 2,
3212
+ 39,
3213
+ 58,
3214
+ 62,
3215
+ 250,
3216
+ 226,
3217
+ 195,
3218
+ 32
3219
+ ]
3220
+ },
3221
+ {
3222
+ "name": "LogNoClaimFeeWhitelistRemovedEvent",
3223
+ "discriminator": [
3224
+ 55,
3225
+ 108,
3226
+ 36,
3227
+ 151,
3228
+ 192,
3229
+ 236,
3230
+ 142,
3231
+ 47
3232
+ ]
3233
+ },
3234
+ {
3235
+ "name": "LogNonFungibleTokenDepositedEvent",
3236
+ "discriminator": [
3237
+ 163,
3238
+ 97,
3239
+ 157,
3240
+ 80,
3241
+ 91,
3242
+ 178,
3243
+ 127,
3244
+ 255
3245
+ ]
3246
+ },
3247
+ {
3248
+ "name": "LogNonFungibleTokenRemovedEvent",
3249
+ "discriminator": [
3250
+ 246,
3251
+ 114,
3252
+ 12,
3253
+ 253,
3254
+ 252,
3255
+ 43,
3256
+ 72,
3257
+ 166
3258
+ ]
3259
+ },
3260
+ {
3261
+ "name": "LogProgramPausedEvent",
3262
+ "discriminator": [
3263
+ 90,
3264
+ 113,
3265
+ 212,
3266
+ 192,
3267
+ 62,
3268
+ 133,
3269
+ 79,
3270
+ 24
3271
+ ]
3272
+ },
3273
+ {
3274
+ "name": "LogProgramUnpausedEvent",
3275
+ "discriminator": [
3276
+ 46,
3277
+ 215,
3278
+ 190,
3279
+ 137,
3280
+ 155,
3281
+ 130,
3282
+ 102,
3283
+ 233
3284
+ ]
3285
+ },
3286
+ {
3287
+ "name": "LogProjectConfigUpdatedEvent",
3288
+ "discriminator": [
3289
+ 12,
3290
+ 221,
3291
+ 46,
3292
+ 66,
3293
+ 131,
3294
+ 79,
3295
+ 234,
3296
+ 241
3297
+ ]
3298
+ },
3299
+ {
3300
+ "name": "LogProjectCreatedEvent",
3301
+ "discriminator": [
3302
+ 72,
3303
+ 235,
3304
+ 252,
3305
+ 79,
3306
+ 248,
3307
+ 207,
3308
+ 3,
3309
+ 151
3310
+ ]
3311
+ },
3312
+ {
3313
+ "name": "LogProjectFeesUpdatedEvent",
3314
+ "discriminator": [
3315
+ 5,
3316
+ 52,
3317
+ 60,
3318
+ 179,
3319
+ 35,
3320
+ 247,
3321
+ 195,
3322
+ 30
3323
+ ]
3324
+ },
3325
+ {
3326
+ "name": "LogProjectRoleGrantedEvent",
3327
+ "discriminator": [
3328
+ 201,
3329
+ 158,
3330
+ 179,
3331
+ 4,
3332
+ 163,
3333
+ 245,
3334
+ 198,
3335
+ 103
3336
+ ]
3337
+ },
3338
+ {
3339
+ "name": "LogProjectRoleRenouncedEvent",
3340
+ "discriminator": [
3341
+ 49,
3342
+ 247,
3343
+ 72,
3344
+ 132,
3345
+ 193,
3346
+ 197,
3347
+ 69,
3348
+ 121
3349
+ ]
3350
+ },
3351
+ {
3352
+ "name": "LogProjectRoleRevokedEvent",
3353
+ "discriminator": [
3354
+ 92,
3355
+ 221,
3356
+ 97,
3357
+ 255,
3358
+ 210,
3359
+ 94,
3360
+ 10,
3361
+ 105
3362
+ ]
3363
+ }
3364
+ ],
3365
+ "errors": [
3366
+ {
3367
+ "code": 6000,
3368
+ "name": "Unauthorized",
3369
+ "msg": "You are not authorized to perform this action."
3370
+ },
3371
+ {
3372
+ "code": 6001,
3373
+ "name": "InvalidFeeCollector",
3374
+ "msg": "Invalid fee collector."
3375
+ },
3376
+ {
3377
+ "code": 6002,
3378
+ "name": "ZeroValueNotAllowed",
3379
+ "msg": "Zero value not allowed."
3380
+ },
3381
+ {
3382
+ "code": 6003,
3383
+ "name": "ProgramPaused",
3384
+ "msg": "Program is paused."
3385
+ },
3386
+ {
3387
+ "code": 6004,
3388
+ "name": "NoNewChanges",
3389
+ "msg": "No new changes."
3390
+ },
3391
+ {
3392
+ "code": 6005,
3393
+ "name": "CurrencyTokenAlreadyAccepted",
3394
+ "msg": "Currency token already accepted."
3395
+ },
3396
+ {
3397
+ "code": 6006,
3398
+ "name": "CurrencyTokenNotAccepted",
3399
+ "msg": "Currency token not accepted."
3400
+ },
3401
+ {
3402
+ "code": 6007,
3403
+ "name": "InvalidTokenType",
3404
+ "msg": "Invalid token type."
3405
+ },
3406
+ {
3407
+ "code": 6008,
3408
+ "name": "LimitAlreadySet",
3409
+ "msg": "Limit already set."
3410
+ },
3411
+ {
3412
+ "code": 6009,
3413
+ "name": "InvalidTokenMint",
3414
+ "msg": "Invalid token mint."
3415
+ },
3416
+ {
3417
+ "code": 6010,
3418
+ "name": "RoleAlreadyExists",
3419
+ "msg": "Role already exists."
3420
+ },
3421
+ {
3422
+ "code": 6011,
3423
+ "name": "Overflow",
3424
+ "msg": "Overflow."
3425
+ },
3426
+ {
3427
+ "code": 6012,
3428
+ "name": "Underflow",
3429
+ "msg": "Underflow."
3430
+ },
3431
+ {
3432
+ "code": 6013,
3433
+ "name": "AlreadyInitialized",
3434
+ "msg": "Already initialized."
3435
+ },
3436
+ {
3437
+ "code": 6014,
3438
+ "name": "CannotRevokeSelf",
3439
+ "msg": "Cannot revoke self."
3440
+ },
3441
+ {
3442
+ "code": 6015,
3443
+ "name": "CannotRenounceLastAdmin",
3444
+ "msg": "Cannot renounce last admin."
3445
+ },
3446
+ {
3447
+ "code": 6016,
3448
+ "name": "LimitBelowCumulative",
3449
+ "msg": "Limit below cumulative."
3450
+ },
3451
+ {
3452
+ "code": 6017,
3453
+ "name": "NothingToUpdate",
3454
+ "msg": "Nothing to update."
3455
+ },
3456
+ {
3457
+ "code": 6018,
3458
+ "name": "InvalidAccountData",
3459
+ "msg": "Invalid account data."
3460
+ },
3461
+ {
3462
+ "code": 6019,
3463
+ "name": "InsufficientBalance",
3464
+ "msg": "Insufficient balance."
3465
+ },
3466
+ {
3467
+ "code": 6020,
3468
+ "name": "ProgramIdMismatch",
3469
+ "msg": "Program ID mismatch."
3470
+ },
3471
+ {
3472
+ "code": 6021,
3473
+ "name": "VersionMismatch",
3474
+ "msg": "Version mismatch."
3475
+ },
3476
+ {
3477
+ "code": 6022,
3478
+ "name": "DeadlineExpired",
3479
+ "msg": "Deadline expired."
3480
+ },
3481
+ {
3482
+ "code": 6023,
3483
+ "name": "NonceMismatch",
3484
+ "msg": "Nonce mismatch."
3485
+ },
3486
+ {
3487
+ "code": 6024,
3488
+ "name": "InvalidInstructionSysvar",
3489
+ "msg": "Invalid instruction sysvar."
3490
+ },
3491
+ {
3492
+ "code": 6025,
3493
+ "name": "BadEd25519Program",
3494
+ "msg": "Bad Ed25519 program."
3495
+ },
3496
+ {
3497
+ "code": 6026,
3498
+ "name": "BadEd25519Accounts",
3499
+ "msg": "Bad Ed25519 accounts."
3500
+ },
3501
+ {
3502
+ "code": 6027,
3503
+ "name": "InvalidInstructionData",
3504
+ "msg": "Invalid instruction data."
3505
+ },
3506
+ {
3507
+ "code": 6028,
3508
+ "name": "NotEnoughValidSigners",
3509
+ "msg": "Not enough valid signers."
3510
+ },
3511
+ {
3512
+ "code": 6029,
3513
+ "name": "InvalidMessageDate",
3514
+ "msg": "Invalid message date."
3515
+ },
3516
+ {
3517
+ "code": 6030,
3518
+ "name": "SignedMessageMismatch",
3519
+ "msg": "Signed message mismatch."
3520
+ },
3521
+ {
3522
+ "code": 6031,
3523
+ "name": "InvalidClaimAmount",
3524
+ "msg": "Invalid token amount."
3525
+ },
3526
+ {
3527
+ "code": 6032,
3528
+ "name": "ClaimLimitExceeded",
3529
+ "msg": "Claim limit exceeded."
3530
+ },
3531
+ {
3532
+ "code": 6033,
3533
+ "name": "InvalidAtaOwner",
3534
+ "msg": "Invalid ata owner."
3535
+ },
3536
+ {
3537
+ "code": 6034,
3538
+ "name": "MissingAta",
3539
+ "msg": "Missing ata."
3540
+ },
3541
+ {
3542
+ "code": 6035,
3543
+ "name": "InvalidPercentage",
3544
+ "msg": "Invalid percentage."
3545
+ },
3546
+ {
3547
+ "code": 6036,
3548
+ "name": "InvalidProof",
3549
+ "msg": "Invalid proof."
3550
+ },
3551
+ {
3552
+ "code": 6037,
3553
+ "name": "AlreadyInWhitelist",
3554
+ "msg": "Already in whitelist."
3555
+ },
3556
+ {
3557
+ "code": 6038,
3558
+ "name": "NotInWhitelist",
3559
+ "msg": "Not in whitelist."
3560
+ },
3561
+ {
3562
+ "code": 6039,
3563
+ "name": "WhitelistFull",
3564
+ "msg": "Whitelist full."
3565
+ },
3566
+ {
3567
+ "code": 6040,
3568
+ "name": "MaxRolesReached",
3569
+ "msg": "Max roles reached."
3570
+ },
3571
+ {
3572
+ "code": 6041,
3573
+ "name": "InsufficientFunds",
3574
+ "msg": "Insufficient funds."
3575
+ },
3576
+ {
3577
+ "code": 6042,
3578
+ "name": "RoleDoesNotExist",
3579
+ "msg": "Account does not have the specified role."
3580
+ },
3581
+ {
3582
+ "code": 6043,
3583
+ "name": "AmountTooSmall",
3584
+ "msg": "Amount too small to cover minimum fee"
3585
+ }
3586
+ ],
3587
+ "types": [
3588
+ {
3589
+ "name": "CurrencyToken",
3590
+ "type": {
3591
+ "kind": "struct",
3592
+ "fields": [
3593
+ {
3594
+ "name": "is_initialized",
3595
+ "docs": [
3596
+ "is_initialized flag"
3597
+ ],
3598
+ "type": "bool"
3599
+ },
3600
+ {
3601
+ "name": "token_mint",
3602
+ "docs": [
3603
+ "Token mint"
3604
+ ],
3605
+ "type": "pubkey"
3606
+ },
3607
+ {
3608
+ "name": "token_type",
3609
+ "docs": [
3610
+ "Token type"
3611
+ ],
3612
+ "type": {
3613
+ "defined": {
3614
+ "name": "TokenType"
3615
+ }
3616
+ }
3617
+ },
3618
+ {
3619
+ "name": "is_active",
3620
+ "docs": [
3621
+ "Is active"
3622
+ ],
3623
+ "type": "bool"
3624
+ },
3625
+ {
3626
+ "name": "claim_limit_per_cooldown",
3627
+ "docs": [
3628
+ "Claim limit per cooldown"
3629
+ ],
3630
+ "type": "u64"
3631
+ },
3632
+ {
3633
+ "name": "cumulative_claim_per_cooldown",
3634
+ "docs": [
3635
+ "Cumulative claim per cooldown"
3636
+ ],
3637
+ "type": "u64"
3638
+ },
3639
+ {
3640
+ "name": "claim_cooldown_period_started",
3641
+ "docs": [
3642
+ "Claim cooldown period started"
3643
+ ],
3644
+ "type": "i64"
3645
+ }
3646
+ ]
3647
+ }
3648
+ },
3649
+ {
3650
+ "name": "FeeManagement",
3651
+ "docs": [
3652
+ "Holds information about the different fees in the protocol"
3653
+ ],
3654
+ "type": {
3655
+ "kind": "struct",
3656
+ "fields": [
3657
+ {
3658
+ "name": "fee_collector",
3659
+ "docs": [
3660
+ "Address that will collect protocol fees"
3661
+ ],
3662
+ "type": "pubkey"
3663
+ },
3664
+ {
3665
+ "name": "no_claim_fee_whitelist",
3666
+ "docs": [
3667
+ "Array of accounts that are exempt from paying claim fees"
3668
+ ],
3669
+ "type": {
3670
+ "vec": "pubkey"
3671
+ }
3672
+ },
3673
+ {
3674
+ "name": "user_native_claim_fee",
3675
+ "docs": [
3676
+ "Fixed fee in native tokens paid by users per claim"
3677
+ ],
3678
+ "type": "u64"
3679
+ },
3680
+ {
3681
+ "name": "project_claim_fee",
3682
+ "docs": [
3683
+ "Fee paid by the project upon user claim. In basis points."
3684
+ ],
3685
+ "type": "u16"
3686
+ },
3687
+ {
3688
+ "name": "remove_fee",
3689
+ "docs": [
3690
+ "Rescue fee applied when unclaimed funds are rescued by project admin. In basis points."
3691
+ ],
3692
+ "type": "u16"
3693
+ }
3694
+ ]
3695
+ }
3696
+ },
3697
+ {
3698
+ "name": "GlobalConfig",
3699
+ "docs": [
3700
+ "Global config",
3701
+ "This is the first account that is created when the program is initialized.",
3702
+ "It contains the configuration for the protocol."
3703
+ ],
3704
+ "type": {
3705
+ "kind": "struct",
3706
+ "fields": [
3707
+ {
3708
+ "name": "is_initialized",
3709
+ "docs": [
3710
+ "is_initialized flag"
3711
+ ],
3712
+ "type": "bool"
3713
+ },
3714
+ {
3715
+ "name": "paused",
3716
+ "docs": [
3717
+ "Paused state"
3718
+ ],
3719
+ "type": "bool"
3720
+ },
3721
+ {
3722
+ "name": "project_nonce",
3723
+ "docs": [
3724
+ "Nonce for projects"
3725
+ ],
3726
+ "type": "u64"
3727
+ },
3728
+ {
3729
+ "name": "claim_cool_down",
3730
+ "docs": [
3731
+ "Amount of time that must elapse after {claimCooldownPeriodStarted} for the cumulative amount to be restarted"
3732
+ ],
3733
+ "type": "u64"
3734
+ },
3735
+ {
3736
+ "name": "required_signers_for_claim",
3737
+ "docs": [
3738
+ "Number of required signers for a claim"
3739
+ ],
3740
+ "type": "u8"
3741
+ },
3742
+ {
3743
+ "name": "fee_management",
3744
+ "docs": [
3745
+ "Fee management"
3746
+ ],
3747
+ "type": {
3748
+ "defined": {
3749
+ "name": "FeeManagement"
3750
+ }
3751
+ }
3752
+ },
3753
+ {
3754
+ "name": "roles_mapping",
3755
+ "docs": [
3756
+ "Roles mapping"
3757
+ ],
3758
+ "type": {
3759
+ "defined": {
3760
+ "name": "GlobalRolesMapping"
3761
+ }
3762
+ }
3763
+ }
3764
+ ]
3765
+ }
3766
+ },
3767
+ {
3768
+ "name": "GlobalRole",
3769
+ "type": {
3770
+ "kind": "enum",
3771
+ "variants": [
3772
+ {
3773
+ "name": "Admin"
3774
+ },
3775
+ {
3776
+ "name": "Pauser"
3777
+ },
3778
+ {
3779
+ "name": "Unpauser"
3780
+ },
3781
+ {
3782
+ "name": "Signer"
3783
+ }
3784
+ ]
3785
+ }
3786
+ },
3787
+ {
3788
+ "name": "GlobalRoleEntry",
3789
+ "type": {
3790
+ "kind": "struct",
3791
+ "fields": [
3792
+ {
3793
+ "name": "account",
3794
+ "type": "pubkey"
3795
+ },
3796
+ {
3797
+ "name": "role",
3798
+ "type": {
3799
+ "defined": {
3800
+ "name": "GlobalRole"
3801
+ }
3802
+ }
3803
+ }
3804
+ ]
3805
+ }
3806
+ },
3807
+ {
3808
+ "name": "GlobalRolesMapping",
3809
+ "type": {
3810
+ "kind": "struct",
3811
+ "fields": [
3812
+ {
3813
+ "name": "roles",
3814
+ "type": {
3815
+ "vec": {
3816
+ "defined": {
3817
+ "name": "GlobalRoleEntry"
3818
+ }
3819
+ }
3820
+ }
3821
+ }
3822
+ ]
3823
+ }
3824
+ },
3825
+ {
3826
+ "name": "LogClaimedFromProjectBudgetEvent",
3827
+ "docs": [
3828
+ "Log the claim of a currency token from the project budget",
3829
+ "Parameters:",
3830
+ "- `project`: The project that claimed the currency token"
3831
+ ],
3832
+ "type": {
3833
+ "kind": "struct",
3834
+ "fields": [
3835
+ {
3836
+ "name": "project",
3837
+ "type": "pubkey"
3838
+ },
3839
+ {
3840
+ "name": "amount",
3841
+ "type": "u64"
3842
+ }
3843
+ ]
3844
+ }
3845
+ },
3846
+ {
3847
+ "name": "LogCurrencyTokenAddedEvent",
3848
+ "docs": [
3849
+ "Log the addition of a new currency token",
3850
+ "Parameters:",
3851
+ "- token_mint: The mint of the new currency token",
3852
+ "- token_type: The type of the new currency token",
3853
+ "- claim_limit_per_cooldown: The limit of the new currency token"
3854
+ ],
3855
+ "type": {
3856
+ "kind": "struct",
3857
+ "fields": [
3858
+ {
3859
+ "name": "token_mint",
3860
+ "type": "pubkey"
3861
+ },
3862
+ {
3863
+ "name": "token_type",
3864
+ "type": {
3865
+ "defined": {
3866
+ "name": "TokenType"
3867
+ }
3868
+ }
3869
+ },
3870
+ {
3871
+ "name": "claim_limit_per_cooldown",
3872
+ "type": "u64"
3873
+ }
3874
+ ]
3875
+ }
3876
+ },
3877
+ {
3878
+ "name": "LogCurrencyTokenRemovedEvent",
3879
+ "docs": [
3880
+ "Log the removal of a currency token",
3881
+ "Parameters:",
3882
+ "- token_mint: The mint of the currency token"
3883
+ ],
3884
+ "type": {
3885
+ "kind": "struct",
3886
+ "fields": [
3887
+ {
3888
+ "name": "token_mint",
3889
+ "type": "pubkey"
3890
+ }
3891
+ ]
3892
+ }
3893
+ },
3894
+ {
3895
+ "name": "LogCurrencyTokenUpdatedEvent",
3896
+ "docs": [
3897
+ "Log the update of the currency token limit",
3898
+ "Parameters:",
3899
+ "- token_mint: The mint of the currency token",
3900
+ "- claim_limit_per_cooldown: The new limit of the currency token",
3901
+ "- is_active: The new active status of the currency token"
3902
+ ],
3903
+ "type": {
3904
+ "kind": "struct",
3905
+ "fields": [
3906
+ {
3907
+ "name": "token_mint",
3908
+ "type": "pubkey"
3909
+ },
3910
+ {
3911
+ "name": "claim_limit_per_cooldown",
3912
+ "type": {
3913
+ "option": "u64"
3914
+ }
3915
+ },
3916
+ {
3917
+ "name": "is_active",
3918
+ "type": {
3919
+ "option": "bool"
3920
+ }
3921
+ }
3922
+ ]
3923
+ }
3924
+ },
3925
+ {
3926
+ "name": "LogFungibleTokenDepositedEvent",
3927
+ "docs": [
3928
+ "Log the deposit of a fungible token into a project",
3929
+ "Parameters:",
3930
+ "- `project`: The project that deposited the fungible token",
3931
+ "- `currency_token`: The currency token that was deposited",
3932
+ "- `amount`: The amount of the fungible token that was deposited"
3933
+ ],
3934
+ "type": {
3935
+ "kind": "struct",
3936
+ "fields": [
3937
+ {
3938
+ "name": "project",
3939
+ "type": "pubkey"
3940
+ },
3941
+ {
3942
+ "name": "currency_token",
3943
+ "type": "pubkey"
3944
+ },
3945
+ {
3946
+ "name": "amount",
3947
+ "type": "u64"
3948
+ }
3949
+ ]
3950
+ }
3951
+ },
3952
+ {
3953
+ "name": "LogFungibleTokenRemovedEvent",
3954
+ "docs": [
3955
+ "Log the removal of a currency token from the project",
3956
+ "Parameters:",
3957
+ "- project: The project that removed the currency token",
3958
+ "- currency_token: The currency token that was removed",
3959
+ "- amount: The amount of the currency token that was removed",
3960
+ "- fee: The fee that was removed"
3961
+ ],
3962
+ "type": {
3963
+ "kind": "struct",
3964
+ "fields": [
3965
+ {
3966
+ "name": "project",
3967
+ "type": "pubkey"
3968
+ },
3969
+ {
3970
+ "name": "currency_token",
3971
+ "type": "pubkey"
3972
+ },
3973
+ {
3974
+ "name": "amount",
3975
+ "type": "u64"
3976
+ },
3977
+ {
3978
+ "name": "fee",
3979
+ "type": "u64"
3980
+ }
3981
+ ]
3982
+ }
3983
+ },
3984
+ {
3985
+ "name": "LogGlobalConfigCreatedEvent",
3986
+ "docs": [
3987
+ "Log the creation of the global config"
3988
+ ],
3989
+ "type": {
3990
+ "kind": "struct",
3991
+ "fields": []
3992
+ }
3993
+ },
3994
+ {
3995
+ "name": "LogGlobalConfigFeesUpdatedEvent",
3996
+ "docs": [
3997
+ "Log the update of all fees with the new values",
3998
+ "",
3999
+ "Parameters:",
4000
+ "- fee_collector: The new fee collector",
4001
+ "- user_native_claim_fee: The new user native claim fee",
4002
+ "- project_claim_fee: The new project claim fee",
4003
+ "- remove_fee: The new remove fee"
4004
+ ],
4005
+ "type": {
4006
+ "kind": "struct",
4007
+ "fields": [
4008
+ {
4009
+ "name": "fee_collector",
4010
+ "type": {
4011
+ "option": "pubkey"
4012
+ }
4013
+ },
4014
+ {
4015
+ "name": "user_native_claim_fee",
4016
+ "type": {
4017
+ "option": "u64"
4018
+ }
4019
+ },
4020
+ {
4021
+ "name": "project_claim_fee",
4022
+ "type": {
4023
+ "option": "u16"
4024
+ }
4025
+ },
4026
+ {
4027
+ "name": "remove_fee",
4028
+ "type": {
4029
+ "option": "u16"
4030
+ }
4031
+ }
4032
+ ]
4033
+ }
4034
+ },
4035
+ {
4036
+ "name": "LogGlobalConfigUpdatedEvent",
4037
+ "docs": [
4038
+ "Log the update of the global config",
4039
+ "Parameters:",
4040
+ "- claim_cool_down: The new claim cool down",
4041
+ "- required_signers_for_claim: The new required signers for claim"
4042
+ ],
4043
+ "type": {
4044
+ "kind": "struct",
4045
+ "fields": [
4046
+ {
4047
+ "name": "claim_cool_down",
4048
+ "type": "u64"
4049
+ },
4050
+ {
4051
+ "name": "required_signers_for_claim",
4052
+ "type": "u8"
4053
+ }
4054
+ ]
4055
+ }
4056
+ },
4057
+ {
4058
+ "name": "LogGlobalRoleGrantedEvent",
4059
+ "docs": [
4060
+ "Log the grant of a role",
4061
+ "Parameters:",
4062
+ "- account: The account that was granted the role",
4063
+ "- role: The role that was granted"
4064
+ ],
4065
+ "type": {
4066
+ "kind": "struct",
4067
+ "fields": [
4068
+ {
4069
+ "name": "account",
4070
+ "type": "pubkey"
4071
+ },
4072
+ {
4073
+ "name": "role",
4074
+ "type": {
4075
+ "defined": {
4076
+ "name": "GlobalRole"
4077
+ }
4078
+ }
4079
+ }
4080
+ ]
4081
+ }
4082
+ },
4083
+ {
4084
+ "name": "LogGlobalRoleRenouncedEvent",
4085
+ "docs": [
4086
+ "Log the renouncement of a role",
4087
+ "Parameters:",
4088
+ "- account: The account that was renounced the role",
4089
+ "- role: The role that was renounced"
4090
+ ],
4091
+ "type": {
4092
+ "kind": "struct",
4093
+ "fields": [
4094
+ {
4095
+ "name": "account",
4096
+ "type": "pubkey"
4097
+ },
4098
+ {
4099
+ "name": "role",
4100
+ "type": {
4101
+ "defined": {
4102
+ "name": "GlobalRole"
4103
+ }
4104
+ }
4105
+ }
4106
+ ]
4107
+ }
4108
+ },
4109
+ {
4110
+ "name": "LogGlobalRoleRevokedEvent",
4111
+ "docs": [
4112
+ "Log the revocation of a role",
4113
+ "Parameters:",
4114
+ "- account: The account that was revoked the role",
4115
+ "- role: The role that was revoked"
4116
+ ],
4117
+ "type": {
4118
+ "kind": "struct",
4119
+ "fields": [
4120
+ {
4121
+ "name": "account",
4122
+ "type": "pubkey"
4123
+ },
4124
+ {
4125
+ "name": "role",
4126
+ "type": {
4127
+ "defined": {
4128
+ "name": "GlobalRole"
4129
+ }
4130
+ }
4131
+ }
4132
+ ]
4133
+ }
4134
+ },
4135
+ {
4136
+ "name": "LogNoClaimFeeWhitelistAddedEvent",
4137
+ "docs": [
4138
+ "Log the addition of a wallet to the no claim fee whitelist",
4139
+ "Parameters:",
4140
+ "- account: The wallet that was added to the no claim fee whitelist"
4141
+ ],
4142
+ "type": {
4143
+ "kind": "struct",
4144
+ "fields": [
4145
+ {
4146
+ "name": "account",
4147
+ "type": "pubkey"
4148
+ }
4149
+ ]
4150
+ }
4151
+ },
4152
+ {
4153
+ "name": "LogNoClaimFeeWhitelistRemovedEvent",
4154
+ "docs": [
4155
+ "Log the removal of a wallet from the no claim fee whitelist",
4156
+ "Parameters:",
4157
+ "- account: The wallet that was removed from the no claim fee whitelist"
4158
+ ],
4159
+ "type": {
4160
+ "kind": "struct",
4161
+ "fields": [
4162
+ {
4163
+ "name": "account",
4164
+ "type": "pubkey"
4165
+ }
4166
+ ]
4167
+ }
4168
+ },
4169
+ {
4170
+ "name": "LogNonFungibleTokenDepositedEvent",
4171
+ "docs": [
4172
+ "Log the deposit of an NFT into a project",
4173
+ "Parameters:",
4174
+ "- `project`: The project that received the NFT",
4175
+ "- `authority`: The authority that deposited the NFT",
4176
+ "- `nft_mint`: The NFT mint that was deposited"
4177
+ ],
4178
+ "type": {
4179
+ "kind": "struct",
4180
+ "fields": [
4181
+ {
4182
+ "name": "project",
4183
+ "type": "pubkey"
4184
+ },
4185
+ {
4186
+ "name": "authority",
4187
+ "type": "pubkey"
4188
+ },
4189
+ {
4190
+ "name": "non_fungible_token_mint",
4191
+ "type": "pubkey"
4192
+ }
4193
+ ]
4194
+ }
4195
+ },
4196
+ {
4197
+ "name": "LogNonFungibleTokenRemovedEvent",
4198
+ "docs": [
4199
+ "Log the removal of an NFT from a project",
4200
+ "Parameters:",
4201
+ "- `project`: The project that removed the NFT",
4202
+ "- `authority`: The authority that withdrew the NFT",
4203
+ "- `nft_mint`: The NFT mint that was removed"
4204
+ ],
4205
+ "type": {
4206
+ "kind": "struct",
4207
+ "fields": [
4208
+ {
4209
+ "name": "project",
4210
+ "type": "pubkey"
4211
+ },
4212
+ {
4213
+ "name": "authority",
4214
+ "type": "pubkey"
4215
+ },
4216
+ {
4217
+ "name": "non_fungible_token_mint",
4218
+ "type": "pubkey"
4219
+ }
4220
+ ]
4221
+ }
4222
+ },
4223
+ {
4224
+ "name": "LogProgramPausedEvent",
4225
+ "docs": [
4226
+ "Log the update of the paused state",
4227
+ "Parameters:",
4228
+ "- paused_by: The account that paused the program"
4229
+ ],
4230
+ "type": {
4231
+ "kind": "struct",
4232
+ "fields": [
4233
+ {
4234
+ "name": "paused_by",
4235
+ "type": "pubkey"
4236
+ }
4237
+ ]
4238
+ }
4239
+ },
4240
+ {
4241
+ "name": "LogProgramUnpausedEvent",
4242
+ "docs": [
4243
+ "Log the update of the paused state",
4244
+ "Parameters:",
4245
+ "- unpaused_by: The account that unpaused the program"
4246
+ ],
4247
+ "type": {
4248
+ "kind": "struct",
4249
+ "fields": [
4250
+ {
4251
+ "name": "unpaused_by",
4252
+ "type": "pubkey"
4253
+ }
4254
+ ]
4255
+ }
4256
+ },
4257
+ {
4258
+ "name": "LogProjectConfigUpdatedEvent",
4259
+ "docs": [
4260
+ "Log the update of the project config",
4261
+ "Parameters:",
4262
+ "- `project`: The project that was updated",
4263
+ "- `metadata_uri`: The new metadata URI"
4264
+ ],
4265
+ "type": {
4266
+ "kind": "struct",
4267
+ "fields": [
4268
+ {
4269
+ "name": "project",
4270
+ "type": "pubkey"
4271
+ },
4272
+ {
4273
+ "name": "metadata_uri",
4274
+ "type": {
4275
+ "option": "string"
4276
+ }
4277
+ }
4278
+ ]
4279
+ }
4280
+ },
4281
+ {
4282
+ "name": "LogProjectCreatedEvent",
4283
+ "docs": [
4284
+ "Log the creation of the project",
4285
+ "Parameters:",
4286
+ "- `admin`: The admin of the project",
4287
+ "- `project_nonce`: The nonce of the created project"
4288
+ ],
4289
+ "type": {
4290
+ "kind": "struct",
4291
+ "fields": [
4292
+ {
4293
+ "name": "admin",
4294
+ "type": "pubkey"
4295
+ },
4296
+ {
4297
+ "name": "metadata_uri",
4298
+ "type": "string"
4299
+ },
4300
+ {
4301
+ "name": "project_nonce",
4302
+ "type": "u64"
4303
+ }
4304
+ ]
4305
+ }
4306
+ },
4307
+ {
4308
+ "name": "LogProjectFeesUpdatedEvent",
4309
+ "docs": [
4310
+ "Log the update of the project fees",
4311
+ "Parameters:",
4312
+ "- `project`: The project that was updated",
4313
+ "- `user_native_claim_fee`: The new user native claim fee",
4314
+ "- `project_claim_fee`: The new project claim fee",
4315
+ "- `remove_fee`: The new remove fee"
4316
+ ],
4317
+ "type": {
4318
+ "kind": "struct",
4319
+ "fields": [
4320
+ {
4321
+ "name": "project",
4322
+ "type": "pubkey"
4323
+ },
4324
+ {
4325
+ "name": "user_native_claim_fee",
4326
+ "type": {
4327
+ "option": "u64"
4328
+ }
4329
+ },
4330
+ {
4331
+ "name": "project_claim_fee",
4332
+ "type": {
4333
+ "option": "u16"
4334
+ }
4335
+ },
4336
+ {
4337
+ "name": "remove_fee",
4338
+ "type": {
4339
+ "option": "u16"
4340
+ }
4341
+ }
4342
+ ]
4343
+ }
4344
+ },
4345
+ {
4346
+ "name": "LogProjectRoleGrantedEvent",
4347
+ "docs": [
4348
+ "Log the grant of a role",
4349
+ "Parameters:",
4350
+ "- account: The account that was granted the role",
4351
+ "- role: The role that was granted"
4352
+ ],
4353
+ "type": {
4354
+ "kind": "struct",
4355
+ "fields": [
4356
+ {
4357
+ "name": "account",
4358
+ "type": "pubkey"
4359
+ },
4360
+ {
4361
+ "name": "role",
4362
+ "type": {
4363
+ "defined": {
4364
+ "name": "ProjectRole"
4365
+ }
4366
+ }
4367
+ }
4368
+ ]
4369
+ }
4370
+ },
4371
+ {
4372
+ "name": "LogProjectRoleRenouncedEvent",
4373
+ "docs": [
4374
+ "Log the renouncement of a role",
4375
+ "Parameters:",
4376
+ "- account: The account that was renounced the role",
4377
+ "- role: The role that was renounced"
4378
+ ],
4379
+ "type": {
4380
+ "kind": "struct",
4381
+ "fields": [
4382
+ {
4383
+ "name": "account",
4384
+ "type": "pubkey"
4385
+ },
4386
+ {
4387
+ "name": "role",
4388
+ "type": {
4389
+ "defined": {
4390
+ "name": "ProjectRole"
4391
+ }
4392
+ }
4393
+ }
4394
+ ]
4395
+ }
4396
+ },
4397
+ {
4398
+ "name": "LogProjectRoleRevokedEvent",
4399
+ "docs": [
4400
+ "Log the revocation of a role",
4401
+ "Parameters:",
4402
+ "- account: The account that was revoked the role",
4403
+ "- role: The role that was revoked"
4404
+ ],
4405
+ "type": {
4406
+ "kind": "struct",
4407
+ "fields": [
4408
+ {
4409
+ "name": "account",
4410
+ "type": "pubkey"
4411
+ },
4412
+ {
4413
+ "name": "role",
4414
+ "type": {
4415
+ "defined": {
4416
+ "name": "ProjectRole"
4417
+ }
4418
+ }
4419
+ }
4420
+ ]
4421
+ }
4422
+ },
4423
+ {
4424
+ "name": "Project",
4425
+ "type": {
4426
+ "kind": "struct",
4427
+ "fields": [
4428
+ {
4429
+ "name": "is_initialized",
4430
+ "docs": [
4431
+ "initialized flag"
4432
+ ],
4433
+ "type": "bool"
4434
+ },
4435
+ {
4436
+ "name": "nonce",
4437
+ "docs": [
4438
+ "Nonce for the project"
4439
+ ],
4440
+ "type": "u64"
4441
+ },
4442
+ {
4443
+ "name": "attributions_count",
4444
+ "docs": [
4445
+ "Attributions count"
4446
+ ],
4447
+ "type": "u64"
4448
+ },
4449
+ {
4450
+ "name": "metadata_uri",
4451
+ "docs": [
4452
+ "Metadata URI"
4453
+ ],
4454
+ "type": "string"
4455
+ },
4456
+ {
4457
+ "name": "fee_management",
4458
+ "docs": [
4459
+ "Fee management, each project can have overwrites over the global config fees"
4460
+ ],
4461
+ "type": {
4462
+ "defined": {
4463
+ "name": "ProjectFeeManagement"
4464
+ }
4465
+ }
4466
+ },
4467
+ {
4468
+ "name": "roles_mapping",
4469
+ "docs": [
4470
+ "Roles mapping"
4471
+ ],
4472
+ "type": {
4473
+ "defined": {
4474
+ "name": "ProjectRolesMapping"
4475
+ }
4476
+ }
4477
+ }
4478
+ ]
4479
+ }
4480
+ },
4481
+ {
4482
+ "name": "ProjectAttribution",
4483
+ "docs": [
4484
+ "Nullifier account to track used nonces and prevent signature replay attacks"
4485
+ ],
4486
+ "type": {
4487
+ "kind": "struct",
4488
+ "fields": [
4489
+ {
4490
+ "name": "nonce",
4491
+ "docs": [
4492
+ "Nonce of the attribution"
4493
+ ],
4494
+ "type": "u64"
4495
+ },
4496
+ {
4497
+ "name": "token_mint",
4498
+ "docs": [
4499
+ "Token mint of the claim"
4500
+ ],
4501
+ "type": "pubkey"
4502
+ },
4503
+ {
4504
+ "name": "amount",
4505
+ "docs": [
4506
+ "Amount of the claim"
4507
+ ],
4508
+ "type": "u64"
4509
+ },
4510
+ {
4511
+ "name": "recipient",
4512
+ "docs": [
4513
+ "Recipient of the claim"
4514
+ ],
4515
+ "type": "pubkey"
4516
+ },
4517
+ {
4518
+ "name": "proof",
4519
+ "docs": [
4520
+ "Proof of the claim"
4521
+ ],
4522
+ "type": {
4523
+ "array": [
4524
+ "u8",
4525
+ 32
4526
+ ]
4527
+ }
4528
+ },
4529
+ {
4530
+ "name": "timestamp",
4531
+ "docs": [
4532
+ "Timestamp of the claim"
4533
+ ],
4534
+ "type": "i64"
4535
+ }
4536
+ ]
4537
+ }
4538
+ },
4539
+ {
4540
+ "name": "ProjectCurrencyBudget",
4541
+ "type": {
4542
+ "kind": "struct",
4543
+ "fields": [
4544
+ {
4545
+ "name": "budget",
4546
+ "docs": [
4547
+ "Project currency budget"
4548
+ ],
4549
+ "type": "u64"
4550
+ },
4551
+ {
4552
+ "name": "token_mint",
4553
+ "docs": [
4554
+ "Project currency token"
4555
+ ],
4556
+ "type": "pubkey"
4557
+ },
4558
+ {
4559
+ "name": "token_account",
4560
+ "docs": [
4561
+ "Project currency token account"
4562
+ ],
4563
+ "type": {
4564
+ "option": "pubkey"
4565
+ }
4566
+ }
4567
+ ]
4568
+ }
4569
+ },
4570
+ {
4571
+ "name": "ProjectFeeManagement",
4572
+ "docs": [
4573
+ "Holds information about the different fees in the protocol"
4574
+ ],
4575
+ "type": {
4576
+ "kind": "struct",
4577
+ "fields": [
4578
+ {
4579
+ "name": "user_native_claim_fee",
4580
+ "docs": [
4581
+ "Native claim fee in lamports. User should pay for this."
4582
+ ],
4583
+ "type": {
4584
+ "option": "u64"
4585
+ }
4586
+ },
4587
+ {
4588
+ "name": "project_claim_fee",
4589
+ "docs": [
4590
+ "Project claim fee in basis points. Project will pay for this."
4591
+ ],
4592
+ "type": {
4593
+ "option": "u16"
4594
+ }
4595
+ },
4596
+ {
4597
+ "name": "remove_fee",
4598
+ "docs": [
4599
+ "Remove fee in basis points applied when unclaimed funds are removed by project admin."
4600
+ ],
4601
+ "type": {
4602
+ "option": "u16"
4603
+ }
4604
+ }
4605
+ ]
4606
+ }
4607
+ },
4608
+ {
4609
+ "name": "ProjectRole",
4610
+ "type": {
4611
+ "kind": "enum",
4612
+ "variants": [
4613
+ {
4614
+ "name": "Admin"
4615
+ }
4616
+ ]
4617
+ }
4618
+ },
4619
+ {
4620
+ "name": "ProjectRoleEntry",
4621
+ "type": {
4622
+ "kind": "struct",
4623
+ "fields": [
4624
+ {
4625
+ "name": "account",
4626
+ "type": "pubkey"
4627
+ },
4628
+ {
4629
+ "name": "role",
4630
+ "type": {
4631
+ "defined": {
4632
+ "name": "ProjectRole"
4633
+ }
4634
+ }
4635
+ }
4636
+ ]
4637
+ }
4638
+ },
4639
+ {
4640
+ "name": "ProjectRolesMapping",
4641
+ "type": {
4642
+ "kind": "struct",
4643
+ "fields": [
4644
+ {
4645
+ "name": "roles",
4646
+ "type": {
4647
+ "vec": {
4648
+ "defined": {
4649
+ "name": "ProjectRoleEntry"
4650
+ }
4651
+ }
4652
+ }
4653
+ }
4654
+ ]
4655
+ }
4656
+ },
4657
+ {
4658
+ "name": "ProjectUser",
4659
+ "docs": [
4660
+ "Project user account to track user stats"
4661
+ ],
4662
+ "type": {
4663
+ "kind": "struct",
4664
+ "fields": [
4665
+ {
4666
+ "name": "authority",
4667
+ "docs": [
4668
+ "User the user is associated with"
4669
+ ],
4670
+ "type": "pubkey"
4671
+ },
4672
+ {
4673
+ "name": "project",
4674
+ "docs": [
4675
+ "Project the user is associated with"
4676
+ ],
4677
+ "type": "pubkey"
4678
+ },
4679
+ {
4680
+ "name": "total_claims",
4681
+ "docs": [
4682
+ "Total claims made by the user"
4683
+ ],
4684
+ "type": "u64"
4685
+ },
4686
+ {
4687
+ "name": "total_native_claimed",
4688
+ "docs": [
4689
+ "Total native tokens claimed by the user"
4690
+ ],
4691
+ "type": "u64"
4692
+ }
4693
+ ]
4694
+ }
4695
+ },
4696
+ {
4697
+ "name": "TokenType",
4698
+ "type": {
4699
+ "kind": "enum",
4700
+ "variants": [
4701
+ {
4702
+ "name": "Native"
4703
+ },
4704
+ {
4705
+ "name": "FungibleSpl"
4706
+ },
4707
+ {
4708
+ "name": "NonFungibleSpl"
4709
+ }
4710
+ ]
4711
+ }
4712
+ }
4713
+ ]
4714
+ }