@metadaoproject/futarchy 0.6.0-alpha.0 → 0.6.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/v0.3/utils/metadata.js +1 -5
  2. package/dist/v0.3/utils/metadata.js.map +1 -1
  3. package/dist/v0.4/utils/metadata.js +1 -5
  4. package/dist/v0.4/utils/metadata.js.map +1 -1
  5. package/dist/v0.5/LaunchpadClient.js +5 -2
  6. package/dist/v0.5/LaunchpadClient.js.map +1 -1
  7. package/dist/v0.5/constants.d.ts +1 -0
  8. package/dist/v0.5/constants.js +1 -0
  9. package/dist/v0.5/constants.js.map +1 -1
  10. package/dist/v0.5/utils/metadata.js +1 -5
  11. package/dist/v0.5/utils/metadata.js.map +1 -1
  12. package/package.json +25 -5
  13. package/dist/v0.6/ConditionalVaultClient.d.ts +0 -314
  14. package/dist/v0.6/ConditionalVaultClient.js +0 -209
  15. package/dist/v0.6/ConditionalVaultClient.js.map +0 -1
  16. package/dist/v0.6/FutarchyClient.d.ts +0 -749
  17. package/dist/v0.6/FutarchyClient.js +0 -392
  18. package/dist/v0.6/FutarchyClient.js.map +0 -1
  19. package/dist/v0.6/LaunchpadClient.d.ts +0 -404
  20. package/dist/v0.6/LaunchpadClient.js +0 -210
  21. package/dist/v0.6/LaunchpadClient.js.map +0 -1
  22. package/dist/v0.6/constants.d.ts +0 -25
  23. package/dist/v0.6/constants.js +0 -36
  24. package/dist/v0.6/constants.js.map +0 -1
  25. package/dist/v0.6/index.d.ts +0 -6
  26. package/dist/v0.6/index.js +0 -7
  27. package/dist/v0.6/index.js.map +0 -1
  28. package/dist/v0.6/types/amm.d.ts +0 -832
  29. package/dist/v0.6/types/amm.js +0 -832
  30. package/dist/v0.6/types/amm.js.map +0 -1
  31. package/dist/v0.6/types/conditional_vault.d.ts +0 -925
  32. package/dist/v0.6/types/conditional_vault.js +0 -925
  33. package/dist/v0.6/types/conditional_vault.js.map +0 -1
  34. package/dist/v0.6/types/futarchy.d.ts +0 -2249
  35. package/dist/v0.6/types/futarchy.js +0 -2249
  36. package/dist/v0.6/types/futarchy.js.map +0 -1
  37. package/dist/v0.6/types/index.d.ts +0 -47
  38. package/dist/v0.6/types/index.js +0 -9
  39. package/dist/v0.6/types/index.js.map +0 -1
  40. package/dist/v0.6/types/launchpad.d.ts +0 -1018
  41. package/dist/v0.6/types/launchpad.js +0 -1018
  42. package/dist/v0.6/types/launchpad.js.map +0 -1
  43. package/dist/v0.6/types/shared_liquidity_manager.d.ts +0 -89
  44. package/dist/v0.6/types/shared_liquidity_manager.js +0 -89
  45. package/dist/v0.6/types/shared_liquidity_manager.js.map +0 -1
  46. package/dist/v0.6/types/utils.d.ts +0 -3
  47. package/dist/v0.6/types/utils.js +0 -2
  48. package/dist/v0.6/types/utils.js.map +0 -1
  49. package/dist/v0.6/utils/cu.d.ts +0 -10
  50. package/dist/v0.6/utils/cu.js +0 -11
  51. package/dist/v0.6/utils/cu.js.map +0 -1
  52. package/dist/v0.6/utils/filters.d.ts +0 -3
  53. package/dist/v0.6/utils/filters.js +0 -14
  54. package/dist/v0.6/utils/filters.js.map +0 -1
  55. package/dist/v0.6/utils/index.d.ts +0 -16
  56. package/dist/v0.6/utils/index.js +0 -30
  57. package/dist/v0.6/utils/index.js.map +0 -1
  58. package/dist/v0.6/utils/instruction.d.ts +0 -4
  59. package/dist/v0.6/utils/instruction.js +0 -10
  60. package/dist/v0.6/utils/instruction.js.map +0 -1
  61. package/dist/v0.6/utils/metadata.d.ts +0 -4
  62. package/dist/v0.6/utils/metadata.js +0 -26
  63. package/dist/v0.6/utils/metadata.js.map +0 -1
  64. package/dist/v0.6/utils/pda.d.ts +0 -25
  65. package/dist/v0.6/utils/pda.js +0 -75
  66. package/dist/v0.6/utils/pda.js.map +0 -1
  67. package/dist/v0.6/utils/priceMath.d.ts +0 -39
  68. package/dist/v0.6/utils/priceMath.js +0 -48
  69. package/dist/v0.6/utils/priceMath.js.map +0 -1
