@metadaoproject/futarchy 0.5.0-alpha.7 → 0.6.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/v0.3/AmmClient.js.map +1 -1
  2. package/dist/v0.3/AutocratClient.js.map +1 -1
  3. package/dist/v0.3/FutarchyClient.js.map +1 -1
  4. package/dist/v0.3/utils/ammMath.js.map +1 -1
  5. package/dist/v0.3/utils/filters.js +2 -2
  6. package/dist/v0.3/utils/filters.js.map +1 -1
  7. package/dist/v0.3/utils/index.js +1 -1
  8. package/dist/v0.3/utils/index.js.map +1 -1
  9. package/dist/v0.3/utils/instruction.js.map +1 -1
  10. package/dist/v0.3/utils/metadata.js +5 -1
  11. package/dist/v0.3/utils/metadata.js.map +1 -1
  12. package/dist/v0.4/AmmClient.d.ts +0 -1
  13. package/dist/v0.4/AmmClient.js.map +1 -1
  14. package/dist/v0.4/AutocratClient.d.ts +2 -95
  15. package/dist/v0.4/AutocratClient.js +121 -181
  16. package/dist/v0.4/AutocratClient.js.map +1 -1
  17. package/dist/v0.4/ConditionalVaultClient.d.ts +0 -1
  18. package/dist/v0.4/ConditionalVaultClient.js.map +1 -1
  19. package/dist/v0.4/LaunchpadClient.d.ts +0 -1
  20. package/dist/v0.4/utils/filters.js +2 -2
  21. package/dist/v0.4/utils/filters.js.map +1 -1
  22. package/dist/v0.4/utils/index.js +1 -1
  23. package/dist/v0.4/utils/index.js.map +1 -1
  24. package/dist/v0.4/utils/instruction.js.map +1 -1
  25. package/dist/v0.4/utils/metadata.js +5 -1
  26. package/dist/v0.4/utils/metadata.js.map +1 -1
  27. package/dist/v0.4/utils/pda.js.map +1 -1
  28. package/dist/v0.4/utils/priceMath.js.map +1 -1
  29. package/dist/v0.5/AmmClient.d.ts +0 -1
  30. package/dist/v0.5/AmmClient.js.map +1 -1
  31. package/dist/v0.5/AutocratClient.d.ts +0 -1
  32. package/dist/v0.5/AutocratClient.js.map +1 -1
  33. package/dist/v0.5/ConditionalVaultClient.d.ts +0 -1
  34. package/dist/v0.5/ConditionalVaultClient.js.map +1 -1
  35. package/dist/v0.5/LaunchpadClient.d.ts +0 -1
  36. package/dist/v0.5/LaunchpadClient.js +2 -5
  37. package/dist/v0.5/LaunchpadClient.js.map +1 -1
  38. package/dist/v0.5/constants.d.ts +0 -1
  39. package/dist/v0.5/constants.js +0 -1
  40. package/dist/v0.5/constants.js.map +1 -1
  41. package/dist/v0.5/utils/filters.js +2 -2
  42. package/dist/v0.5/utils/filters.js.map +1 -1
  43. package/dist/v0.5/utils/index.js +1 -1
  44. package/dist/v0.5/utils/index.js.map +1 -1
  45. package/dist/v0.5/utils/instruction.js.map +1 -1
  46. package/dist/v0.5/utils/metadata.js +5 -1
  47. package/dist/v0.5/utils/metadata.js.map +1 -1
  48. package/dist/v0.5/utils/pda.d.ts +1 -1
  49. package/dist/v0.5/utils/pda.js.map +1 -1
  50. package/dist/v0.5/utils/priceMath.js.map +1 -1
  51. package/dist/v0.6/ConditionalVaultClient.d.ts +314 -0
  52. package/dist/v0.6/ConditionalVaultClient.js +209 -0
  53. package/dist/v0.6/ConditionalVaultClient.js.map +1 -0
  54. package/dist/v0.6/FutarchyClient.d.ts +749 -0
  55. package/dist/v0.6/FutarchyClient.js +392 -0
  56. package/dist/v0.6/FutarchyClient.js.map +1 -0
  57. package/dist/v0.6/LaunchpadClient.d.ts +404 -0
  58. package/dist/v0.6/LaunchpadClient.js +210 -0
  59. package/dist/v0.6/LaunchpadClient.js.map +1 -0
  60. package/dist/v0.6/constants.d.ts +25 -0
  61. package/dist/v0.6/constants.js +36 -0
  62. package/dist/v0.6/constants.js.map +1 -0
  63. package/dist/v0.6/index.d.ts +6 -0
  64. package/dist/v0.6/index.js +7 -0
  65. package/dist/v0.6/index.js.map +1 -0
  66. package/dist/v0.6/types/amm.d.ts +832 -0
  67. package/dist/v0.6/types/amm.js +832 -0
  68. package/dist/v0.6/types/amm.js.map +1 -0
  69. package/dist/v0.6/types/conditional_vault.d.ts +925 -0
  70. package/dist/v0.6/types/conditional_vault.js +925 -0
  71. package/dist/v0.6/types/conditional_vault.js.map +1 -0
  72. package/dist/v0.6/types/futarchy.d.ts +2249 -0
  73. package/dist/v0.6/types/futarchy.js +2249 -0
  74. package/dist/v0.6/types/futarchy.js.map +1 -0
  75. package/dist/v0.6/types/index.d.ts +47 -0
  76. package/dist/v0.6/types/index.js +9 -0
  77. package/dist/v0.6/types/index.js.map +1 -0
  78. package/dist/v0.6/types/launchpad.d.ts +1018 -0
  79. package/dist/v0.6/types/launchpad.js +1018 -0
  80. package/dist/v0.6/types/launchpad.js.map +1 -0
  81. package/dist/v0.6/types/shared_liquidity_manager.d.ts +89 -0
  82. package/dist/v0.6/types/shared_liquidity_manager.js +89 -0
  83. package/dist/v0.6/types/shared_liquidity_manager.js.map +1 -0
  84. package/dist/v0.6/types/utils.d.ts +3 -0
  85. package/dist/v0.6/types/utils.js +2 -0
  86. package/dist/v0.6/types/utils.js.map +1 -0
  87. package/dist/v0.6/utils/cu.d.ts +10 -0
  88. package/dist/v0.6/utils/cu.js +11 -0
  89. package/dist/v0.6/utils/cu.js.map +1 -0
  90. package/dist/v0.6/utils/filters.d.ts +3 -0
  91. package/dist/v0.6/utils/filters.js +14 -0
  92. package/dist/v0.6/utils/filters.js.map +1 -0
  93. package/dist/v0.6/utils/index.d.ts +16 -0
  94. package/dist/v0.6/utils/index.js +30 -0
  95. package/dist/v0.6/utils/index.js.map +1 -0
  96. package/dist/v0.6/utils/instruction.d.ts +4 -0
  97. package/dist/v0.6/utils/instruction.js +10 -0
  98. package/dist/v0.6/utils/instruction.js.map +1 -0
  99. package/dist/v0.6/utils/metadata.d.ts +4 -0
  100. package/dist/v0.6/utils/metadata.js +26 -0
  101. package/dist/v0.6/utils/metadata.js.map +1 -0
  102. package/dist/v0.6/utils/pda.d.ts +25 -0
  103. package/dist/v0.6/utils/pda.js +75 -0
  104. package/dist/v0.6/utils/pda.js.map +1 -0
  105. package/dist/v0.6/utils/priceMath.d.ts +39 -0
  106. package/dist/v0.6/utils/priceMath.js +48 -0
  107. package/dist/v0.6/utils/priceMath.js.map +1 -0
  108. package/package.json +5 -6
@@ -0,0 +1,2249 @@
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;