@metadaoproject/futarchy 0.4.0-alpha.8 → 0.5.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/v0.3/AmmClient.d.ts +223 -0
  2. package/dist/v0.3/AmmClient.js +186 -0
  3. package/dist/v0.3/AmmClient.js.map +1 -0
  4. package/dist/v0.3/AutocratClient.d.ts +234 -0
  5. package/dist/v0.3/AutocratClient.js +271 -0
  6. package/dist/v0.3/AutocratClient.js.map +1 -0
  7. package/dist/v0.3/ConditionalVaultClient.d.ts +281 -0
  8. package/dist/v0.3/ConditionalVaultClient.js +135 -0
  9. package/dist/v0.3/ConditionalVaultClient.js.map +1 -0
  10. package/dist/v0.3/FutarchyClient.d.ts +27 -0
  11. package/dist/v0.3/FutarchyClient.js +57 -0
  12. package/dist/v0.3/FutarchyClient.js.map +1 -0
  13. package/dist/v0.3/constants.d.ts +9 -0
  14. package/dist/v0.3/constants.js +10 -0
  15. package/dist/v0.3/constants.js.map +1 -0
  16. package/dist/v0.3/index.d.ts +7 -0
  17. package/dist/v0.3/index.js +8 -0
  18. package/dist/v0.3/index.js.map +1 -0
  19. package/dist/v0.3/types/amm.d.ts +542 -0
  20. package/dist/v0.3/types/amm.js +542 -0
  21. package/dist/v0.3/types/amm.js.map +1 -0
  22. package/dist/v0.3/types/autocrat.d.ts +632 -0
  23. package/dist/v0.3/types/autocrat.js +632 -0
  24. package/dist/v0.3/types/autocrat.js.map +1 -0
  25. package/dist/v0.3/types/conditional_vault.d.ts +448 -0
  26. package/dist/v0.3/types/conditional_vault.js +448 -0
  27. package/dist/v0.3/types/conditional_vault.js.map +1 -0
  28. package/dist/v0.3/types/index.d.ts +21 -0
  29. package/dist/v0.3/types/index.js +4 -0
  30. package/dist/v0.3/types/index.js.map +1 -0
  31. package/dist/v0.3/types/utils.d.ts +3 -0
  32. package/dist/v0.3/types/utils.js +2 -0
  33. package/dist/v0.3/types/utils.js.map +1 -0
  34. package/dist/v0.3/utils/ammMath.d.ts +39 -0
  35. package/dist/v0.3/utils/ammMath.js +142 -0
  36. package/dist/v0.3/utils/ammMath.js.map +1 -0
  37. package/dist/v0.3/utils/cu.d.ts +10 -0
  38. package/dist/v0.3/utils/cu.js +11 -0
  39. package/dist/v0.3/utils/cu.js.map +1 -0
  40. package/dist/v0.3/utils/filters.d.ts +3 -0
  41. package/dist/v0.3/utils/filters.js +14 -0
  42. package/dist/v0.3/utils/filters.js.map +1 -0
  43. package/dist/v0.3/utils/index.d.ts +16 -0
  44. package/dist/v0.3/utils/index.js +30 -0
  45. package/dist/v0.3/utils/index.js.map +1 -0
  46. package/dist/v0.3/utils/instruction.d.ts +4 -0
  47. package/dist/v0.3/utils/instruction.js +10 -0
  48. package/dist/v0.3/utils/instruction.js.map +1 -0
  49. package/dist/v0.3/utils/metadata.d.ts +4 -0
  50. package/dist/v0.3/utils/metadata.js +26 -0
  51. package/dist/v0.3/utils/metadata.js.map +1 -0
  52. package/dist/v0.3/utils/pda.d.ts +10 -0
  53. package/dist/v0.3/utils/pda.js +47 -0
  54. package/dist/v0.3/utils/pda.js.map +1 -0
  55. package/dist/v0.4/AmmClient.d.ts +34 -25
  56. package/dist/v0.4/AmmClient.js +14 -105
  57. package/dist/v0.4/AmmClient.js.map +1 -1
  58. package/dist/v0.4/AutocratClient.d.ts +39 -2
  59. package/dist/v0.4/AutocratClient.js +21 -13
  60. package/dist/v0.4/AutocratClient.js.map +1 -1
  61. package/dist/v0.4/ConditionalVaultClient.d.ts +67 -11
  62. package/dist/v0.4/ConditionalVaultClient.js +19 -35
  63. package/dist/v0.4/ConditionalVaultClient.js.map +1 -1
  64. package/dist/v0.4/LaunchpadClient.d.ts +416 -0
  65. package/dist/v0.4/LaunchpadClient.js +198 -0
  66. package/dist/v0.4/LaunchpadClient.js.map +1 -0
  67. package/dist/v0.4/constants.d.ts +10 -0
  68. package/dist/v0.4/constants.js +18 -3
  69. package/dist/v0.4/constants.js.map +1 -1
  70. package/dist/v0.4/index.d.ts +1 -0
  71. package/dist/v0.4/index.js +1 -0
  72. package/dist/v0.4/index.js.map +1 -1
  73. package/dist/v0.4/types/amm.d.ts +235 -12
  74. package/dist/v0.4/types/amm.js +234 -11
  75. package/dist/v0.4/types/amm.js.map +1 -1
  76. package/dist/v0.4/types/autocrat.d.ts +379 -8
  77. package/dist/v0.4/types/autocrat.js +379 -8
  78. package/dist/v0.4/types/autocrat.js.map +1 -1
  79. package/dist/v0.4/types/conditional_vault.d.ts +416 -4
  80. package/dist/v0.4/types/conditional_vault.js +416 -4
  81. package/dist/v0.4/types/conditional_vault.js.map +1 -1
  82. package/dist/v0.4/types/index.d.ts +30 -0
  83. package/dist/v0.4/types/index.js +2 -0
  84. package/dist/v0.4/types/index.js.map +1 -1
  85. package/dist/v0.4/types/launchpad.d.ts +1000 -0
  86. package/dist/v0.4/types/launchpad.js +1000 -0
  87. package/dist/v0.4/types/launchpad.js.map +1 -0
  88. package/dist/v0.4/utils/cu.js +1 -1
  89. package/dist/v0.4/utils/pda.d.ts +16 -3
  90. package/dist/v0.4/utils/pda.js +39 -11
  91. package/dist/v0.4/utils/pda.js.map +1 -1
  92. package/dist/v0.4/utils/priceMath.d.ts +51 -9
  93. package/dist/v0.4/utils/priceMath.js +102 -38
  94. package/dist/v0.4/utils/priceMath.js.map +1 -1
  95. package/dist/v0.5/AmmClient.d.ts +266 -0
  96. package/dist/v0.5/AmmClient.js +187 -0
  97. package/dist/v0.5/AmmClient.js.map +1 -0
  98. package/dist/v0.5/AutocratClient.d.ts +271 -0
  99. package/dist/v0.5/AutocratClient.js +375 -0
  100. package/dist/v0.5/AutocratClient.js.map +1 -0
  101. package/dist/v0.5/ConditionalVaultClient.d.ts +315 -0
  102. package/dist/v0.5/ConditionalVaultClient.js +209 -0
  103. package/dist/v0.5/ConditionalVaultClient.js.map +1 -0
  104. package/dist/v0.5/LaunchpadClient.d.ts +416 -0
  105. package/dist/v0.5/LaunchpadClient.js +198 -0
  106. package/dist/v0.5/LaunchpadClient.js.map +1 -0
  107. package/dist/v0.5/SharedLiquidityManagerClient.d.ts +1070 -0
  108. package/dist/v0.5/SharedLiquidityManagerClient.js +341 -0
  109. package/dist/v0.5/SharedLiquidityManagerClient.js.map +1 -0
  110. package/dist/v0.5/constants.d.ts +20 -0
  111. package/dist/v0.5/constants.js +26 -0
  112. package/dist/v0.5/constants.js.map +1 -0
  113. package/dist/v0.5/index.d.ts +8 -0
  114. package/dist/v0.5/index.js +9 -0
  115. package/dist/v0.5/index.js.map +1 -0
  116. package/dist/v0.5/types/amm.d.ts +832 -0
  117. package/dist/v0.5/types/amm.js +832 -0
  118. package/dist/v0.5/types/amm.js.map +1 -0
  119. package/dist/v0.5/types/autocrat.d.ts +1022 -0
  120. package/dist/v0.5/types/autocrat.js +1022 -0
  121. package/dist/v0.5/types/autocrat.js.map +1 -0
  122. package/dist/v0.5/types/conditional_vault.d.ts +925 -0
  123. package/dist/v0.5/types/conditional_vault.js +925 -0
  124. package/dist/v0.5/types/conditional_vault.js.map +1 -0
  125. package/dist/v0.5/types/index.d.ts +51 -0
  126. package/dist/v0.5/types/index.js +11 -0
  127. package/dist/v0.5/types/index.js.map +1 -0
  128. package/dist/v0.5/types/launchpad.d.ts +1000 -0
  129. package/dist/v0.5/types/launchpad.js +1000 -0
  130. package/dist/v0.5/types/launchpad.js.map +1 -0
  131. package/dist/v0.5/types/shared_liquidity_manager.d.ts +1765 -0
  132. package/dist/v0.5/types/shared_liquidity_manager.js +1765 -0
  133. package/dist/v0.5/types/shared_liquidity_manager.js.map +1 -0
  134. package/dist/v0.5/types/utils.d.ts +3 -0
  135. package/dist/v0.5/types/utils.js +2 -0
  136. package/dist/v0.5/types/utils.js.map +1 -0
  137. package/dist/v0.5/utils/cu.d.ts +10 -0
  138. package/dist/v0.5/utils/cu.js +11 -0
  139. package/dist/v0.5/utils/cu.js.map +1 -0
  140. package/dist/v0.5/utils/filters.d.ts +3 -0
  141. package/dist/v0.5/utils/filters.js +14 -0
  142. package/dist/v0.5/utils/filters.js.map +1 -0
  143. package/dist/v0.5/utils/index.d.ts +16 -0
  144. package/dist/v0.5/utils/index.js +30 -0
  145. package/dist/v0.5/utils/index.js.map +1 -0
  146. package/dist/v0.5/utils/instruction.d.ts +4 -0
  147. package/dist/v0.5/utils/instruction.js +10 -0
  148. package/dist/v0.5/utils/instruction.js.map +1 -0
  149. package/dist/v0.5/utils/metadata.d.ts +4 -0
  150. package/dist/v0.5/utils/metadata.js +26 -0
  151. package/dist/v0.5/utils/metadata.js.map +1 -0
  152. package/dist/v0.5/utils/pda.d.ts +33 -0
  153. package/dist/v0.5/utils/pda.js +137 -0
  154. package/dist/v0.5/utils/pda.js.map +1 -0
  155. package/dist/v0.5/utils/priceMath.d.ts +54 -0
  156. package/dist/v0.5/utils/priceMath.js +116 -0
  157. package/dist/v0.5/utils/priceMath.js.map +1 -0
  158. package/package.json +5 -3