@@ -1,2249 +0,0 @@
1
- export type Futarchy = {
2
- version: "0.6.0";
3
- name: "futarchy";
4
- instructions: [
5
- {
6
- name: "initializeDao";
7
- accounts: [
8
- {
9
- name: "dao";
10
- isMut: true;
11
- isSigner: false;
12
- },
13
- {
14
- name: "daoCreator";
15
- isMut: false;
16
- isSigner: true;
17
- },
18
- {
19
- name: "payer";
20
- isMut: true;
21
- isSigner: true;
22
- },
23
- {
24
- name: "systemProgram";
25
- isMut: false;
26
- isSigner: false;
27
- },
28
- {
29
- name: "baseMint";
30
- isMut: false;
31
- isSigner: false;
32
- },
33
- {
34
- name: "quoteMint";
35
- isMut: false;
36
- isSigner: false;
37
- },
38
- {
39
- name: "squadsMultisig";
40
- isMut: true;
41
- isSigner: false;
42
- },
43
- {
44
- name: "squadsMultisigVault";
45
- isMut: false;
46
- isSigner: false;
47
- },
48
- {
49
- name: "squadsProgram";
50
- isMut: false;
51
- isSigner: false;
52
- },
53
- {
54
- name: "squadsProgramConfig";
55
- isMut: false;
56
- isSigner: false;
57
- },
58
- {
59
- name: "squadsProgramConfigTreasury";
60
- isMut: true;
61
- isSigner: false;
62
- },
63
- {
64
- name: "spendingLimit";
65
- isMut: true;
66
- isSigner: false;
67
- },
68
- {
69
- name: "futarchyAmmBaseVault";
70
- isMut: true;
71
- isSigner: false;
72
- },
73
- {
74
- name: "futarchyAmmQuoteVault";
75
- isMut: true;
76
- isSigner: false;
77
- },
78
- {
79
- name: "tokenProgram";
80
- isMut: false;
81
- isSigner: false;
82
- },
83
- {
84
- name: "associatedTokenProgram";
85
- isMut: false;
86
- isSigner: false;
87
- },
88
- {
89
- name: "eventAuthority";
90
- isMut: false;
91
- isSigner: false;
92
- },
93
- {
94
- name: "program";
95
- isMut: false;
96
- isSigner: false;
97
- }
98
- ];
99
- args: [
100
- {
101
- name: "params";
102
- type: {
103
- defined: "InitializeDaoParams";
104
- };
105
- }
106
- ];
107
- },
108
- {
109
- name: "initializeProposal";
110
- accounts: [
111
- {
112
- name: "proposal";
113
- isMut: true;
114
- isSigner: false;
115
- },
116
- {
117
- name: "squadsProposal";
118
- isMut: false;
119
- isSigner: false;
120
- },
121
- {
122
- name: "dao";
123
- isMut: true;
124
- isSigner: false;
125
- },
126
- {
127
- name: "question";
128
- isMut: false;
129
- isSigner: false;
130
- },
131
- {
132
- name: "quoteVault";
133
- isMut: false;
134
- isSigner: false;
135
- },
136
- {
137
- name: "baseVault";
138
- isMut: false;
139
- isSigner: false;
140
- },
141
- {
142
- name: "proposer";
143
- isMut: false;
144
- isSigner: true;
145
- },
146
- {
147
- name: "payer";
148
- isMut: true;
149
- isSigner: true;
150
- },
151
- {
152
- name: "systemProgram";
153
- isMut: false;
154
- isSigner: false;
155
- },
156
- {
157
- name: "eventAuthority";
158
- isMut: false;
159
- isSigner: false;
160
- },
161
- {
162
- name: "program";
163
- isMut: false;
164
- isSigner: false;
165
- }
166
- ];
167
- args: [
168
- {
169
- name: "params";
170
- type: {
171
- defined: "InitializeProposalParams";
172
- };
173
- }
174
- ];
175
- },
176
- {
177
- name: "stakeToProposal";
178
- accounts: [
179
- {
180
- name: "proposal";
181
- isMut: true;
182
- isSigner: false;
183
- },
184
- {
185
- name: "dao";
186
- isMut: true;
187
- isSigner: false;
188
- },
189
- {
190
- name: "stakerBaseAccount";
191
- isMut: true;
192
- isSigner: false;
193
- },
194
- {
195
- name: "proposalBaseAccount";
196
- isMut: true;
197
- isSigner: false;
198
- },
199
- {
200
- name: "stakeAccount";
201
- isMut: true;
202
- isSigner: false;
203
- },
204
- {
205
- name: "staker";
206
- isMut: false;
207
- isSigner: true;
208
- },
209
- {
210
- name: "payer";
211
- isMut: true;
212
- isSigner: true;
213
- },
214
- {
215
- name: "tokenProgram";
216
- isMut: false;
217
- isSigner: false;
218
- },
219
- {
220
- name: "associatedTokenProgram";
221
- isMut: false;
222
- isSigner: false;
223
- },
224
- {
225
- name: "systemProgram";
226
- isMut: false;
227
- isSigner: false;
228
- },
229
- {
230
- name: "eventAuthority";
231
- isMut: false;
232
- isSigner: false;
233
- },
234
- {
235
- name: "program";
236
- isMut: false;
237
- isSigner: false;
238
- }
239
- ];
240
- args: [
241
- {
242
- name: "params";
243
- type: {
244
- defined: "StakeToProposalParams";
245
- };
246
- }
247
- ];
248
- },
249
- {
250
- name: "unstakeFromProposal";
251
- accounts: [
252
- {
253
- name: "proposal";
254
- isMut: true;
255
- isSigner: false;
256
- },
257
- {
258
- name: "dao";
259
- isMut: true;
260
- isSigner: false;
261
- },
262
- {
263
- name: "stakerBaseAccount";
264
- isMut: true;
265
- isSigner: false;
266
- },
267
- {
268
- name: "proposalBaseAccount";
269
- isMut: true;
270
- isSigner: false;
271
- },
272
- {
273
- name: "stakeAccount";
274
- isMut: true;
275
- isSigner: false;
276
- },
277
- {
278
- name: "staker";
279
- isMut: false;
280
- isSigner: true;
281
- },
282
- {
283
- name: "tokenProgram";
284
- isMut: false;
285
- isSigner: false;
286
- },
287
- {
288
- name: "associatedTokenProgram";
289
- isMut: false;
290
- isSigner: false;
291
- },
292
- {
293
- name: "eventAuthority";
294
- isMut: false;
295
- isSigner: false;
296
- },
297
- {
298
- name: "program";
299
- isMut: false;
300
- isSigner: false;
301
- }
302
- ];
303
- args: [
304
- {
305
- name: "params";
306
- type: {
307
- defined: "UnstakeFromProposalParams";
308
- };
309
- }
310
- ];
311
- },
312
- {
313
- name: "launchProposal";
314
- accounts: [
315
- {
316
- name: "proposal";
317
- isMut: true;
318
- isSigner: false;
319
- },
320
- {
321
- name: "baseVault";
322
- isMut: false;
323
- isSigner: false;
324
- },
325
- {
326
- name: "quoteVault";
327
- isMut: false;
328
- isSigner: false;
329
- },
330
- {
331
- name: "passBaseMint";
332
- isMut: false;
333
- isSigner: false;
334
- },
335
- {
336
- name: "passQuoteMint";
337
- isMut: false;
338
- isSigner: false;
339
- },
340
- {
341
- name: "failBaseMint";
342
- isMut: false;
343
- isSigner: false;
344
- },
345
- {
346
- name: "failQuoteMint";
347
- isMut: false;
348
- isSigner: false;
349
- },
350
- {
351
- name: "dao";
352
- isMut: true;
353
- isSigner: false;
354
- },
355
- {
356
- name: "payer";
357
- isMut: true;
358
- isSigner: true;
359
- },
360
- {
361
- name: "ammPassBaseVault";
362
- isMut: true;
363
- isSigner: false;
364
- },
365
- {
366
- name: "ammPassQuoteVault";
367
- isMut: true;
368
- isSigner: false;
369
- },
370
- {
371
- name: "ammFailBaseVault";
372
- isMut: true;
373
- isSigner: false;
374
- },
375
- {
376
- name: "ammFailQuoteVault";
377
- isMut: true;
378
- isSigner: false;
379
- },
380
- {
381
- name: "systemProgram";
382
- isMut: false;
383
- isSigner: false;
384
- },
385
- {
386
- name: "tokenProgram";
387
- isMut: false;
388
- isSigner: false;
389
- },
390
- {
391
- name: "associatedTokenProgram";
392
- isMut: false;
393
- isSigner: false;
394
- },
395
- {
396
- name: "eventAuthority";
397
- isMut: false;
398
- isSigner: false;
399
- },
400
- {
401
- name: "program";
402
- isMut: false;
403
- isSigner: false;
404
- }
405
- ];
406
- args: [];
407
- },
408
- {
409
- name: "finalizeProposal";
410
- accounts: [
411
- {
412
- name: "proposal";
413
- isMut: true;
414
- isSigner: false;
415
- },
416
- {
417
- name: "dao";
418
- isMut: true;
419
- isSigner: false;
420
- },
421
- {
422
- name: "question";
423
- isMut: true;
424
- isSigner: false;
425
- },
426
- {
427
- name: "squadsProposal";
428
- isMut: true;
429
- isSigner: false;
430
- },
431
- {
432
- name: "squadsMultisig";
433
- isMut: false;
434
- isSigner: false;
435
- },
436
- {
437
- name: "squadsMultisigProgram";
438
- isMut: false;
439
- isSigner: false;
440
- },
441
- {
442
- name: "ammPassBaseVault";
443
- isMut: true;
444
- isSigner: false;
445
- },
446
- {
447
- name: "ammPassQuoteVault";
448
- isMut: true;
449
- isSigner: false;
450
- },
451
- {
452
- name: "ammFailBaseVault";
453
- isMut: true;
454
- isSigner: false;
455
- },
456
- {
457
- name: "ammFailQuoteVault";
458
- isMut: true;
459
- isSigner: false;
460
- },
461
- {
462
- name: "ammBaseVault";
463
- isMut: true;
464
- isSigner: false;
465
- },
466
- {
467
- name: "ammQuoteVault";
468
- isMut: true;
469
- isSigner: false;
470
- },
471
- {
472
- name: "vaultProgram";
473
- isMut: false;
474
- isSigner: false;
475
- },
476
- {
477
- name: "vaultEventAuthority";
478
- isMut: false;
479
- isSigner: false;
480
- },
481
- {
482
- name: "tokenProgram";
483
- isMut: false;
484
- isSigner: false;
485
- },
486
- {
487
- name: "quoteVault";
488
- isMut: true;
489
- isSigner: false;
490
- },
491
- {
492
- name: "quoteVaultUnderlyingTokenAccount";
493
- isMut: true;
494
- isSigner: false;
495
- },
496
- {
497
- name: "passQuoteMint";
498
- isMut: true;
499
- isSigner: false;
500
- },
501
- {
502
- name: "failQuoteMint";
503
- isMut: true;
504
- isSigner: false;
505
- },
506
- {
507
- name: "passBaseMint";
508
- isMut: true;
509
- isSigner: false;
510
- },
511
- {
512
- name: "failBaseMint";
513
- isMut: true;
514
- isSigner: false;
515
- },
516
- {
517
- name: "baseVault";
518
- isMut: true;
519
- isSigner: false;
520
- },
521
- {
522
- name: "baseVaultUnderlyingTokenAccount";
523
- isMut: true;
524
- isSigner: false;
525
- },
526
- {
527
- name: "eventAuthority";
528
- isMut: false;
529
- isSigner: false;
530
- },
531
- {
532
- name: "program";
533
- isMut: false;
534
- isSigner: false;
535
- }
536
- ];
537
- args: [];
538
- },
539
- {
540
- name: "updateDao";
541
- accounts: [
542
- {
543
- name: "dao";
544
- isMut: true;
545
- isSigner: false;
546
- },
547
- {
548
- name: "squadsMultisigVault";
549
- isMut: false;
550
- isSigner: true;
551
- },
552
- {
553
- name: "eventAuthority";
554
- isMut: false;
555
- isSigner: false;
556
- },
557
- {
558
- name: "program";
559
- isMut: false;
560
- isSigner: false;
561
- }
562
- ];
563
- args: [
564
- {
565
- name: "daoParams";
566
- type: {
567
- defined: "UpdateDaoParams";
568
- };
569
- }
570
- ];
571
- },
572
- {
573
- name: "spotSwap";
574
- accounts: [
575
- {
576
- name: "dao";
577
- isMut: true;
578
- isSigner: false;
579
- },
580
- {
581
- name: "userBaseAccount";
582
- isMut: true;
583
- isSigner: false;
584
- },
585
- {
586
- name: "userQuoteAccount";
587
- isMut: true;
588
- isSigner: false;
589
- },
590
- {
591
- name: "ammBaseVault";
592
- isMut: true;
593
- isSigner: false;
594
- },
595
- {
596
- name: "ammQuoteVault";
597
- isMut: true;
598
- isSigner: false;
599
- },
600
- {
601
- name: "user";
602
- isMut: false;
603
- isSigner: true;
604
- },
605
- {
606
- name: "tokenProgram";
607
- isMut: false;
608
- isSigner: false;
609
- },
610
- {
611
- name: "eventAuthority";
612
- isMut: false;
613
- isSigner: false;
614
- },
615
- {
616
- name: "program";
617
- isMut: false;
618
- isSigner: false;
619
- }
620
- ];
621
- args: [
622
- {
623
- name: "params";
624
- type: {
625
- defined: "SpotSwapParams";
626
- };
627
- }
628
- ];
629
- },
630
- {
631
- name: "conditionalSwap";
632
- accounts: [
633
- {
634
- name: "dao";
635
- isMut: true;
636
- isSigner: false;
637
- },
638
- {
639
- name: "ammBaseVault";
640
- isMut: true;
641
- isSigner: false;
642
- },
643
- {
644
- name: "ammQuoteVault";
645
- isMut: true;
646
- isSigner: false;
647
- },
648
- {
649
- name: "proposal";
650
- isMut: false;
651
- isSigner: false;
652
- },
653
- {
654
- name: "ammPassBaseVault";
655
- isMut: true;
656
- isSigner: false;
657
- },
658
- {
659
- name: "ammPassQuoteVault";
660
- isMut: true;
661
- isSigner: false;
662
- },
663
- {
664
- name: "ammFailBaseVault";
665
- isMut: true;
666
- isSigner: false;
667
- },
668
- {
669
- name: "ammFailQuoteVault";
670
- isMut: true;
671
- isSigner: false;
672
- },
673
- {
674
- name: "trader";
675
- isMut: false;
676
- isSigner: true;
677
- },
678
- {
679
- name: "userInputAccount";
680
- isMut: true;
681
- isSigner: false;
682
- },
683
- {
684
- name: "userOutputAccount";
685
- isMut: true;
686
- isSigner: false;
687
- },
688
- {
689
- name: "baseVault";
690
- isMut: true;
691
- isSigner: false;
692
- },
693
- {
694
- name: "baseVaultUnderlyingTokenAccount";
695
- isMut: true;
696
- isSigner: false;
697
- },
698
- {
699
- name: "quoteVault";
700
- isMut: true;
701
- isSigner: false;
702
- },
703
- {
704
- name: "quoteVaultUnderlyingTokenAccount";
705
- isMut: true;
706
- isSigner: false;
707
- },
708
- {
709
- name: "passBaseMint";
710
- isMut: true;
711
- isSigner: false;
712
- },
713
- {
714
- name: "failBaseMint";
715
- isMut: true;
716
- isSigner: false;
717
- },
718
- {
719
- name: "passQuoteMint";
720
- isMut: true;
721
- isSigner: false;
722
- },
723
- {
724
- name: "failQuoteMint";
725
- isMut: true;
726
- isSigner: false;
727
- },
728
- {
729
- name: "conditionalVaultProgram";
730
- isMut: false;
731
- isSigner: false;
732
- },
733
- {
734
- name: "vaultEventAuthority";
735
- isMut: false;
736
- isSigner: false;
737
- },
738
- {
739
- name: "question";
740
- isMut: false;
741
- isSigner: false;
742
- },
743
- {
744
- name: "tokenProgram";
745
- isMut: false;
746
- isSigner: false;
747
- }
748
- ];
749
- args: [
750
- {
751
- name: "params";
752
- type: {
753
- defined: "ConditionalSwapParams";
754
- };
755
- }
756
- ];
757
- },
758
- {
759
- name: "provideLiquidity";
760
- accounts: [
761
- {
762
- name: "dao";
763
- isMut: true;
764
- isSigner: false;
765
- },
766
- {
767
- name: "liquidityProvider";
768
- isMut: false;
769
- isSigner: true;
770
- },
771
- {
772
- name: "liquidityProviderBaseAccount";
773
- isMut: true;
774
- isSigner: false;
775
- },
776
- {
777
- name: "liquidityProviderQuoteAccount";
778
- isMut: true;
779
- isSigner: false;
780
- },
781
- {
782
- name: "payer";
783
- isMut: true;
784
- isSigner: true;
785
- },
786
- {
787
- name: "systemProgram";
788
- isMut: false;
789
- isSigner: false;
790
- },
791
- {
792
- name: "ammBaseVault";
793
- isMut: true;
794
- isSigner: false;
795
- },
796
- {
797
- name: "ammQuoteVault";
798
- isMut: true;
799
- isSigner: false;
800
- },
801
- {
802
- name: "ammPosition";
803
- isMut: true;
804
- isSigner: false;
805
- },
806
- {
807
- name: "tokenProgram";
808
- isMut: false;
809
- isSigner: false;
810
- }
811
- ];
812
- args: [
813
- {
814
- name: "params";
815
- type: {
816
- defined: "ProvideLiquidityParams";
817
- };
818
- }
819
- ];
820
- },
821
- {
822
- name: "withdrawLiquidity";
823
- accounts: [
824
- {
825
- name: "dao";
826
- isMut: true;
827
- isSigner: false;
828
- },
829
- {
830
- name: "positionAuthority";
831
- isMut: false;
832
- isSigner: true;
833
- },
834
- {
835
- name: "liquidityProviderBaseAccount";
836
- isMut: true;
837
- isSigner: false;
838
- },
839
- {
840
- name: "liquidityProviderQuoteAccount";
841
- isMut: true;
842
- isSigner: false;
843
- },
844
- {
845
- name: "ammBaseVault";
846
- isMut: true;
847
- isSigner: false;
848
- },
849
- {
850
- name: "ammQuoteVault";
851
- isMut: true;
852
- isSigner: false;
853
- },
854
- {
855
- name: "ammPosition";
856
- isMut: true;
857
- isSigner: false;
858
- },
859
- {
860
- name: "tokenProgram";
861
- isMut: false;
862
- isSigner: false;
863
- }
864
- ];
865
- args: [
866
- {
867
- name: "params";
868
- type: {
869
- defined: "WithdrawLiquidityParams";
870
- };
871
- }
872
- ];
873
- },
874
- {
875
- name: "collectFees";
876
- accounts: [
877
- {
878
- name: "dao";
879
- isMut: true;
880
- isSigner: false;
881
- },
882
- {
883
- name: "admin";
884
- isMut: false;
885
- isSigner: true;
886
- },
887
- {
888
- name: "baseTokenAccount";
889
- isMut: true;
890
- isSigner: false;
891
- },
892
- {
893
- name: "quoteTokenAccount";
894
- isMut: true;
895
- isSigner: false;
896
- },
897
- {
898
- name: "ammBaseVault";
899
- isMut: true;
900
- isSigner: false;
901
- },
902
- {
903
- name: "ammQuoteVault";
904
- isMut: true;
905
- isSigner: false;
906
- },
907
- {
908
- name: "tokenProgram";
909
- isMut: false;
910
- isSigner: false;
911
- }
912
- ];
913
- args: [];
914
- }
915
- ];
916
- accounts: [
917
- {
918
- name: "ammPosition";
919
- type: {
920
- kind: "struct";
921
- fields: [
922
- {
923
- name: "dao";
924
- type: "publicKey";
925
- },
926
- {
927
- name: "positionAuthority";
928
- type: "publicKey";
929
- },
930
- {
931
- name: "liquidity";
932
- type: "u128";
933
- }
934
- ];
935
- };
936
- },
937
- {
938
- name: "dao";
939
- type: {
940
- kind: "struct";
941
- fields: [
942
- {
943
- name: "nonce";
944
- docs: ["`nonce` + `dao_creator` are PDA seeds"];
945
- type: "u64";
946
- },
947
- {
948
- name: "daoCreator";
949
- type: "publicKey";
950
- },
951
- {
952
- name: "pdaBump";
953
- type: "u8";
954
- },
955
- {
956
- name: "squadsMultisig";
957
- type: "publicKey";
958
- },
959
- {
960
- name: "squadsMultisigVault";
961
- type: "publicKey";
962
- },
963
- {
964
- name: "baseMint";
965
- type: "publicKey";
966
- },
967
- {
968
- name: "quoteMint";
969
- type: "publicKey";
970
- },
971
- {
972
- name: "proposalCount";
973
- type: "u32";
974
- },
975
- {
976
- name: "passThresholdBps";
977
- type: "u16";
978
- },
979
- {
980
- name: "slotsPerProposal";
981
- type: "u64";
982
- },
983
- {
984
- name: "twapInitialObservation";
985
- docs: [
986
- "For manipulation-resistance the TWAP is a time-weighted average observation,",
987
- "where observation tries to approximate price but can only move by",
988
- "`twap_max_observation_change_per_update` per update. Because it can only move",
989
- "a little bit per update, you need to check that it has a good initial observation.",
990
- "Otherwise, an attacker could create a very high initial observation in the pass",
991
- "market and a very low one in the fail market to force the proposal to pass.",
992
- "",
993
- "We recommend setting an initial observation around the spot price of the token,",
994
- "and max observation change per update around 2% the spot price of the token.",
995
- "For example, if the spot price of META is $400, we'd recommend setting an initial",
996
- "observation of 400 (converted into the AMM prices) and a max observation change per",
997
- "update of 8 (also converted into the AMM prices). Observations can be updated once",
998
- "a minute, so 2% allows the proposal market to reach double the spot price or 0",
999
- "in 50 minutes."
1000
- ];
1001
- type: "u128";
1002
- },
1003
- {
1004
- name: "twapMaxObservationChangePerUpdate";
1005
- type: "u128";
1006
- },
1007
- {
1008
- name: "twapStartDelaySlots";
1009
- docs: [
1010
- "Forces TWAP calculation to start after amm.created_at_slot + twap_start_delay_slots"
1011
- ];
1012
- type: "u64";
1013
- },
1014
- {
1015
- name: "minQuoteFutarchicLiquidity";
1016
- docs: [
1017
- "As an anti-spam measure and to help liquidity, you need to lock up some liquidity",
1018
- "in both futarchic markets in order to create a proposal.",
1019
- "",
1020
- "For example, for META, we can use a `min_quote_futarchic_liquidity` of",
1021
- "5000 * 1_000_000 (5000 USDC) and a `min_base_futarchic_liquidity` of",
1022
- "10 * 1_000_000_000 (10 META)."
1023
- ];
1024
- type: "u64";
1025
- },
1026
- {
1027
- name: "minBaseFutarchicLiquidity";
1028
- type: "u64";
1029
- },
1030
- {
1031
- name: "baseToStake";
1032
- docs: [
1033
- "Minimum amount of base tokens that must be staked to launch a proposal"
1034
- ];
1035
- type: "u64";
1036
- },
1037
- {
1038
- name: "seqNum";
1039
- type: "u64";
1040
- },
1041
- {
1042
- name: "initialSpendingLimit";
1043
- type: {
1044
- option: {
1045
- defined: "InitialSpendingLimit";
1046
- };
1047
- };
1048
- },
1049
- {
1050
- name: "amm";
1051
- docs: ["Embedded FutarchyAmm - 1:1 relationship"];
1052
- type: {
1053
- defined: "FutarchyAmm";
1054
- };
1055
- }
1056
- ];
1057
- };
1058
- },
1059
- {
1060
- name: "proposal";
1061
- type: {
1062
- kind: "struct";
1063
- fields: [
1064
- {
1065
- name: "number";
1066
- type: "u32";
1067
- },
1068
- {
1069
- name: "proposer";
1070
- type: "publicKey";
1071
- },
1072
- {
1073
- name: "descriptionUrl";
1074
- type: "string";
1075
- },
1076
- {
1077
- name: "slotEnqueued";
1078
- type: "u64";
1079
- },
1080
- {
1081
- name: "state";
1082
- type: {
1083
- defined: "ProposalState";
1084
- };
1085
- },
1086
- {
1087
- name: "baseVault";
1088
- type: "publicKey";
1089
- },
1090
- {
1091
- name: "quoteVault";
1092
- type: "publicKey";
1093
- },
1094
- {
1095
- name: "dao";
1096
- type: "publicKey";
1097
- },
1098
- {
1099
- name: "pdaBump";
1100
- type: "u8";
1101
- },
1102
- {
1103
- name: "question";
1104
- type: "publicKey";
1105
- },
1106
- {
1107
- name: "durationInSlots";
1108
- type: "u64";
1109
- },
1110
- {
1111
- name: "squadsProposal";
1112
- type: "publicKey";
1113
- },
1114
- {
1115
- name: "passBaseMint";
1116
- type: "publicKey";
1117
- },
1118
- {
1119
- name: "passQuoteMint";
1120
- type: "publicKey";
1121
- },
1122
- {
1123
- name: "failBaseMint";
1124
- type: "publicKey";
1125
- },
1126
- {
1127
- name: "failQuoteMint";
1128
- type: "publicKey";
1129
- }
1130
- ];
1131
- };
1132
- },
1133
- {
1134
- name: "stakeAccount";
1135
- type: {
1136
- kind: "struct";
1137
- fields: [
1138
- {
1139
- name: "proposal";
1140
- type: "publicKey";
1141
- },
1142
- {
1143
- name: "staker";
1144
- type: "publicKey";
1145
- },
1146
- {
1147
- name: "amount";
1148
- type: "u64";
1149
- },
1150
- {
1151
- name: "bump";
1152
- type: "u8";
1153
- }
1154
- ];
1155
- };
1156
- }
1157
- ];
1158
- types: [
1159
- {
1160
- name: "CommonFields";
1161
- type: {
1162
- kind: "struct";
1163
- fields: [
1164
- {
1165
- name: "slot";
1166
- type: "u64";
1167
- },
1168
- {
1169
- name: "unixTimestamp";
1170
- type: "i64";
1171
- }
1172
- ];
1173
- };
1174
- },
1175
- {
1176
- name: "ConditionalSwapParams";
1177
- type: {
1178
- kind: "struct";
1179
- fields: [
1180
- {
1181
- name: "market";
1182
- type: {
1183
- defined: "Market";
1184
- };
1185
- },
1186
- {
1187
- name: "swapType";
1188
- type: {
1189
- defined: "SwapType";
1190
- };
1191
- },
1192
- {
1193
- name: "inputAmount";
1194
- type: "u64";
1195
- },
1196
- {
1197
- name: "minOutputAmount";
1198
- type: "u64";
1199
- }
1200
- ];
1201
- };
1202
- },
1203
- {
1204
- name: "InitializeDaoParams";
1205
- type: {
1206
- kind: "struct";
1207
- fields: [
1208
- {
1209
- name: "twapInitialObservation";
1210
- type: "u128";
1211
- },
1212
- {
1213
- name: "twapMaxObservationChangePerUpdate";
1214
- type: "u128";
1215
- },
1216
- {
1217
- name: "twapStartDelaySlots";
1218
- type: "u64";
1219
- },
1220
- {
1221
- name: "minQuoteFutarchicLiquidity";
1222
- type: "u64";
1223
- },
1224
- {
1225
- name: "minBaseFutarchicLiquidity";
1226
- type: "u64";
1227
- },
1228
- {
1229
- name: "baseToStake";
1230
- type: "u64";
1231
- },
1232
- {
1233
- name: "passThresholdBps";
1234
- type: "u16";
1235
- },
1236
- {
1237
- name: "slotsPerProposal";
1238
- type: "u64";
1239
- },
1240
- {
1241
- name: "nonce";
1242
- type: "u64";
1243
- },
1244
- {
1245
- name: "initialSpendingLimit";
1246
- type: {
1247
- option: {
1248
- defined: "InitialSpendingLimit";
1249
- };
1250
- };
1251
- }
1252
- ];
1253
- };
1254
- },
1255
- {
1256
- name: "InitializeProposalParams";
1257
- type: {
1258
- kind: "struct";
1259
- fields: [
1260
- {
1261
- name: "descriptionUrl";
1262
- type: "string";
1263
- }
1264
- ];
1265
- };
1266
- },
1267
- {
1268
- name: "ProvideLiquidityParams";
1269
- type: {
1270
- kind: "struct";
1271
- fields: [
1272
- {
1273
- name: "quoteAmount";
1274
- docs: ["How much quote token you will deposit to the pool"];
1275
- type: "u64";
1276
- },
1277
- {
1278
- name: "maxBaseAmount";
1279
- docs: ["The maximum base token you will deposit to the pool"];
1280
- type: "u64";
1281
- },
1282
- {
1283
- name: "minLiquidity";
1284
- docs: ["The minimum liquidity you will be assigned"];
1285
- type: "u128";
1286
- },
1287
- {
1288
- name: "positionAuthority";
1289
- docs: [
1290
- "The account that will own the LP position, usually the same as the",
1291
- "liquidity provider"
1292
- ];
1293
- type: "publicKey";
1294
- }
1295
- ];
1296
- };
1297
- },
1298
- {
1299
- name: "SpotSwapParams";
1300
- type: {
1301
- kind: "struct";
1302
- fields: [
1303
- {
1304
- name: "inputAmount";
1305
- type: "u64";
1306
- },
1307
- {
1308
- name: "swapType";
1309
- type: {
1310
- defined: "SwapType";
1311
- };
1312
- },
1313
- {
1314
- name: "minOutputAmount";
1315
- type: "u64";
1316
- }
1317
- ];
1318
- };
1319
- },
1320
- {
1321
- name: "StakeToProposalParams";
1322
- type: {
1323
- kind: "struct";
1324
- fields: [
1325
- {
1326
- name: "amount";
1327
- type: "u64";
1328
- }
1329
- ];
1330
- };
1331
- },
1332
- {
1333
- name: "UnstakeFromProposalParams";
1334
- type: {
1335
- kind: "struct";
1336
- fields: [
1337
- {
1338
- name: "amount";
1339
- type: "u64";
1340
- }
1341
- ];
1342
- };
1343
- },
1344
- {
1345
- name: "UpdateDaoParams";
1346
- type: {
1347
- kind: "struct";
1348
- fields: [
1349
- {
1350
- name: "passThresholdBps";
1351
- type: {
1352
- option: "u16";
1353
- };
1354
- },
1355
- {
1356
- name: "slotsPerProposal";
1357
- type: {
1358
- option: "u64";
1359
- };
1360
- },
1361
- {
1362
- name: "twapInitialObservation";
1363
- type: {
1364
- option: "u128";
1365
- };
1366
- },
1367
- {
1368
- name: "twapMaxObservationChangePerUpdate";
1369
- type: {
1370
- option: "u128";
1371
- };
1372
- },
1373
- {
1374
- name: "minQuoteFutarchicLiquidity";
1375
- type: {
1376
- option: "u64";
1377
- };
1378
- },
1379
- {
1380
- name: "minBaseFutarchicLiquidity";
1381
- type: {
1382
- option: "u64";
1383
- };
1384
- },
1385
- {
1386
- name: "baseToStake";
1387
- type: {
1388
- option: "u64";
1389
- };
1390
- }
1391
- ];
1392
- };
1393
- },
1394
- {
1395
- name: "WithdrawLiquidityParams";
1396
- type: {
1397
- kind: "struct";
1398
- fields: [
1399
- {
1400
- name: "liquidityToWithdraw";
1401
- docs: ["How much liquidity to withdraw"];
1402
- type: "u128";
1403
- },
1404
- {
1405
- name: "minBaseAmount";
1406
- docs: ["Minimum base tokens to receive"];
1407
- type: "u64";
1408
- },
1409
- {
1410
- name: "minQuoteAmount";
1411
- docs: ["Minimum quote tokens to receive"];
1412
- type: "u64";
1413
- }
1414
- ];
1415
- };
1416
- },
1417
- {
1418
- name: "InitialSpendingLimit";
1419
- type: {
1420
- kind: "struct";
1421
- fields: [
1422
- {
1423
- name: "amountPerMonth";
1424
- type: "u64";
1425
- },
1426
- {
1427
- name: "members";
1428
- type: {
1429
- vec: "publicKey";
1430
- };
1431
- }
1432
- ];
1433
- };
1434
- },
1435
- {
1436
- name: "FutarchyAmm";
1437
- type: {
1438
- kind: "struct";
1439
- fields: [
1440
- {
1441
- name: "state";
1442
- type: {
1443
- defined: "PoolState";
1444
- };
1445
- },
1446
- {
1447
- name: "totalLiquidity";
1448
- type: "u128";
1449
- },
1450
- {
1451
- name: "baseMint";
1452
- type: "publicKey";
1453
- },
1454
- {
1455
- name: "quoteMint";
1456
- type: "publicKey";
1457
- },
1458
- {
1459
- name: "ammBaseVault";
1460
- type: "publicKey";
1461
- },
1462
- {
1463
- name: "ammQuoteVault";
1464
- type: "publicKey";
1465
- }
1466
- ];
1467
- };
1468
- },
1469
- {
1470
- name: "TwapOracle";
1471
- type: {
1472
- kind: "struct";
1473
- fields: [
1474
- {
1475
- name: "createdAtSlot";
1476
- type: "u64";
1477
- },
1478
- {
1479
- name: "lastUpdatedSlot";
1480
- type: "u64";
1481
- },
1482
- {
1483
- name: "lastPrice";
1484
- docs: [
1485
- "A price is the number of quote units per base unit multiplied by 1e12.",
1486
- "You cannot simply divide by 1e12 to get a price you can display in the UI",
1487
- "because the base and quote decimals may be different. Instead, do:",
1488
- "ui_price = (price * (10**(base_decimals - quote_decimals))) / 1e12"
1489
- ];
1490
- type: "u128";
1491
- },
1492
- {
1493
- name: "lastObservation";
1494
- docs: [
1495
- "If we did a raw TWAP over prices, someone could push the TWAP heavily with",
1496
- "a few extremely large outliers. So we use observations, which can only move",
1497
- "by `max_observation_change_per_update` per update."
1498
- ];
1499
- type: "u128";
1500
- },
1501
- {
1502
- name: "aggregator";
1503
- docs: [
1504
- "Running sum of slots_per_last_update * last_observation.",
1505
- "",
1506
- "Assuming latest observations are as big as possible (u64::MAX * 1e12),",
1507
- "we can store 18 million slots worth of observations, which turns out to",
1508
- "be ~85 days worth of slots.",
1509
- "",
1510
- "Assuming that latest observations are 100x smaller than they could theoretically",
1511
- "be, we can store 8500 days (23 years) worth of them. Even this is a very",
1512
- "very conservative assumption - META/USDC prices should be between 1e9 and",
1513
- "1e15, which would overflow after 1e15 years worth of slots.",
1514
- "",
1515
- "So in the case of an overflow, the aggregator rolls back to 0. It's the",
1516
- "client's responsibility to sanity check the assets or to handle an",
1517
- "aggregator at T2 being smaller than an aggregator at T1."
1518
- ];
1519
- type: "u128";
1520
- },
1521
- {
1522
- name: "maxObservationChangePerUpdate";
1523
- docs: ["The most that an observation can change per update."];
1524
- type: "u128";
1525
- },
1526
- {
1527
- name: "initialObservation";
1528
- docs: ["What the initial `latest_observation` is set to."];
1529
- type: "u128";
1530
- },
1531
- {
1532
- name: "startDelaySlots";
1533
- docs: [
1534
- "Number of slots after amm.created_at_slot to start recording TWAP"
1535
- ];
1536
- type: "u64";
1537
- }
1538
- ];
1539
- };
1540
- },
1541
- {
1542
- name: "Pool";
1543
- type: {
1544
- kind: "struct";
1545
- fields: [
1546
- {
1547
- name: "quoteReserves";
1548
- type: "u64";
1549
- },
1550
- {
1551
- name: "baseReserves";
1552
- type: "u64";
1553
- },
1554
- {
1555
- name: "quoteProtocolFeeBalance";
1556
- type: "u64";
1557
- },
1558
- {
1559
- name: "baseProtocolFeeBalance";
1560
- type: "u64";
1561
- },
1562
- {
1563
- name: "oracle";
1564
- type: {
1565
- defined: "TwapOracle";
1566
- };
1567
- }
1568
- ];
1569
- };
1570
- },
1571
- {
1572
- name: "PoolState";
1573
- type: {
1574
- kind: "enum";
1575
- variants: [
1576
- {
1577
- name: "Spot";
1578
- fields: [
1579
- {
1580
- name: "spot";
1581
- type: {
1582
- defined: "Pool";
1583
- };
1584
- }
1585
- ];
1586
- },
1587
- {
1588
- name: "Futarchy";
1589
- fields: [
1590
- {
1591
- name: "spot";
1592
- type: {
1593
- defined: "Pool";
1594
- };
1595
- },
1596
- {
1597
- name: "pass";
1598
- type: {
1599
- defined: "Pool";
1600
- };
1601
- },
1602
- {
1603
- name: "fail";
1604
- type: {
1605
- defined: "Pool";
1606
- };
1607
- }
1608
- ];
1609
- }
1610
- ];
1611
- };
1612
- },
1613
- {
1614
- name: "Market";
1615
- type: {
1616
- kind: "enum";
1617
- variants: [
1618
- {
1619
- name: "Spot";
1620
- },
1621
- {
1622
- name: "Pass";
1623
- },
1624
- {
1625
- name: "Fail";
1626
- }
1627
- ];
1628
- };
1629
- },
1630
- {
1631
- name: "SwapType";
1632
- type: {
1633
- kind: "enum";
1634
- variants: [
1635
- {
1636
- name: "Buy";
1637
- },
1638
- {
1639
- name: "Sell";
1640
- }
1641
- ];
1642
- };
1643
- },
1644
- {
1645
- name: "Token";
1646
- type: {
1647
- kind: "enum";
1648
- variants: [
1649
- {
1650
- name: "Base";
1651
- },
1652
- {
1653
- name: "Quote";
1654
- }
1655
- ];
1656
- };
1657
- },
1658
- {
1659
- name: "ProposalState";
1660
- type: {
1661
- kind: "enum";
1662
- variants: [
1663
- {
1664
- name: "Draft";
1665
- fields: [
1666
- {
1667
- name: "amountStaked";
1668
- type: "u64";
1669
- }
1670
- ];
1671
- },
1672
- {
1673
- name: "Pending";
1674
- },
1675
- {
1676
- name: "Passed";
1677
- },
1678
- {
1679
- name: "Failed";
1680
- }
1681
- ];
1682
- };
1683
- }
1684
- ];
1685
- events: [
1686
- {
1687
- name: "InitializeDaoEvent";
1688
- fields: [
1689
- {
1690
- name: "common";
1691
- type: {
1692
- defined: "CommonFields";
1693
- };
1694
- index: false;
1695
- },
1696
- {
1697
- name: "dao";
1698
- type: "publicKey";
1699
- index: false;
1700
- },
1701
- {
1702
- name: "baseMint";
1703
- type: "publicKey";
1704
- index: false;
1705
- },
1706
- {
1707
- name: "quoteMint";
1708
- type: "publicKey";
1709
- index: false;
1710
- },
1711
- {
1712
- name: "passThresholdBps";
1713
- type: "u16";
1714
- index: false;
1715
- },
1716
- {
1717
- name: "slotsPerProposal";
1718
- type: "u64";
1719
- index: false;
1720
- },
1721
- {
1722
- name: "twapInitialObservation";
1723
- type: "u128";
1724
- index: false;
1725
- },
1726
- {
1727
- name: "twapMaxObservationChangePerUpdate";
1728
- type: "u128";
1729
- index: false;
1730
- },
1731
- {
1732
- name: "minQuoteFutarchicLiquidity";
1733
- type: "u64";
1734
- index: false;
1735
- },
1736
- {
1737
- name: "minBaseFutarchicLiquidity";
1738
- type: "u64";
1739
- index: false;
1740
- },
1741
- {
1742
- name: "baseToStake";
1743
- type: "u64";
1744
- index: false;
1745
- },
1746
- {
1747
- name: "initialSpendingLimit";
1748
- type: {
1749
- option: {
1750
- defined: "InitialSpendingLimit";
1751
- };
1752
- };
1753
- index: false;
1754
- },
1755
- {
1756
- name: "squadsMultisig";
1757
- type: "publicKey";
1758
- index: false;
1759
- },
1760
- {
1761
- name: "squadsMultisigVault";
1762
- type: "publicKey";
1763
- index: false;
1764
- }
1765
- ];
1766
- },
1767
- {
1768
- name: "UpdateDaoEvent";
1769
- fields: [
1770
- {
1771
- name: "common";
1772
- type: {
1773
- defined: "CommonFields";
1774
- };
1775
- index: false;
1776
- },
1777
- {
1778
- name: "dao";
1779
- type: "publicKey";
1780
- index: false;
1781
- },
1782
- {
1783
- name: "passThresholdBps";
1784
- type: "u16";
1785
- index: false;
1786
- },
1787
- {
1788
- name: "slotsPerProposal";
1789
- type: "u64";
1790
- index: false;
1791
- },
1792
- {
1793
- name: "twapInitialObservation";
1794
- type: "u128";
1795
- index: false;
1796
- },
1797
- {
1798
- name: "twapMaxObservationChangePerUpdate";
1799
- type: "u128";
1800
- index: false;
1801
- },
1802
- {
1803
- name: "minQuoteFutarchicLiquidity";
1804
- type: "u64";
1805
- index: false;
1806
- },
1807
- {
1808
- name: "minBaseFutarchicLiquidity";
1809
- type: "u64";
1810
- index: false;
1811
- },
1812
- {
1813
- name: "baseToStake";
1814
- type: "u64";
1815
- index: false;
1816
- }
1817
- ];
1818
- },
1819
- {
1820
- name: "InitializeProposalEvent";
1821
- fields: [
1822
- {
1823
- name: "common";
1824
- type: {
1825
- defined: "CommonFields";
1826
- };
1827
- index: false;
1828
- },
1829
- {
1830
- name: "proposal";
1831
- type: "publicKey";
1832
- index: false;
1833
- },
1834
- {
1835
- name: "dao";
1836
- type: "publicKey";
1837
- index: false;
1838
- },
1839
- {
1840
- name: "question";
1841
- type: "publicKey";
1842
- index: false;
1843
- },
1844
- {
1845
- name: "quoteVault";
1846
- type: "publicKey";
1847
- index: false;
1848
- },
1849
- {
1850
- name: "baseVault";
1851
- type: "publicKey";
1852
- index: false;
1853
- },
1854
- {
1855
- name: "proposer";
1856
- type: "publicKey";
1857
- index: false;
1858
- },
1859
- {
1860
- name: "number";
1861
- type: "u32";
1862
- index: false;
1863
- },
1864
- {
1865
- name: "pdaBump";
1866
- type: "u8";
1867
- index: false;
1868
- },
1869
- {
1870
- name: "durationInSlots";
1871
- type: "u64";
1872
- index: false;
1873
- },
1874
- {
1875
- name: "squadsProposal";
1876
- type: "publicKey";
1877
- index: false;
1878
- },
1879
- {
1880
- name: "squadsMultisig";
1881
- type: "publicKey";
1882
- index: false;
1883
- },
1884
- {
1885
- name: "squadsMultisigVault";
1886
- type: "publicKey";
1887
- index: false;
1888
- }
1889
- ];
1890
- },
1891
- {
1892
- name: "StakeToProposalEvent";
1893
- fields: [
1894
- {
1895
- name: "common";
1896
- type: {
1897
- defined: "CommonFields";
1898
- };
1899
- index: false;
1900
- },
1901
- {
1902
- name: "proposal";
1903
- type: "publicKey";
1904
- index: false;
1905
- },
1906
- {
1907
- name: "staker";
1908
- type: "publicKey";
1909
- index: false;
1910
- },
1911
- {
1912
- name: "amount";
1913
- type: "u64";
1914
- index: false;
1915
- },
1916
- {
1917
- name: "totalStaked";
1918
- type: "u64";
1919
- index: false;
1920
- }
1921
- ];
1922
- },
1923
- {
1924
- name: "UnstakeFromProposalEvent";
1925
- fields: [
1926
- {
1927
- name: "common";
1928
- type: {
1929
- defined: "CommonFields";
1930
- };
1931
- index: false;
1932
- },
1933
- {
1934
- name: "proposal";
1935
- type: "publicKey";
1936
- index: false;
1937
- },
1938
- {
1939
- name: "staker";
1940
- type: "publicKey";
1941
- index: false;
1942
- },
1943
- {
1944
- name: "amount";
1945
- type: "u64";
1946
- index: false;
1947
- },
1948
- {
1949
- name: "totalStaked";
1950
- type: "u64";
1951
- index: false;
1952
- }
1953
- ];
1954
- },
1955
- {
1956
- name: "LaunchProposalEvent";
1957
- fields: [
1958
- {
1959
- name: "common";
1960
- type: {
1961
- defined: "CommonFields";
1962
- };
1963
- index: false;
1964
- },
1965
- {
1966
- name: "proposal";
1967
- type: "publicKey";
1968
- index: false;
1969
- },
1970
- {
1971
- name: "dao";
1972
- type: "publicKey";
1973
- index: false;
1974
- },
1975
- {
1976
- name: "totalStaked";
1977
- type: "u64";
1978
- index: false;
1979
- }
1980
- ];
1981
- },
1982
- {
1983
- name: "FinalizeProposalEvent";
1984
- fields: [
1985
- {
1986
- name: "common";
1987
- type: {
1988
- defined: "CommonFields";
1989
- };
1990
- index: false;
1991
- },
1992
- {
1993
- name: "proposal";
1994
- type: "publicKey";
1995
- index: false;
1996
- },
1997
- {
1998
- name: "dao";
1999
- type: "publicKey";
2000
- index: false;
2001
- },
2002
- {
2003
- name: "passMarketTwap";
2004
- type: "u128";
2005
- index: false;
2006
- },
2007
- {
2008
- name: "failMarketTwap";
2009
- type: "u128";
2010
- index: false;
2011
- },
2012
- {
2013
- name: "threshold";
2014
- type: "u128";
2015
- index: false;
2016
- },
2017
- {
2018
- name: "state";
2019
- type: {
2020
- defined: "ProposalState";
2021
- };
2022
- index: false;
2023
- },
2024
- {
2025
- name: "squadsProposal";
2026
- type: "publicKey";
2027
- index: false;
2028
- },
2029
- {
2030
- name: "squadsMultisig";
2031
- type: "publicKey";
2032
- index: false;
2033
- }
2034
- ];
2035
- },
2036
- {
2037
- name: "ExecuteProposalEvent";
2038
- fields: [
2039
- {
2040
- name: "common";
2041
- type: {
2042
- defined: "CommonFields";
2043
- };
2044
- index: false;
2045
- },
2046
- {
2047
- name: "proposal";
2048
- type: "publicKey";
2049
- index: false;
2050
- },
2051
- {
2052
- name: "dao";
2053
- type: "publicKey";
2054
- index: false;
2055
- }
2056
- ];
2057
- },
2058
- {
2059
- name: "WithdrawLiquidityEvent";
2060
- fields: [
2061
- {
2062
- name: "common";
2063
- type: {
2064
- defined: "CommonFields";
2065
- };
2066
- index: false;
2067
- },
2068
- {
2069
- name: "dao";
2070
- type: "publicKey";
2071
- index: false;
2072
- },
2073
- {
2074
- name: "liquidityProvider";
2075
- type: "publicKey";
2076
- index: false;
2077
- },
2078
- {
2079
- name: "liquidityWithdrawn";
2080
- type: "u128";
2081
- index: false;
2082
- },
2083
- {
2084
- name: "minBaseAmount";
2085
- type: "u64";
2086
- index: false;
2087
- },
2088
- {
2089
- name: "minQuoteAmount";
2090
- type: "u64";
2091
- index: false;
2092
- },
2093
- {
2094
- name: "baseAmount";
2095
- type: "u64";
2096
- index: false;
2097
- },
2098
- {
2099
- name: "quoteAmount";
2100
- type: "u64";
2101
- index: false;
2102
- }
2103
- ];
2104
- }
2105
- ];
2106
- errors: [
2107
- {
2108
- code: 6000;
2109
- name: "AmmTooOld";
2110
- msg: "Amms must have been created within 5 minutes (counted in slots) of proposal initialization";
2111
- },
2112
- {
2113
- code: 6001;
2114
- name: "InvalidInitialObservation";
2115
- msg: "An amm has an `initial_observation` that doesn't match the `dao`'s config";
2116
- },
2117
- {
2118
- code: 6002;
2119
- name: "InvalidMaxObservationChange";
2120
- msg: "An amm has a `max_observation_change_per_update` that doesn't match the `dao`'s config";
2121
- },
2122
- {
2123
- code: 6003;
2124
- name: "InvalidStartDelaySlots";
2125
- msg: "An amm has a `start_delay_slots` that doesn't match the `dao`'s config";
2126
- },
2127
- {
2128
- code: 6004;
2129
- name: "InvalidSettlementAuthority";
2130
- msg: "One of the vaults has an invalid `settlement_authority`";
2131
- },
2132
- {
2133
- code: 6005;
2134
- name: "ProposalTooYoung";
2135
- msg: "Proposal is too young to be executed or rejected";
2136
- },
2137
- {
2138
- code: 6006;
2139
- name: "MarketsTooYoung";
2140
- msg: "Markets too young for proposal to be finalized. TWAP might need to be cranked";
2141
- },
2142
- {
2143
- code: 6007;
2144
- name: "ProposalAlreadyFinalized";
2145
- msg: "This proposal has already been finalized";
2146
- },
2147
- {
2148
- code: 6008;
2149
- name: "InvalidVaultNonce";
2150
- msg: "A conditional vault has an invalid nonce. A nonce should encode the proposal number";
2151
- },
2152
- {
2153
- code: 6009;
2154
- name: "ProposalNotPassed";
2155
- msg: "This proposal can't be executed because it isn't in the passed state";
2156
- },
2157
- {
2158
- code: 6010;
2159
- name: "InsufficientLiquidity";
2160
- msg: "More liquidity needs to be in the AMM to launch this proposal";
2161
- },
2162
- {
2163
- code: 6011;
2164
- name: "ProposalDurationTooShort";
2165
- msg: "Proposal duration must be longer than TWAP start delay";
2166
- },
2167
- {
2168
- code: 6012;
2169
- name: "QuestionMustBeBinary";
2170
- msg: "Question must have exactly 2 outcomes for binary futarchy";
2171
- },
2172
- {
2173
- code: 6013;
2174
- name: "InvalidSquadsProposalStatus";
2175
- msg: "Squads proposal must be in Draft status";
2176
- },
2177
- {
2178
- code: 6014;
2179
- name: "CastingOverflow";
2180
- msg: "Casting overflow. If you're seeing this, please report this";
2181
- },
2182
- {
2183
- code: 6015;
2184
- name: "InsufficientBalance";
2185
- msg: "Insufficient balance";
2186
- },
2187
- {
2188
- code: 6016;
2189
- name: "ZeroLiquidityRemove";
2190
- msg: "Cannot remove zero liquidity";
2191
- },
2192
- {
2193
- code: 6017;
2194
- name: "SwapSlippageExceeded";
2195
- msg: "Swap slippage exceeded";
2196
- },
2197
- {
2198
- code: 6018;
2199
- name: "AssertFailed";
2200
- msg: "Assert failed";
2201
- },
2202
- {
2203
- code: 6019;
2204
- name: "InvalidAdmin";
2205
- msg: "Invalid admin";
2206
- },
2207
- {
2208
- code: 6020;
2209
- name: "ProposalNotInDraftState";
2210
- msg: "Proposal is not in draft state";
2211
- },
2212
- {
2213
- code: 6021;
2214
- name: "InsufficientTokenBalance";
2215
- msg: "Insufficient token balance";
2216
- },
2217
- {
2218
- code: 6022;
2219
- name: "InvalidAmount";
2220
- msg: "Invalid amount";
2221
- },
2222
- {
2223
- code: 6023;
2224
- name: "InsufficientStakeToLaunch";
2225
- msg: "Insufficient stake to launch proposal";
2226
- },
2227
- {
2228
- code: 6024;
2229
- name: "StakerNotFound";
2230
- msg: "Staker not found in proposal";
2231
- },
2232
- {
2233
- code: 6025;
2234
- name: "PoolNotInSpotState";
2235
- msg: "Pool must be in spot state";
2236
- },
2237
- {
2238
- code: 6026;
2239
- name: "InvalidDaoCreateLiquidity";
2240
- msg: "If you're providing liquidity, you must provide both base and quote token accounts";
2241
- },
2242
- {
2243
- code: 6027;
2244
- name: "InvalidStakeAccount";
2245
- msg: "Invalid stake account";
2246
- }
2247
- ];
2248
- };
2249
- export declare const IDL: Futarchy;