@metadaoproject/futarchy 0.3.0-alpha.10 → 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.
- package/dist/ConditionalVaultClient.d.ts +162 -3
- package/dist/ConditionalVaultClient.js +167 -5
- package/dist/ConditionalVaultClient.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/types/conditional_vault.d.ts +366 -1
- package/dist/types/conditional_vault.js +366 -1
- package/dist/types/conditional_vault.js.map +1 -1
- package/dist/utils/pda.d.ts +2 -0
- package/dist/utils/pda.js +25 -1
- package/dist/utils/pda.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,7 +1,222 @@
|
|
|
1
1
|
export type ConditionalVault = {
|
|
2
|
-
version: "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
|
};
|