@@ -0,0 +1,1022 @@
1
+ export type Autocrat = {
2
+ version: "0.4.2";
3
+ name: "autocrat";
4
+ instructions: [
5
+ {
6
+ name: "initializeDao";
7
+ accounts: [
8
+ {
9
+ name: "dao";
10
+ isMut: true;
11
+ isSigner: true;
12
+ },
13
+ {
14
+ name: "payer";
15
+ isMut: true;
16
+ isSigner: true;
17
+ },
18
+ {
19
+ name: "systemProgram";
20
+ isMut: false;
21
+ isSigner: false;
22
+ },
23
+ {
24
+ name: "tokenMint";
25
+ isMut: false;
26
+ isSigner: false;
27
+ },
28
+ {
29
+ name: "usdcMint";
30
+ isMut: false;
31
+ isSigner: false;
32
+ },
33
+ {
34
+ name: "eventAuthority";
35
+ isMut: false;
36
+ isSigner: false;
37
+ },
38
+ {
39
+ name: "program";
40
+ isMut: false;
41
+ isSigner: false;
42
+ }
43
+ ];
44
+ args: [
45
+ {
46
+ name: "params";
47
+ type: {
48
+ defined: "InitializeDaoParams";
49
+ };
50
+ }
51
+ ];
52
+ },
53
+ {
54
+ name: "initializeProposal";
55
+ accounts: [
56
+ {
57
+ name: "proposal";
58
+ isMut: true;
59
+ isSigner: false;
60
+ },
61
+ {
62
+ name: "dao";
63
+ isMut: true;
64
+ isSigner: false;
65
+ },
66
+ {
67
+ name: "question";
68
+ isMut: false;
69
+ isSigner: false;
70
+ },
71
+ {
72
+ name: "quoteVault";
73
+ isMut: false;
74
+ isSigner: false;
75
+ },
76
+ {
77
+ name: "baseVault";
78
+ isMut: false;
79
+ isSigner: false;
80
+ },
81
+ {
82
+ name: "passAmm";
83
+ isMut: false;
84
+ isSigner: false;
85
+ },
86
+ {
87
+ name: "passLpMint";
88
+ isMut: false;
89
+ isSigner: false;
90
+ },
91
+ {
92
+ name: "failLpMint";
93
+ isMut: false;
94
+ isSigner: false;
95
+ },
96
+ {
97
+ name: "failAmm";
98
+ isMut: false;
99
+ isSigner: false;
100
+ },
101
+ {
102
+ name: "passLpUserAccount";
103
+ isMut: true;
104
+ isSigner: false;
105
+ },
106
+ {
107
+ name: "failLpUserAccount";
108
+ isMut: true;
109
+ isSigner: false;
110
+ },
111
+ {
112
+ name: "passLpVaultAccount";
113
+ isMut: true;
114
+ isSigner: false;
115
+ },
116
+ {
117
+ name: "failLpVaultAccount";
118
+ isMut: true;
119
+ isSigner: false;
120
+ },
121
+ {
122
+ name: "proposer";
123
+ isMut: true;
124
+ isSigner: true;
125
+ },
126
+ {
127
+ name: "payer";
128
+ isMut: true;
129
+ isSigner: true;
130
+ },
131
+ {
132
+ name: "tokenProgram";
133
+ isMut: false;
134
+ isSigner: false;
135
+ },
136
+ {
137
+ name: "systemProgram";
138
+ isMut: false;
139
+ isSigner: false;
140
+ },
141
+ {
142
+ name: "associatedTokenProgram";
143
+ isMut: false;
144
+ isSigner: false;
145
+ },
146
+ {
147
+ name: "eventAuthority";
148
+ isMut: false;
149
+ isSigner: false;
150
+ },
151
+ {
152
+ name: "program";
153
+ isMut: false;
154
+ isSigner: false;
155
+ }
156
+ ];
157
+ args: [
158
+ {
159
+ name: "params";
160
+ type: {
161
+ defined: "InitializeProposalParams";
162
+ };
163
+ }
164
+ ];
165
+ },
166
+ {
167
+ name: "finalizeProposal";
168
+ accounts: [
169
+ {
170
+ name: "proposal";
171
+ isMut: true;
172
+ isSigner: false;
173
+ },
174
+ {
175
+ name: "passAmm";
176
+ isMut: false;
177
+ isSigner: false;
178
+ },
179
+ {
180
+ name: "failAmm";
181
+ isMut: false;
182
+ isSigner: false;
183
+ },
184
+ {
185
+ name: "dao";
186
+ isMut: false;
187
+ isSigner: false;
188
+ },
189
+ {
190
+ name: "question";
191
+ isMut: true;
192
+ isSigner: false;
193
+ },
194
+ {
195
+ name: "passLpUserAccount";
196
+ isMut: true;
197
+ isSigner: false;
198
+ },
199
+ {
200
+ name: "failLpUserAccount";
201
+ isMut: true;
202
+ isSigner: false;
203
+ },
204
+ {
205
+ name: "passLpVaultAccount";
206
+ isMut: true;
207
+ isSigner: false;
208
+ },
209
+ {
210
+ name: "failLpVaultAccount";
211
+ isMut: true;
212
+ isSigner: false;
213
+ },
214
+ {
215
+ name: "tokenProgram";
216
+ isMut: false;
217
+ isSigner: false;
218
+ },
219
+ {
220
+ name: "vaultProgram";
221
+ isMut: false;
222
+ isSigner: false;
223
+ },
224
+ {
225
+ name: "vaultEventAuthority";
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
+ {
243
+ name: "executeProposal";
244
+ accounts: [
245
+ {
246
+ name: "proposal";
247
+ isMut: true;
248
+ isSigner: false;
249
+ },
250
+ {
251
+ name: "dao";
252
+ isMut: false;
253
+ isSigner: false;
254
+ },
255
+ {
256
+ name: "eventAuthority";
257
+ isMut: false;
258
+ isSigner: false;
259
+ },
260
+ {
261
+ name: "program";
262
+ isMut: false;
263
+ isSigner: false;
264
+ }
265
+ ];
266
+ args: [];
267
+ },
268
+ {
269
+ name: "updateDao";
270
+ accounts: [
271
+ {
272
+ name: "dao";
273
+ isMut: true;
274
+ isSigner: false;
275
+ },
276
+ {
277
+ name: "treasury";
278
+ isMut: false;
279
+ isSigner: true;
280
+ },
281
+ {
282
+ name: "eventAuthority";
283
+ isMut: false;
284
+ isSigner: false;
285
+ },
286
+ {
287
+ name: "program";
288
+ isMut: false;
289
+ isSigner: false;
290
+ }
291
+ ];
292
+ args: [
293
+ {
294
+ name: "daoParams";
295
+ type: {
296
+ defined: "UpdateDaoParams";
297
+ };
298
+ }
299
+ ];
300
+ }
301
+ ];
302
+ accounts: [
303
+ {
304
+ name: "dao";
305
+ type: {
306
+ kind: "struct";
307
+ fields: [
308
+ {
309
+ name: "treasuryPdaBump";
310
+ type: "u8";
311
+ },
312
+ {
313
+ name: "treasury";
314
+ type: "publicKey";
315
+ },
316
+ {
317
+ name: "tokenMint";
318
+ type: "publicKey";
319
+ },
320
+ {
321
+ name: "usdcMint";
322
+ type: "publicKey";
323
+ },
324
+ {
325
+ name: "proposalCount";
326
+ type: "u32";
327
+ },
328
+ {
329
+ name: "passThresholdBps";
330
+ type: "u16";
331
+ },
332
+ {
333
+ name: "slotsPerProposal";
334
+ type: "u64";
335
+ },
336
+ {
337
+ name: "twapInitialObservation";
338
+ docs: [
339
+ "For manipulation-resistance the TWAP is a time-weighted average observation,",
340
+ "where observation tries to approximate price but can only move by",
341
+ "`twap_max_observation_change_per_update` per update. Because it can only move",
342
+ "a little bit per update, you need to check that it has a good initial observation.",
343
+ "Otherwise, an attacker could create a very high initial observation in the pass",
344
+ "market and a very low one in the fail market to force the proposal to pass.",
345
+ "",
346
+ "We recommend setting an initial observation around the spot price of the token,",
347
+ "and max observation change per update around 2% the spot price of the token.",
348
+ "For example, if the spot price of META is $400, we'd recommend setting an initial",
349
+ "observation of 400 (converted into the AMM prices) and a max observation change per",
350
+ "update of 8 (also converted into the AMM prices). Observations can be updated once",
351
+ "a minute, so 2% allows the proposal market to reach double the spot price or 0",
352
+ "in 50 minutes."
353
+ ];
354
+ type: "u128";
355
+ },
356
+ {
357
+ name: "twapMaxObservationChangePerUpdate";
358
+ type: "u128";
359
+ },
360
+ {
361
+ name: "twapStartDelaySlots";
362
+ docs: [
363
+ "Forces TWAP calculation to start after amm.created_at_slot + twap_start_delay_slots"
364
+ ];
365
+ type: "u64";
366
+ },
367
+ {
368
+ name: "minQuoteFutarchicLiquidity";
369
+ docs: [
370
+ "As an anti-spam measure and to help liquidity, you need to lock up some liquidity",
371
+ "in both futarchic markets in order to create a proposal.",
372
+ "",
373
+ "For example, for META, we can use a `min_quote_futarchic_liquidity` of",
374
+ "5000 * 1_000_000 (5000 USDC) and a `min_base_futarchic_liquidity` of",
375
+ "10 * 1_000_000_000 (10 META)."
376
+ ];
377
+ type: "u64";
378
+ },
379
+ {
380
+ name: "minBaseFutarchicLiquidity";
381
+ type: "u64";
382
+ },
383
+ {
384
+ name: "seqNum";
385
+ type: "u64";
386
+ }
387
+ ];
388
+ };
389
+ },
390
+ {
391
+ name: "proposal";
392
+ type: {
393
+ kind: "struct";
394
+ fields: [
395
+ {
396
+ name: "number";
397
+ type: "u32";
398
+ },
399
+ {
400
+ name: "proposer";
401
+ type: "publicKey";
402
+ },
403
+ {
404
+ name: "descriptionUrl";
405
+ type: "string";
406
+ },
407
+ {
408
+ name: "slotEnqueued";
409
+ type: "u64";
410
+ },
411
+ {
412
+ name: "state";
413
+ type: {
414
+ defined: "ProposalState";
415
+ };
416
+ },
417
+ {
418
+ name: "instruction";
419
+ type: {
420
+ defined: "ProposalInstruction";
421
+ };
422
+ },
423
+ {
424
+ name: "passAmm";
425
+ type: "publicKey";
426
+ },
427
+ {
428
+ name: "failAmm";
429
+ type: "publicKey";
430
+ },
431
+ {
432
+ name: "baseVault";
433
+ type: "publicKey";
434
+ },
435
+ {
436
+ name: "quoteVault";
437
+ type: "publicKey";
438
+ },
439
+ {
440
+ name: "dao";
441
+ type: "publicKey";
442
+ },
443
+ {
444
+ name: "passLpTokensLocked";
445
+ type: "u64";
446
+ },
447
+ {
448
+ name: "failLpTokensLocked";
449
+ type: "u64";
450
+ },
451
+ {
452
+ name: "nonce";
453
+ docs: [
454
+ "We need to include a per-proposer nonce to prevent some weird proposal",
455
+ "front-running edge cases. Using a `u64` means that proposers are unlikely",
456
+ "to run into collisions, even if they generate nonces randomly - I've run",
457
+ "the math :D"
458
+ ];
459
+ type: "u64";
460
+ },
461
+ {
462
+ name: "pdaBump";
463
+ type: "u8";
464
+ },
465
+ {
466
+ name: "question";
467
+ type: "publicKey";
468
+ },
469
+ {
470
+ name: "durationInSlots";
471
+ type: "u64";
472
+ }
473
+ ];
474
+ };
475
+ }
476
+ ];
477
+ types: [
478
+ {
479
+ name: "CommonFields";
480
+ type: {
481
+ kind: "struct";
482
+ fields: [
483
+ {
484
+ name: "slot";
485
+ type: "u64";
486
+ },
487
+ {
488
+ name: "unixTimestamp";
489
+ type: "i64";
490
+ }
491
+ ];
492
+ };
493
+ },
494
+ {
495
+ name: "InitializeDaoParams";
496
+ type: {
497
+ kind: "struct";
498
+ fields: [
499
+ {
500
+ name: "twapInitialObservation";
501
+ type: "u128";
502
+ },
503
+ {
504
+ name: "twapMaxObservationChangePerUpdate";
505
+ type: "u128";
506
+ },
507
+ {
508
+ name: "twapStartDelaySlots";
509
+ type: "u64";
510
+ },
511
+ {
512
+ name: "minQuoteFutarchicLiquidity";
513
+ type: "u64";
514
+ },
515
+ {
516
+ name: "minBaseFutarchicLiquidity";
517
+ type: "u64";
518
+ },
519
+ {
520
+ name: "passThresholdBps";
521
+ type: {
522
+ option: "u16";
523
+ };
524
+ },
525
+ {
526
+ name: "slotsPerProposal";
527
+ type: {
528
+ option: "u64";
529
+ };
530
+ }
531
+ ];
532
+ };
533
+ },
534
+ {
535
+ name: "InitializeProposalParams";
536
+ type: {
537
+ kind: "struct";
538
+ fields: [
539
+ {
540
+ name: "descriptionUrl";
541
+ type: "string";
542
+ },
543
+ {
544
+ name: "instruction";
545
+ type: {
546
+ defined: "ProposalInstruction";
547
+ };
548
+ },
549
+ {
550
+ name: "passLpTokensToLock";
551
+ type: "u64";
552
+ },
553
+ {
554
+ name: "failLpTokensToLock";
555
+ type: "u64";
556
+ },
557
+ {
558
+ name: "nonce";
559
+ type: "u64";
560
+ }
561
+ ];
562
+ };
563
+ },
564
+ {
565
+ name: "UpdateDaoParams";
566
+ type: {
567
+ kind: "struct";
568
+ fields: [
569
+ {
570
+ name: "passThresholdBps";
571
+ type: {
572
+ option: "u16";
573
+ };
574
+ },
575
+ {
576
+ name: "slotsPerProposal";
577
+ type: {
578
+ option: "u64";
579
+ };
580
+ },
581
+ {
582
+ name: "twapInitialObservation";
583
+ type: {
584
+ option: "u128";
585
+ };
586
+ },
587
+ {
588
+ name: "twapMaxObservationChangePerUpdate";
589
+ type: {
590
+ option: "u128";
591
+ };
592
+ },
593
+ {
594
+ name: "minQuoteFutarchicLiquidity";
595
+ type: {
596
+ option: "u64";
597
+ };
598
+ },
599
+ {
600
+ name: "minBaseFutarchicLiquidity";
601
+ type: {
602
+ option: "u64";
603
+ };
604
+ }
605
+ ];
606
+ };
607
+ },
608
+ {
609
+ name: "ProposalAccount";
610
+ type: {
611
+ kind: "struct";
612
+ fields: [
613
+ {
614
+ name: "pubkey";
615
+ type: "publicKey";
616
+ },
617
+ {
618
+ name: "isSigner";
619
+ type: "bool";
620
+ },
621
+ {
622
+ name: "isWritable";
623
+ type: "bool";
624
+ }
625
+ ];
626
+ };
627
+ },
628
+ {
629
+ name: "ProposalInstruction";
630
+ type: {
631
+ kind: "struct";
632
+ fields: [
633
+ {
634
+ name: "programId";
635
+ type: "publicKey";
636
+ },
637
+ {
638
+ name: "accounts";
639
+ type: {
640
+ vec: {
641
+ defined: "ProposalAccount";
642
+ };
643
+ };
644
+ },
645
+ {
646
+ name: "data";
647
+ type: "bytes";
648
+ }
649
+ ];
650
+ };
651
+ },
652
+ {
653
+ name: "ProposalState";
654
+ type: {
655
+ kind: "enum";
656
+ variants: [
657
+ {
658
+ name: "Pending";
659
+ },
660
+ {
661
+ name: "Passed";
662
+ },
663
+ {
664
+ name: "Failed";
665
+ },
666
+ {
667
+ name: "Executed";
668
+ }
669
+ ];
670
+ };
671
+ }
672
+ ];
673
+ events: [
674
+ {
675
+ name: "InitializeDaoEvent";
676
+ fields: [
677
+ {
678
+ name: "common";
679
+ type: {
680
+ defined: "CommonFields";
681
+ };
682
+ index: false;
683
+ },
684
+ {
685
+ name: "dao";
686
+ type: "publicKey";
687
+ index: false;
688
+ },
689
+ {
690
+ name: "tokenMint";
691
+ type: "publicKey";
692
+ index: false;
693
+ },
694
+ {
695
+ name: "usdcMint";
696
+ type: "publicKey";
697
+ index: false;
698
+ },
699
+ {
700
+ name: "treasury";
701
+ type: "publicKey";
702
+ index: false;
703
+ },
704
+ {
705
+ name: "passThresholdBps";
706
+ type: "u16";
707
+ index: false;
708
+ },
709
+ {
710
+ name: "slotsPerProposal";
711
+ type: "u64";
712
+ index: false;
713
+ },
714
+ {
715
+ name: "twapInitialObservation";
716
+ type: "u128";
717
+ index: false;
718
+ },
719
+ {
720
+ name: "twapMaxObservationChangePerUpdate";
721
+ type: "u128";
722
+ index: false;
723
+ },
724
+ {
725
+ name: "minQuoteFutarchicLiquidity";
726
+ type: "u64";
727
+ index: false;
728
+ },
729
+ {
730
+ name: "minBaseFutarchicLiquidity";
731
+ type: "u64";
732
+ index: false;
733
+ }
734
+ ];
735
+ },
736
+ {
737
+ name: "UpdateDaoEvent";
738
+ fields: [
739
+ {
740
+ name: "common";
741
+ type: {
742
+ defined: "CommonFields";
743
+ };
744
+ index: false;
745
+ },
746
+ {
747
+ name: "dao";
748
+ type: "publicKey";
749
+ index: false;
750
+ },
751
+ {
752
+ name: "passThresholdBps";
753
+ type: "u16";
754
+ index: false;
755
+ },
756
+ {
757
+ name: "slotsPerProposal";
758
+ type: "u64";
759
+ index: false;
760
+ },
761
+ {
762
+ name: "twapInitialObservation";
763
+ type: "u128";
764
+ index: false;
765
+ },
766
+ {
767
+ name: "twapMaxObservationChangePerUpdate";
768
+ type: "u128";
769
+ index: false;
770
+ },
771
+ {
772
+ name: "minQuoteFutarchicLiquidity";
773
+ type: "u64";
774
+ index: false;
775
+ },
776
+ {
777
+ name: "minBaseFutarchicLiquidity";
778
+ type: "u64";
779
+ index: false;
780
+ }
781
+ ];
782
+ },
783
+ {
784
+ name: "InitializeProposalEvent";
785
+ fields: [
786
+ {
787
+ name: "common";
788
+ type: {
789
+ defined: "CommonFields";
790
+ };
791
+ index: false;
792
+ },
793
+ {
794
+ name: "proposal";
795
+ type: "publicKey";
796
+ index: false;
797
+ },
798
+ {
799
+ name: "dao";
800
+ type: "publicKey";
801
+ index: false;
802
+ },
803
+ {
804
+ name: "question";
805
+ type: "publicKey";
806
+ index: false;
807
+ },
808
+ {
809
+ name: "quoteVault";
810
+ type: "publicKey";
811
+ index: false;
812
+ },
813
+ {
814
+ name: "baseVault";
815
+ type: "publicKey";
816
+ index: false;
817
+ },
818
+ {
819
+ name: "passAmm";
820
+ type: "publicKey";
821
+ index: false;
822
+ },
823
+ {
824
+ name: "failAmm";
825
+ type: "publicKey";
826
+ index: false;
827
+ },
828
+ {
829
+ name: "passLpMint";
830
+ type: "publicKey";
831
+ index: false;
832
+ },
833
+ {
834
+ name: "failLpMint";
835
+ type: "publicKey";
836
+ index: false;
837
+ },
838
+ {
839
+ name: "proposer";
840
+ type: "publicKey";
841
+ index: false;
842
+ },
843
+ {
844
+ name: "nonce";
845
+ type: "u64";
846
+ index: false;
847
+ },
848
+ {
849
+ name: "number";
850
+ type: "u32";
851
+ index: false;
852
+ },
853
+ {
854
+ name: "passLpTokensLocked";
855
+ type: "u64";
856
+ index: false;
857
+ },
858
+ {
859
+ name: "failLpTokensLocked";
860
+ type: "u64";
861
+ index: false;
862
+ },
863
+ {
864
+ name: "pdaBump";
865
+ type: "u8";
866
+ index: false;
867
+ },
868
+ {
869
+ name: "instruction";
870
+ type: {
871
+ defined: "ProposalInstruction";
872
+ };
873
+ index: false;
874
+ },
875
+ {
876
+ name: "durationInSlots";
877
+ type: "u64";
878
+ index: false;
879
+ }
880
+ ];
881
+ },
882
+ {
883
+ name: "FinalizeProposalEvent";
884
+ fields: [
885
+ {
886
+ name: "common";
887
+ type: {
888
+ defined: "CommonFields";
889
+ };
890
+ index: false;
891
+ },
892
+ {
893
+ name: "proposal";
894
+ type: "publicKey";
895
+ index: false;
896
+ },
897
+ {
898
+ name: "dao";
899
+ type: "publicKey";
900
+ index: false;
901
+ },
902
+ {
903
+ name: "passMarketTwap";
904
+ type: "u128";
905
+ index: false;
906
+ },
907
+ {
908
+ name: "failMarketTwap";
909
+ type: "u128";
910
+ index: false;
911
+ },
912
+ {
913
+ name: "threshold";
914
+ type: "u128";
915
+ index: false;
916
+ },
917
+ {
918
+ name: "state";
919
+ type: {
920
+ defined: "ProposalState";
921
+ };
922
+ index: false;
923
+ }
924
+ ];
925
+ },
926
+ {
927
+ name: "ExecuteProposalEvent";
928
+ fields: [
929
+ {
930
+ name: "common";
931
+ type: {
932
+ defined: "CommonFields";
933
+ };
934
+ index: false;
935
+ },
936
+ {
937
+ name: "proposal";
938
+ type: "publicKey";
939
+ index: false;
940
+ },
941
+ {
942
+ name: "dao";
943
+ type: "publicKey";
944
+ index: false;
945
+ }
946
+ ];
947
+ }
948
+ ];
949
+ errors: [
950
+ {
951
+ code: 6000;
952
+ name: "AmmTooOld";
953
+ msg: "Amms must have been created within 5 minutes (counted in slots) of proposal initialization";
954
+ },
955
+ {
956
+ code: 6001;
957
+ name: "InvalidInitialObservation";
958
+ msg: "An amm has an `initial_observation` that doesn't match the `dao`'s config";
959
+ },
960
+ {
961
+ code: 6002;
962
+ name: "InvalidMaxObservationChange";
963
+ msg: "An amm has a `max_observation_change_per_update` that doesn't match the `dao`'s config";
964
+ },
965
+ {
966
+ code: 6003;
967
+ name: "InvalidStartDelaySlots";
968
+ msg: "An amm has a `start_delay_slots` that doesn't match the `dao`'s config";
969
+ },
970
+ {
971
+ code: 6004;
972
+ name: "InvalidSettlementAuthority";
973
+ msg: "One of the vaults has an invalid `settlement_authority`";
974
+ },
975
+ {
976
+ code: 6005;
977
+ name: "ProposalTooYoung";
978
+ msg: "Proposal is too young to be executed or rejected";
979
+ },
980
+ {
981
+ code: 6006;
982
+ name: "MarketsTooYoung";
983
+ msg: "Markets too young for proposal to be finalized. TWAP might need to be cranked";
984
+ },
985
+ {
986
+ code: 6007;
987
+ name: "ProposalAlreadyFinalized";
988
+ msg: "This proposal has already been finalized";
989
+ },
990
+ {
991
+ code: 6008;
992
+ name: "InvalidVaultNonce";
993
+ msg: "A conditional vault has an invalid nonce. A nonce should encode the proposal number";
994
+ },
995
+ {
996
+ code: 6009;
997
+ name: "ProposalNotPassed";
998
+ msg: "This proposal can't be executed because it isn't in the passed state";
999
+ },
1000
+ {
1001
+ code: 6010;
1002
+ name: "InsufficientLpTokenBalance";
1003
+ msg: "The proposer has fewer pass or fail LP tokens than they requested to lock";
1004
+ },
1005
+ {
1006
+ code: 6011;
1007
+ name: "InsufficientLpTokenLock";
1008
+ msg: "The LP tokens passed in have less liquidity than the DAO's `min_quote_futarchic_liquidity` or `min_base_futachic_liquidity`";
1009
+ },
1010
+ {
1011
+ code: 6012;
1012
+ name: "ProposalDurationTooShort";
1013
+ msg: "Proposal duration must be longer than TWAP start delay";
1014
+ },
1015
+ {
1016
+ code: 6013;
1017
+ name: "QuestionMustBeBinary";
1018
+ msg: "Question must have exactly 2 outcomes for binary futarchy";
1019
+ }
1020
+ ];
1021
+ };
1022
+ export declare const IDL: Autocrat;