@metadaoproject/futarchy 0.3.0-alpha.11 → 0.3.0-alpha.12

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.
@@ -1,7 +1,222 @@
1
1
  export type ConditionalVault = {
2
- version: "0.3.0";
2
+ version: "0.4.0";
3
3
  name: "conditional_vault";
4
4
  instructions: [
5
+ {
6
+ name: "initializeQuestion";
7
+ accounts: [
8
+ {
9
+ name: "question";
10
+ isMut: true;
11
+ isSigner: false;
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
+ args: [
25
+ {
26
+ name: "args";
27
+ type: {
28
+ defined: "InitializeQuestionArgs";
29
+ };
30
+ }
31
+ ];
32
+ },
33
+ {
34
+ name: "resolveQuestion";
35
+ accounts: [
36
+ {
37
+ name: "question";
38
+ isMut: true;
39
+ isSigner: false;
40
+ },
41
+ {
42
+ name: "oracle";
43
+ isMut: false;
44
+ isSigner: true;
45
+ }
46
+ ];
47
+ args: [
48
+ {
49
+ name: "args";
50
+ type: {
51
+ defined: "ResolveQuestionArgs";
52
+ };
53
+ }
54
+ ];
55
+ },
56
+ {
57
+ name: "initializeNewConditionalVault";
58
+ accounts: [
59
+ {
60
+ name: "vault";
61
+ isMut: true;
62
+ isSigner: false;
63
+ },
64
+ {
65
+ name: "question";
66
+ isMut: false;
67
+ isSigner: false;
68
+ },
69
+ {
70
+ name: "underlyingTokenMint";
71
+ isMut: false;
72
+ isSigner: false;
73
+ },
74
+ {
75
+ name: "vaultUnderlyingTokenAccount";
76
+ isMut: false;
77
+ isSigner: false;
78
+ },
79
+ {
80
+ name: "payer";
81
+ isMut: true;
82
+ isSigner: true;
83
+ },
84
+ {
85
+ name: "tokenProgram";
86
+ isMut: false;
87
+ isSigner: false;
88
+ },
89
+ {
90
+ name: "associatedTokenProgram";
91
+ isMut: false;
92
+ isSigner: false;
93
+ },
94
+ {
95
+ name: "systemProgram";
96
+ isMut: false;
97
+ isSigner: false;
98
+ }
99
+ ];
100
+ args: [];
101
+ },
102
+ {
103
+ name: "splitTokens";
104
+ accounts: [
105
+ {
106
+ name: "question";
107
+ isMut: false;
108
+ isSigner: false;
109
+ },
110
+ {
111
+ name: "vault";
112
+ isMut: false;
113
+ isSigner: false;
114
+ },
115
+ {
116
+ name: "vaultUnderlyingTokenAccount";
117
+ isMut: true;
118
+ isSigner: false;
119
+ },
120
+ {
121
+ name: "authority";
122
+ isMut: false;
123
+ isSigner: true;
124
+ },
125
+ {
126
+ name: "userUnderlyingTokenAccount";
127
+ isMut: true;
128
+ isSigner: false;
129
+ },
130
+ {
131
+ name: "tokenProgram";
132
+ isMut: false;
133
+ isSigner: false;
134
+ }
135
+ ];
136
+ args: [
137
+ {
138
+ name: "amount";
139
+ type: "u64";
140
+ }
141
+ ];
142
+ },
143
+ {
144
+ name: "mergeTokens";
145
+ accounts: [
146
+ {
147
+ name: "question";
148
+ isMut: false;
149
+ isSigner: false;
150
+ },
151
+ {
152
+ name: "vault";
153
+ isMut: false;
154
+ isSigner: false;
155
+ },
156
+ {
157
+ name: "vaultUnderlyingTokenAccount";
158
+ isMut: true;
159
+ isSigner: false;
160
+ },
161
+ {
162
+ name: "authority";
163
+ isMut: false;
164
+ isSigner: true;
165
+ },
166
+ {
167
+ name: "userUnderlyingTokenAccount";
168
+ isMut: true;
169
+ isSigner: false;
170
+ },
171
+ {
172
+ name: "tokenProgram";
173
+ isMut: false;
174
+ isSigner: false;
175
+ }
176
+ ];
177
+ args: [
178
+ {
179
+ name: "amount";
180
+ type: "u64";
181
+ }
182
+ ];
183
+ },
184
+ {
185
+ name: "redeemTokens";
186
+ accounts: [
187
+ {
188
+ name: "question";
189
+ isMut: false;
190
+ isSigner: false;
191
+ },
192
+ {
193
+ name: "vault";
194
+ isMut: false;
195
+ isSigner: false;
196
+ },
197
+ {
198
+ name: "vaultUnderlyingTokenAccount";
199
+ isMut: true;
200
+ isSigner: false;
201
+ },
202
+ {
203
+ name: "authority";
204
+ isMut: false;
205
+ isSigner: true;
206
+ },
207
+ {
208
+ name: "userUnderlyingTokenAccount";
209
+ isMut: true;
210
+ isSigner: false;
211
+ },
212
+ {
213
+ name: "tokenProgram";
214
+ isMut: false;
215
+ isSigner: false;
216
+ }
217
+ ];
218
+ args: [];
219
+ },
5
220
  {
6
221
  name: "initializeConditionalVault";
7
222
  accounts: [
@@ -316,6 +531,90 @@ export type ConditionalVault = {
316
531
  }
317
532
  ];
318
533
  accounts: [
534
+ {
535
+ name: "question";
536
+ docs: [
537
+ "Questions represent statements about future events.",
538
+ "",
539
+ "These statements include:",
540
+ '- "Will this proposal pass?"',
541
+ '- "Who, if anyone, will be hired?"',
542
+ '- "How effective will the grant committee deem this grant?"',
543
+ "",
544
+ 'Questions have 2 or more possible outcomes. For a question like "will this',
545
+ 'proposal pass," the outcomes are "yes" and "no." For a question like "who',
546
+ 'will be hired," the outcomes could be "Alice," "Bob," and "neither."',
547
+ "",
548
+ 'Outcomes resolve to a number between 0 and 1. Binary questions like "will',
549
+ 'this proposal pass" have outcomes that resolve to exactly 0 or 1. You can',
550
+ 'also have questions with scalar outcomes. For example, the question "how',
551
+ 'effective will the grant committee deem this grant" could have two outcomes:',
552
+ '"ineffective" and "effective." If the grant committee deems the grant 70%',
553
+ 'effective, the "effective" outcome would resolve to 0.7 and the "ineffective"',
554
+ "outcome would resolve to 0.3.",
555
+ "",
556
+ "Once resolved, the sum of all outcome resolutions is exactly 1."
557
+ ];
558
+ type: {
559
+ kind: "struct";
560
+ fields: [
561
+ {
562
+ name: "questionId";
563
+ type: {
564
+ array: ["u8", 32];
565
+ };
566
+ },
567
+ {
568
+ name: "oracle";
569
+ type: "publicKey";
570
+ },
571
+ {
572
+ name: "payoutNumerators";
573
+ type: {
574
+ vec: "u32";
575
+ };
576
+ },
577
+ {
578
+ name: "payoutDenominator";
579
+ type: "u32";
580
+ }
581
+ ];
582
+ };
583
+ },
584
+ {
585
+ name: "newConditionalVault";
586
+ type: {
587
+ kind: "struct";
588
+ fields: [
589
+ {
590
+ name: "question";
591
+ type: "publicKey";
592
+ },
593
+ {
594
+ name: "underlyingTokenMint";
595
+ type: "publicKey";
596
+ },
597
+ {
598
+ name: "underlyingTokenAccount";
599
+ type: "publicKey";
600
+ },
601
+ {
602
+ name: "conditionalTokenMints";
603
+ type: {
604
+ vec: "publicKey";
605
+ };
606
+ },
607
+ {
608
+ name: "pdaBump";
609
+ type: "u8";
610
+ },
611
+ {
612
+ name: "decimals";
613
+ type: "u8";
614
+ }
615
+ ];
616
+ };
617
+ },
319
618
  {
320
619
  name: "conditionalVault";
321
620
  type: {
@@ -399,6 +698,42 @@ export type ConditionalVault = {
399
698
  ];
400
699
  };
401
700
  },
701
+ {
702
+ name: "InitializeQuestionArgs";
703
+ type: {
704
+ kind: "struct";
705
+ fields: [
706
+ {
707
+ name: "questionId";
708
+ type: {
709
+ array: ["u8", 32];
710
+ };
711
+ },
712
+ {
713
+ name: "oracle";
714
+ type: "publicKey";
715
+ },
716
+ {
717
+ name: "numConditions";
718
+ type: "u8";
719
+ }
720
+ ];
721
+ };
722
+ },
723
+ {
724
+ name: "ResolveQuestionArgs";
725
+ type: {
726
+ kind: "struct";
727
+ fields: [
728
+ {
729
+ name: "payoutNumerators";
730
+ type: {
731
+ vec: "u32";
732
+ };
733
+ }
734
+ ];
735
+ };
736
+ },
402
737
  {
403
738
  name: "VaultStatus";
404
739
  type: {
@@ -442,6 +777,36 @@ export type ConditionalVault = {
442
777
  code: 6004;
443
778
  name: "VaultAlreadySettled";
444
779
  msg: "Once a vault has been settled, its status as either finalized or reverted cannot be changed";
780
+ },
781
+ {
782
+ code: 6005;
783
+ name: "InsufficientNumConditions";
784
+ msg: "Questions need 2 or more conditions";
785
+ },
786
+ {
787
+ code: 6006;
788
+ name: "InvalidNumPayoutNumerators";
789
+ msg: "Invalid number of payout numerators";
790
+ },
791
+ {
792
+ code: 6007;
793
+ name: "InvalidConditionals";
794
+ msg: "Client needs to pass in the list of conditional mints for a vault followed by the user's token accounts for those tokens";
795
+ },
796
+ {
797
+ code: 6008;
798
+ name: "BadConditionalMint";
799
+ msg: "Unable to deserialize a conditional token mint";
800
+ },
801
+ {
802
+ code: 6009;
803
+ name: "BadConditionalTokenAccount";
804
+ msg: "Unable to deserialize a conditional token account";
805
+ },
806
+ {
807
+ code: 6010;
808
+ name: "PayoutZero";
809
+ msg: "Payouts must sum to 1 or more";
445
810
  }
446
811
  ];
447
812
  };