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