@metadaoproject/futarchy 0.3.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 (52) hide show
  1. package/dist/AmmClient.d.ts +191 -0
  2. package/dist/AmmClient.js +278 -0
  3. package/dist/AmmClient.js.map +1 -0
  4. package/dist/AutocratClient.d.ts +284 -0
  5. package/dist/AutocratClient.js +229 -0
  6. package/dist/AutocratClient.js.map +1 -0
  7. package/dist/ConditionalVaultClient.d.ts +146 -0
  8. package/dist/ConditionalVaultClient.js +124 -0
  9. package/dist/ConditionalVaultClient.js.map +1 -0
  10. package/dist/InstructionHandler.d.ts +27 -0
  11. package/dist/InstructionHandler.js +95 -0
  12. package/dist/InstructionHandler.js.map +1 -0
  13. package/dist/constants.d.ts +9 -0
  14. package/dist/constants.js +13 -0
  15. package/dist/constants.js.map +1 -0
  16. package/dist/index.d.ts +6 -0
  17. package/dist/index.js +23 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/types/amm.d.ts +542 -0
  20. package/dist/types/amm.js +545 -0
  21. package/dist/types/amm.js.map +1 -0
  22. package/dist/types/autocrat.d.ts +632 -0
  23. package/dist/types/autocrat.js +635 -0
  24. package/dist/types/autocrat.js.map +1 -0
  25. package/dist/types/conditional_vault.d.ts +448 -0
  26. package/dist/types/conditional_vault.js +451 -0
  27. package/dist/types/conditional_vault.js.map +1 -0
  28. package/dist/types/index.d.ts +20 -0
  29. package/dist/types/index.js +10 -0
  30. package/dist/types/index.js.map +1 -0
  31. package/dist/utils/cu.d.ts +8 -0
  32. package/dist/utils/cu.js +12 -0
  33. package/dist/utils/cu.js.map +1 -0
  34. package/dist/utils/filters.d.ts +3 -0
  35. package/dist/utils/filters.js +19 -0
  36. package/dist/utils/filters.js.map +1 -0
  37. package/dist/utils/index.d.ts +17 -0
  38. package/dist/utils/index.js +51 -0
  39. package/dist/utils/index.js.map +1 -0
  40. package/dist/utils/instruction.d.ts +4 -0
  41. package/dist/utils/instruction.js +14 -0
  42. package/dist/utils/instruction.js.map +1 -0
  43. package/dist/utils/metadata.d.ts +4 -0
  44. package/dist/utils/metadata.js +30 -0
  45. package/dist/utils/metadata.js.map +1 -0
  46. package/dist/utils/pda.d.ts +10 -0
  47. package/dist/utils/pda.js +58 -0
  48. package/dist/utils/pda.js.map +1 -0
  49. package/dist/utils/priceMath.d.ts +9 -0
  50. package/dist/utils/priceMath.js +42 -0
  51. package/dist/utils/priceMath.js.map +1 -0
  52. package/package.json +35 -0
@@ -0,0 +1,635 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IDL = void 0;
4
+ exports.IDL = {
5
+ version: "0.3.0",
6
+ name: "autocrat",
7
+ instructions: [
8
+ {
9
+ name: "initializeDao",
10
+ accounts: [
11
+ {
12
+ name: "dao",
13
+ isMut: true,
14
+ isSigner: true,
15
+ },
16
+ {
17
+ name: "payer",
18
+ isMut: true,
19
+ isSigner: true,
20
+ },
21
+ {
22
+ name: "systemProgram",
23
+ isMut: false,
24
+ isSigner: false,
25
+ },
26
+ {
27
+ name: "tokenMint",
28
+ isMut: false,
29
+ isSigner: false,
30
+ },
31
+ {
32
+ name: "usdcMint",
33
+ isMut: false,
34
+ isSigner: false,
35
+ },
36
+ ],
37
+ args: [
38
+ {
39
+ name: "params",
40
+ type: {
41
+ defined: "InitializeDaoParams",
42
+ },
43
+ },
44
+ ],
45
+ },
46
+ {
47
+ name: "initializeProposal",
48
+ accounts: [
49
+ {
50
+ name: "proposal",
51
+ isMut: true,
52
+ isSigner: false,
53
+ },
54
+ {
55
+ name: "dao",
56
+ isMut: true,
57
+ isSigner: false,
58
+ },
59
+ {
60
+ name: "quoteVault",
61
+ isMut: false,
62
+ isSigner: false,
63
+ },
64
+ {
65
+ name: "baseVault",
66
+ isMut: false,
67
+ isSigner: false,
68
+ },
69
+ {
70
+ name: "passAmm",
71
+ isMut: false,
72
+ isSigner: false,
73
+ },
74
+ {
75
+ name: "passLpMint",
76
+ isMut: false,
77
+ isSigner: false,
78
+ },
79
+ {
80
+ name: "failLpMint",
81
+ isMut: false,
82
+ isSigner: false,
83
+ },
84
+ {
85
+ name: "failAmm",
86
+ isMut: false,
87
+ isSigner: false,
88
+ },
89
+ {
90
+ name: "passLpUserAccount",
91
+ isMut: true,
92
+ isSigner: false,
93
+ },
94
+ {
95
+ name: "failLpUserAccount",
96
+ isMut: true,
97
+ isSigner: false,
98
+ },
99
+ {
100
+ name: "passLpVaultAccount",
101
+ isMut: true,
102
+ isSigner: false,
103
+ },
104
+ {
105
+ name: "failLpVaultAccount",
106
+ isMut: true,
107
+ isSigner: false,
108
+ },
109
+ {
110
+ name: "proposer",
111
+ isMut: true,
112
+ isSigner: true,
113
+ },
114
+ {
115
+ name: "tokenProgram",
116
+ isMut: false,
117
+ isSigner: false,
118
+ },
119
+ {
120
+ name: "systemProgram",
121
+ isMut: false,
122
+ isSigner: false,
123
+ },
124
+ ],
125
+ args: [
126
+ {
127
+ name: "params",
128
+ type: {
129
+ defined: "InitializeProposalParams",
130
+ },
131
+ },
132
+ ],
133
+ },
134
+ {
135
+ name: "finalizeProposal",
136
+ accounts: [
137
+ {
138
+ name: "proposal",
139
+ isMut: true,
140
+ isSigner: false,
141
+ },
142
+ {
143
+ name: "passAmm",
144
+ isMut: false,
145
+ isSigner: false,
146
+ },
147
+ {
148
+ name: "failAmm",
149
+ isMut: false,
150
+ isSigner: false,
151
+ },
152
+ {
153
+ name: "dao",
154
+ isMut: false,
155
+ isSigner: false,
156
+ },
157
+ {
158
+ name: "baseVault",
159
+ isMut: true,
160
+ isSigner: false,
161
+ },
162
+ {
163
+ name: "quoteVault",
164
+ isMut: true,
165
+ isSigner: false,
166
+ },
167
+ {
168
+ name: "treasury",
169
+ isMut: false,
170
+ isSigner: false,
171
+ },
172
+ {
173
+ name: "passLpUserAccount",
174
+ isMut: true,
175
+ isSigner: false,
176
+ },
177
+ {
178
+ name: "failLpUserAccount",
179
+ isMut: true,
180
+ isSigner: false,
181
+ },
182
+ {
183
+ name: "passLpVaultAccount",
184
+ isMut: true,
185
+ isSigner: false,
186
+ },
187
+ {
188
+ name: "failLpVaultAccount",
189
+ isMut: true,
190
+ isSigner: false,
191
+ },
192
+ {
193
+ name: "tokenProgram",
194
+ isMut: false,
195
+ isSigner: false,
196
+ },
197
+ {
198
+ name: "vaultProgram",
199
+ isMut: false,
200
+ isSigner: false,
201
+ },
202
+ ],
203
+ args: [],
204
+ },
205
+ {
206
+ name: "executeProposal",
207
+ accounts: [
208
+ {
209
+ name: "proposal",
210
+ isMut: true,
211
+ isSigner: false,
212
+ },
213
+ {
214
+ name: "dao",
215
+ isMut: false,
216
+ isSigner: false,
217
+ },
218
+ ],
219
+ args: [],
220
+ },
221
+ {
222
+ name: "updateDao",
223
+ accounts: [
224
+ {
225
+ name: "dao",
226
+ isMut: true,
227
+ isSigner: false,
228
+ },
229
+ {
230
+ name: "treasury",
231
+ isMut: false,
232
+ isSigner: true,
233
+ },
234
+ ],
235
+ args: [
236
+ {
237
+ name: "daoParams",
238
+ type: {
239
+ defined: "UpdateDaoParams",
240
+ },
241
+ },
242
+ ],
243
+ },
244
+ ],
245
+ accounts: [
246
+ {
247
+ name: "dao",
248
+ type: {
249
+ kind: "struct",
250
+ fields: [
251
+ {
252
+ name: "treasuryPdaBump",
253
+ type: "u8",
254
+ },
255
+ {
256
+ name: "treasury",
257
+ type: "publicKey",
258
+ },
259
+ {
260
+ name: "tokenMint",
261
+ type: "publicKey",
262
+ },
263
+ {
264
+ name: "usdcMint",
265
+ type: "publicKey",
266
+ },
267
+ {
268
+ name: "proposalCount",
269
+ type: "u32",
270
+ },
271
+ {
272
+ name: "passThresholdBps",
273
+ type: "u16",
274
+ },
275
+ {
276
+ name: "slotsPerProposal",
277
+ type: "u64",
278
+ },
279
+ {
280
+ name: "twapInitialObservation",
281
+ docs: [
282
+ "For manipulation-resistance the TWAP is a time-weighted average observation,",
283
+ "where observation tries to approximate price but can only move by",
284
+ "`twap_max_observation_change_per_update` per update. Because it can only move",
285
+ "a little bit per update, you need to check that it has a good initial observation.",
286
+ "Otherwise, an attacker could create a very high initial observation in the pass",
287
+ "market and a very low one in the fail market to force the proposal to pass.",
288
+ "",
289
+ "We recommend setting an initial observation around the spot price of the token,",
290
+ "and max observation change per update around 2% the spot price of the token.",
291
+ "For example, if the spot price of META is $400, we'd recommend setting an initial",
292
+ "observation of 400 (converted into the AMM prices) and a max observation change per",
293
+ "update of 8 (also converted into the AMM prices). Observations can be updated once",
294
+ "a minute, so 2% allows the proposal market to reach double the spot price or 0",
295
+ "in 50 minutes.",
296
+ ],
297
+ type: "u128",
298
+ },
299
+ {
300
+ name: "twapMaxObservationChangePerUpdate",
301
+ type: "u128",
302
+ },
303
+ {
304
+ name: "minQuoteFutarchicLiquidity",
305
+ docs: [
306
+ "As an anti-spam measure and to help liquidity, you need to lock up some liquidity",
307
+ "in both futarchic markets in order to create a proposal.",
308
+ "",
309
+ "For example, for META, we can use a `min_quote_futarchic_liquidity` of",
310
+ "5000 * 1_000_000 (5000 USDC) and a `min_base_futarchic_liquidity` of",
311
+ "10 * 1_000_000_000 (10 META).",
312
+ ],
313
+ type: "u64",
314
+ },
315
+ {
316
+ name: "minBaseFutarchicLiquidity",
317
+ type: "u64",
318
+ },
319
+ ],
320
+ },
321
+ },
322
+ {
323
+ name: "proposal",
324
+ type: {
325
+ kind: "struct",
326
+ fields: [
327
+ {
328
+ name: "number",
329
+ type: "u32",
330
+ },
331
+ {
332
+ name: "proposer",
333
+ type: "publicKey",
334
+ },
335
+ {
336
+ name: "descriptionUrl",
337
+ type: "string",
338
+ },
339
+ {
340
+ name: "slotEnqueued",
341
+ type: "u64",
342
+ },
343
+ {
344
+ name: "state",
345
+ type: {
346
+ defined: "ProposalState",
347
+ },
348
+ },
349
+ {
350
+ name: "instruction",
351
+ type: {
352
+ defined: "ProposalInstruction",
353
+ },
354
+ },
355
+ {
356
+ name: "passAmm",
357
+ type: "publicKey",
358
+ },
359
+ {
360
+ name: "failAmm",
361
+ type: "publicKey",
362
+ },
363
+ {
364
+ name: "baseVault",
365
+ type: "publicKey",
366
+ },
367
+ {
368
+ name: "quoteVault",
369
+ type: "publicKey",
370
+ },
371
+ {
372
+ name: "dao",
373
+ type: "publicKey",
374
+ },
375
+ {
376
+ name: "passLpTokensLocked",
377
+ type: "u64",
378
+ },
379
+ {
380
+ name: "failLpTokensLocked",
381
+ type: "u64",
382
+ },
383
+ {
384
+ name: "nonce",
385
+ docs: [
386
+ "We need to include a per-proposer nonce to prevent some weird proposal",
387
+ "front-running edge cases. Using a `u64` means that proposers are unlikely",
388
+ "to run into collisions, even if they generate nonces randomly - I've run",
389
+ "the math :D",
390
+ ],
391
+ type: "u64",
392
+ },
393
+ {
394
+ name: "pdaBump",
395
+ type: "u8",
396
+ },
397
+ ],
398
+ },
399
+ },
400
+ ],
401
+ types: [
402
+ {
403
+ name: "InitializeDaoParams",
404
+ type: {
405
+ kind: "struct",
406
+ fields: [
407
+ {
408
+ name: "twapInitialObservation",
409
+ type: "u128",
410
+ },
411
+ {
412
+ name: "twapMaxObservationChangePerUpdate",
413
+ type: "u128",
414
+ },
415
+ {
416
+ name: "minQuoteFutarchicLiquidity",
417
+ type: "u64",
418
+ },
419
+ {
420
+ name: "minBaseFutarchicLiquidity",
421
+ type: "u64",
422
+ },
423
+ {
424
+ name: "passThresholdBps",
425
+ type: {
426
+ option: "u16",
427
+ },
428
+ },
429
+ {
430
+ name: "slotsPerProposal",
431
+ type: {
432
+ option: "u64",
433
+ },
434
+ },
435
+ ],
436
+ },
437
+ },
438
+ {
439
+ name: "InitializeProposalParams",
440
+ type: {
441
+ kind: "struct",
442
+ fields: [
443
+ {
444
+ name: "descriptionUrl",
445
+ type: "string",
446
+ },
447
+ {
448
+ name: "instruction",
449
+ type: {
450
+ defined: "ProposalInstruction",
451
+ },
452
+ },
453
+ {
454
+ name: "passLpTokensToLock",
455
+ type: "u64",
456
+ },
457
+ {
458
+ name: "failLpTokensToLock",
459
+ type: "u64",
460
+ },
461
+ {
462
+ name: "nonce",
463
+ type: "u64",
464
+ },
465
+ ],
466
+ },
467
+ },
468
+ {
469
+ name: "UpdateDaoParams",
470
+ type: {
471
+ kind: "struct",
472
+ fields: [
473
+ {
474
+ name: "passThresholdBps",
475
+ type: {
476
+ option: "u16",
477
+ },
478
+ },
479
+ {
480
+ name: "slotsPerProposal",
481
+ type: {
482
+ option: "u64",
483
+ },
484
+ },
485
+ {
486
+ name: "twapInitialObservation",
487
+ type: {
488
+ option: "u128",
489
+ },
490
+ },
491
+ {
492
+ name: "twapMaxObservationChangePerUpdate",
493
+ type: {
494
+ option: "u128",
495
+ },
496
+ },
497
+ {
498
+ name: "minQuoteFutarchicLiquidity",
499
+ type: {
500
+ option: "u64",
501
+ },
502
+ },
503
+ {
504
+ name: "minBaseFutarchicLiquidity",
505
+ type: {
506
+ option: "u64",
507
+ },
508
+ },
509
+ ],
510
+ },
511
+ },
512
+ {
513
+ name: "ProposalAccount",
514
+ type: {
515
+ kind: "struct",
516
+ fields: [
517
+ {
518
+ name: "pubkey",
519
+ type: "publicKey",
520
+ },
521
+ {
522
+ name: "isSigner",
523
+ type: "bool",
524
+ },
525
+ {
526
+ name: "isWritable",
527
+ type: "bool",
528
+ },
529
+ ],
530
+ },
531
+ },
532
+ {
533
+ name: "ProposalInstruction",
534
+ type: {
535
+ kind: "struct",
536
+ fields: [
537
+ {
538
+ name: "programId",
539
+ type: "publicKey",
540
+ },
541
+ {
542
+ name: "accounts",
543
+ type: {
544
+ vec: {
545
+ defined: "ProposalAccount",
546
+ },
547
+ },
548
+ },
549
+ {
550
+ name: "data",
551
+ type: "bytes",
552
+ },
553
+ ],
554
+ },
555
+ },
556
+ {
557
+ name: "ProposalState",
558
+ type: {
559
+ kind: "enum",
560
+ variants: [
561
+ {
562
+ name: "Pending",
563
+ },
564
+ {
565
+ name: "Passed",
566
+ },
567
+ {
568
+ name: "Failed",
569
+ },
570
+ {
571
+ name: "Executed",
572
+ },
573
+ ],
574
+ },
575
+ },
576
+ ],
577
+ errors: [
578
+ {
579
+ code: 6000,
580
+ name: "AmmTooOld",
581
+ msg: "Amms must have been created within 5 minutes (counted in slots) of proposal initialization",
582
+ },
583
+ {
584
+ code: 6001,
585
+ name: "InvalidInitialObservation",
586
+ msg: "An amm has an `initial_observation` that doesn't match the `dao`'s config",
587
+ },
588
+ {
589
+ code: 6002,
590
+ name: "InvalidMaxObservationChange",
591
+ msg: "An amm has a `max_observation_change_per_update` that doesn't match the `dao`'s config",
592
+ },
593
+ {
594
+ code: 6003,
595
+ name: "InvalidSettlementAuthority",
596
+ msg: "One of the vaults has an invalid `settlement_authority`",
597
+ },
598
+ {
599
+ code: 6004,
600
+ name: "ProposalTooYoung",
601
+ msg: "Proposal is too young to be executed or rejected",
602
+ },
603
+ {
604
+ code: 6005,
605
+ name: "MarketsTooYoung",
606
+ msg: "Markets too young for proposal to be finalized. TWAP might need to be cranked",
607
+ },
608
+ {
609
+ code: 6006,
610
+ name: "ProposalAlreadyFinalized",
611
+ msg: "This proposal has already been finalized",
612
+ },
613
+ {
614
+ code: 6007,
615
+ name: "InvalidVaultNonce",
616
+ msg: "A conditional vault has an invalid nonce. A nonce should encode the proposal number",
617
+ },
618
+ {
619
+ code: 6008,
620
+ name: "ProposalNotPassed",
621
+ msg: "This proposal can't be executed because it isn't in the passed state",
622
+ },
623
+ {
624
+ code: 6009,
625
+ name: "InsufficientLpTokenBalance",
626
+ msg: "The proposer has fewer pass or fail LP tokens than they requested to lock",
627
+ },
628
+ {
629
+ code: 6010,
630
+ name: "InsufficientLpTokenLock",
631
+ msg: "The LP tokens passed in have less liquidity than the DAO's `min_quote_futarchic_liquidity` or `min_base_futachic_liquidity`",
632
+ },
633
+ ],
634
+ };
635
+ //# sourceMappingURL=autocrat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocrat.js","sourceRoot":"","sources":["../../src/types/autocrat.ts"],"names":[],"mappings":"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"}