@metadaoproject/futarchy 0.4.0-alpha.36 → 0.4.0-alpha.38

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,6 +1,10 @@
1
1
  export type Launchpad = {
2
2
  version: "0.4.0";
3
3
  name: "launchpad";
4
+ docs: [
5
+ "TODO:",
6
+ "- Add a `start_launch` instruction that allows the creator to start the launch"
7
+ ];
4
8
  instructions: [
5
9
  {
6
10
  name: "initializeLaunch";
@@ -10,9 +14,19 @@ export type Launchpad = {
10
14
  isMut: true;
11
15
  isSigner: false;
12
16
  },
17
+ {
18
+ name: "launchTreasury";
19
+ isMut: false;
20
+ isSigner: false;
21
+ },
13
22
  {
14
23
  name: "usdcVault";
15
- isMut: true;
24
+ isMut: false;
25
+ isSigner: false;
26
+ },
27
+ {
28
+ name: "tokenVault";
29
+ isMut: false;
16
30
  isSigner: false;
17
31
  },
18
32
  {
@@ -25,11 +39,26 @@ export type Launchpad = {
25
39
  isMut: false;
26
40
  isSigner: false;
27
41
  },
42
+ {
43
+ name: "daoTreasury";
44
+ isMut: false;
45
+ isSigner: false;
46
+ },
47
+ {
48
+ name: "treasuryUsdcAccount";
49
+ isMut: false;
50
+ isSigner: false;
51
+ },
28
52
  {
29
53
  name: "usdcMint";
30
54
  isMut: false;
31
55
  isSigner: false;
32
56
  },
57
+ {
58
+ name: "tokenMint";
59
+ isMut: false;
60
+ isSigner: false;
61
+ },
33
62
  {
34
63
  name: "tokenProgram";
35
64
  isMut: false;
@@ -44,6 +73,16 @@ export type Launchpad = {
44
73
  name: "systemProgram";
45
74
  isMut: false;
46
75
  isSigner: false;
76
+ },
77
+ {
78
+ name: "eventAuthority";
79
+ isMut: false;
80
+ isSigner: false;
81
+ },
82
+ {
83
+ name: "program";
84
+ isMut: false;
85
+ isSigner: false;
47
86
  }
48
87
  ];
49
88
  args: [
@@ -54,6 +93,274 @@ export type Launchpad = {
54
93
  };
55
94
  }
56
95
  ];
96
+ },
97
+ {
98
+ name: "startLaunch";
99
+ accounts: [
100
+ {
101
+ name: "launch";
102
+ isMut: true;
103
+ isSigner: false;
104
+ },
105
+ {
106
+ name: "creator";
107
+ isMut: false;
108
+ isSigner: true;
109
+ },
110
+ {
111
+ name: "eventAuthority";
112
+ isMut: false;
113
+ isSigner: false;
114
+ },
115
+ {
116
+ name: "program";
117
+ isMut: false;
118
+ isSigner: false;
119
+ }
120
+ ];
121
+ args: [];
122
+ },
123
+ {
124
+ name: "fund";
125
+ accounts: [
126
+ {
127
+ name: "launch";
128
+ isMut: true;
129
+ isSigner: false;
130
+ },
131
+ {
132
+ name: "usdcVault";
133
+ isMut: true;
134
+ isSigner: false;
135
+ },
136
+ {
137
+ name: "tokenMint";
138
+ isMut: true;
139
+ isSigner: false;
140
+ },
141
+ {
142
+ name: "funder";
143
+ isMut: true;
144
+ isSigner: true;
145
+ },
146
+ {
147
+ name: "funderUsdcAccount";
148
+ isMut: true;
149
+ isSigner: false;
150
+ },
151
+ {
152
+ name: "funderTokenAccount";
153
+ isMut: true;
154
+ isSigner: false;
155
+ },
156
+ {
157
+ name: "tokenProgram";
158
+ isMut: false;
159
+ isSigner: false;
160
+ },
161
+ {
162
+ name: "eventAuthority";
163
+ isMut: false;
164
+ isSigner: false;
165
+ },
166
+ {
167
+ name: "program";
168
+ isMut: false;
169
+ isSigner: false;
170
+ }
171
+ ];
172
+ args: [
173
+ {
174
+ name: "amount";
175
+ type: "u64";
176
+ }
177
+ ];
178
+ },
179
+ {
180
+ name: "completeLaunch";
181
+ accounts: [
182
+ {
183
+ name: "launch";
184
+ isMut: true;
185
+ isSigner: false;
186
+ },
187
+ {
188
+ name: "payer";
189
+ isMut: true;
190
+ isSigner: true;
191
+ },
192
+ {
193
+ name: "launchTreasury";
194
+ isMut: true;
195
+ isSigner: false;
196
+ },
197
+ {
198
+ name: "authority";
199
+ isMut: false;
200
+ isSigner: false;
201
+ },
202
+ {
203
+ name: "launchUsdcVault";
204
+ isMut: true;
205
+ isSigner: false;
206
+ },
207
+ {
208
+ name: "launchTokenVault";
209
+ isMut: true;
210
+ isSigner: false;
211
+ },
212
+ {
213
+ name: "treasuryUsdcAccount";
214
+ isMut: true;
215
+ isSigner: false;
216
+ },
217
+ {
218
+ name: "ammConfig";
219
+ isMut: false;
220
+ isSigner: false;
221
+ docs: ["Which config the pool belongs to."];
222
+ },
223
+ {
224
+ name: "poolState";
225
+ isMut: true;
226
+ isSigner: true;
227
+ },
228
+ {
229
+ name: "tokenMint";
230
+ isMut: true;
231
+ isSigner: false;
232
+ docs: ["Token_0 mint, the key must smaller then token_1 mint."];
233
+ },
234
+ {
235
+ name: "usdcMint";
236
+ isMut: false;
237
+ isSigner: false;
238
+ docs: ["Token_1 mint, the key must grater then token_0 mint."];
239
+ },
240
+ {
241
+ name: "lpMint";
242
+ isMut: true;
243
+ isSigner: false;
244
+ },
245
+ {
246
+ name: "lpVault";
247
+ isMut: true;
248
+ isSigner: false;
249
+ },
250
+ {
251
+ name: "poolTokenVault";
252
+ isMut: true;
253
+ isSigner: false;
254
+ },
255
+ {
256
+ name: "poolUsdcVault";
257
+ isMut: true;
258
+ isSigner: false;
259
+ },
260
+ {
261
+ name: "createPoolFee";
262
+ isMut: true;
263
+ isSigner: false;
264
+ docs: ["create pool fee account"];
265
+ },
266
+ {
267
+ name: "observationState";
268
+ isMut: true;
269
+ isSigner: false;
270
+ },
271
+ {
272
+ name: "cpSwapProgram";
273
+ isMut: false;
274
+ isSigner: false;
275
+ },
276
+ {
277
+ name: "associatedTokenProgram";
278
+ isMut: false;
279
+ isSigner: false;
280
+ },
281
+ {
282
+ name: "tokenProgram";
283
+ isMut: false;
284
+ isSigner: false;
285
+ },
286
+ {
287
+ name: "systemProgram";
288
+ isMut: false;
289
+ isSigner: false;
290
+ },
291
+ {
292
+ name: "rent";
293
+ isMut: false;
294
+ isSigner: false;
295
+ },
296
+ {
297
+ name: "eventAuthority";
298
+ isMut: false;
299
+ isSigner: false;
300
+ },
301
+ {
302
+ name: "program";
303
+ isMut: false;
304
+ isSigner: false;
305
+ }
306
+ ];
307
+ args: [];
308
+ },
309
+ {
310
+ name: "refund";
311
+ accounts: [
312
+ {
313
+ name: "launch";
314
+ isMut: true;
315
+ isSigner: false;
316
+ },
317
+ {
318
+ name: "launchUsdcVault";
319
+ isMut: true;
320
+ isSigner: false;
321
+ },
322
+ {
323
+ name: "launchTreasury";
324
+ isMut: true;
325
+ isSigner: false;
326
+ },
327
+ {
328
+ name: "funder";
329
+ isMut: true;
330
+ isSigner: true;
331
+ },
332
+ {
333
+ name: "funderUsdcAccount";
334
+ isMut: true;
335
+ isSigner: false;
336
+ },
337
+ {
338
+ name: "funderTokenAccount";
339
+ isMut: true;
340
+ isSigner: false;
341
+ },
342
+ {
343
+ name: "tokenMint";
344
+ isMut: true;
345
+ isSigner: false;
346
+ },
347
+ {
348
+ name: "tokenProgram";
349
+ isMut: false;
350
+ isSigner: false;
351
+ },
352
+ {
353
+ name: "eventAuthority";
354
+ isMut: false;
355
+ isSigner: false;
356
+ },
357
+ {
358
+ name: "program";
359
+ isMut: false;
360
+ isSigner: false;
361
+ }
362
+ ];
363
+ args: [];
57
364
  }
58
365
  ];
59
366
  accounts: [
@@ -64,45 +371,115 @@ export type Launchpad = {
64
371
  fields: [
65
372
  {
66
373
  name: "minimumRaiseAmount";
374
+ docs: [
375
+ "The minimum amount of USDC that must be raised, otherwise",
376
+ "everyone can get their USDC back."
377
+ ];
67
378
  type: "u64";
68
379
  },
69
380
  {
70
- name: "maximumRaiseAmount";
71
- type: "u64";
381
+ name: "creator";
382
+ docs: ["The creator of the launch."];
383
+ type: "publicKey";
72
384
  },
73
385
  {
74
- name: "isApproved";
75
- type: "bool";
386
+ name: "launchTreasury";
387
+ docs: [
388
+ "The launch treasury address. Needed because Raydium pools need a SOL payer."
389
+ ];
390
+ type: "publicKey";
76
391
  },
77
392
  {
78
- name: "creator";
393
+ name: "launchTreasuryPdaBump";
394
+ docs: ["The PDA bump for the launch treasury."];
395
+ type: "u8";
396
+ },
397
+ {
398
+ name: "launchUsdcVault";
399
+ docs: [
400
+ "The USDC vault that will hold the USDC raised until the launch is over."
401
+ ];
79
402
  type: "publicKey";
80
403
  },
81
404
  {
82
- name: "usdcVault";
405
+ name: "launchTokenVault";
406
+ docs: ["The token vault, used to send tokens to Raydium."];
83
407
  type: "publicKey";
84
408
  },
85
409
  {
86
- name: "committedAmount";
87
- type: "u64";
410
+ name: "tokenMint";
411
+ docs: [
412
+ "The token that will be minted to funders and that will control the DAO."
413
+ ];
414
+ type: "publicKey";
88
415
  },
89
416
  {
90
417
  name: "pdaBump";
418
+ docs: ["The PDA bump."];
91
419
  type: "u8";
92
420
  },
93
421
  {
94
422
  name: "dao";
423
+ docs: [
424
+ "The DAO that will receive the USDC raised once the launch is over."
425
+ ];
95
426
  type: "publicKey";
96
427
  },
97
428
  {
98
429
  name: "daoTreasury";
430
+ docs: ["The DAO's treasury address."];
431
+ type: "publicKey";
432
+ },
433
+ {
434
+ name: "treasuryUsdcAccount";
435
+ docs: ["The DAO treasury's USDC account."];
99
436
  type: "publicKey";
437
+ },
438
+ {
439
+ name: "committedAmount";
440
+ docs: ["The amount of USDC that has been committed by the users."];
441
+ type: "u64";
442
+ },
443
+ {
444
+ name: "seqNum";
445
+ docs: [
446
+ "The sequence number of this launch. Useful for sorting events."
447
+ ];
448
+ type: "u64";
449
+ },
450
+ {
451
+ name: "state";
452
+ docs: ["The state of the launch."];
453
+ type: {
454
+ defined: "LaunchState";
455
+ };
456
+ },
457
+ {
458
+ name: "slotStarted";
459
+ docs: ["The slot when the launch was started."];
460
+ type: "u64";
100
461
  }
101
462
  ];
102
463
  };
103
464
  }
104
465
  ];
105
466
  types: [
467
+ {
468
+ name: "CommonFields";
469
+ type: {
470
+ kind: "struct";
471
+ fields: [
472
+ {
473
+ name: "slot";
474
+ type: "u64";
475
+ },
476
+ {
477
+ name: "unixTimestamp";
478
+ type: "i64";
479
+ }
480
+ ];
481
+ };
482
+ },
106
483
  {
107
484
  name: "InitializeLaunchArgs";
108
485
  type: {
@@ -111,30 +488,230 @@ export type Launchpad = {
111
488
  {
112
489
  name: "minimumRaiseAmount";
113
490
  type: "u64";
491
+ }
492
+ ];
493
+ };
494
+ },
495
+ {
496
+ name: "LaunchState";
497
+ type: {
498
+ kind: "enum";
499
+ variants: [
500
+ {
501
+ name: "Initialized";
114
502
  },
115
503
  {
116
- name: "maximumRaiseAmount";
117
- type: "u64";
504
+ name: "Live";
505
+ },
506
+ {
507
+ name: "Complete";
508
+ },
509
+ {
510
+ name: "Refunding";
118
511
  }
119
512
  ];
120
513
  };
121
514
  }
122
515
  ];
516
+ events: [
517
+ {
518
+ name: "LaunchInitializedEvent";
519
+ fields: [
520
+ {
521
+ name: "common";
522
+ type: {
523
+ defined: "CommonFields";
524
+ };
525
+ index: false;
526
+ },
527
+ {
528
+ name: "launch";
529
+ type: "publicKey";
530
+ index: false;
531
+ },
532
+ {
533
+ name: "dao";
534
+ type: "publicKey";
535
+ index: false;
536
+ },
537
+ {
538
+ name: "daoTreasury";
539
+ type: "publicKey";
540
+ index: false;
541
+ },
542
+ {
543
+ name: "tokenMint";
544
+ type: "publicKey";
545
+ index: false;
546
+ },
547
+ {
548
+ name: "creator";
549
+ type: "publicKey";
550
+ index: false;
551
+ },
552
+ {
553
+ name: "usdcMint";
554
+ type: "publicKey";
555
+ index: false;
556
+ },
557
+ {
558
+ name: "pdaBump";
559
+ type: "u8";
560
+ index: false;
561
+ }
562
+ ];
563
+ },
564
+ {
565
+ name: "LaunchStartedEvent";
566
+ fields: [
567
+ {
568
+ name: "common";
569
+ type: {
570
+ defined: "CommonFields";
571
+ };
572
+ index: false;
573
+ },
574
+ {
575
+ name: "launch";
576
+ type: "publicKey";
577
+ index: false;
578
+ },
579
+ {
580
+ name: "creator";
581
+ type: "publicKey";
582
+ index: false;
583
+ },
584
+ {
585
+ name: "slotStarted";
586
+ type: "u64";
587
+ index: false;
588
+ }
589
+ ];
590
+ },
591
+ {
592
+ name: "LaunchFundedEvent";
593
+ fields: [
594
+ {
595
+ name: "common";
596
+ type: {
597
+ defined: "CommonFields";
598
+ };
599
+ index: false;
600
+ },
601
+ {
602
+ name: "launch";
603
+ type: "publicKey";
604
+ index: false;
605
+ },
606
+ {
607
+ name: "funder";
608
+ type: "publicKey";
609
+ index: false;
610
+ },
611
+ {
612
+ name: "amount";
613
+ type: "u64";
614
+ index: false;
615
+ },
616
+ {
617
+ name: "totalCommitted";
618
+ type: "u64";
619
+ index: false;
620
+ }
621
+ ];
622
+ },
623
+ {
624
+ name: "LaunchCompletedEvent";
625
+ fields: [
626
+ {
627
+ name: "common";
628
+ type: {
629
+ defined: "CommonFields";
630
+ };
631
+ index: false;
632
+ },
633
+ {
634
+ name: "launch";
635
+ type: "publicKey";
636
+ index: false;
637
+ },
638
+ {
639
+ name: "finalState";
640
+ type: {
641
+ defined: "LaunchState";
642
+ };
643
+ index: false;
644
+ },
645
+ {
646
+ name: "totalCommitted";
647
+ type: "u64";
648
+ index: false;
649
+ }
650
+ ];
651
+ },
652
+ {
653
+ name: "LaunchRefundedEvent";
654
+ fields: [
655
+ {
656
+ name: "common";
657
+ type: {
658
+ defined: "CommonFields";
659
+ };
660
+ index: false;
661
+ },
662
+ {
663
+ name: "launch";
664
+ type: "publicKey";
665
+ index: false;
666
+ },
667
+ {
668
+ name: "funder";
669
+ type: "publicKey";
670
+ index: false;
671
+ },
672
+ {
673
+ name: "usdcRefunded";
674
+ type: "u64";
675
+ index: false;
676
+ },
677
+ {
678
+ name: "tokensBurned";
679
+ type: "u64";
680
+ index: false;
681
+ }
682
+ ];
683
+ }
684
+ ];
123
685
  errors: [
124
686
  {
125
687
  code: 6000;
126
- name: "InvalidRaiseAmount";
127
- msg: "Maximum raise amount must be greater than minimum";
688
+ name: "InvalidAmount";
689
+ msg: "Invalid amount";
128
690
  },
129
691
  {
130
692
  code: 6001;
131
- name: "LaunchNotApproved";
132
- msg: "Launch has not been approved";
693
+ name: "SupplyNonZero";
694
+ msg: "Supply must be zero";
133
695
  },
134
696
  {
135
697
  code: 6002;
136
- name: "ExceedsMaximumRaise";
137
- msg: "Amount would exceed maximum raise amount";
698
+ name: "InvalidLaunchState";
699
+ msg: "Invalid launch state";
700
+ },
701
+ {
702
+ code: 6003;
703
+ name: "LaunchPeriodNotOver";
704
+ msg: "Launch period not over";
705
+ },
706
+ {
707
+ code: 6004;
708
+ name: "LaunchNotRefunding";
709
+ msg: "Launch needs to be in refunding state to get a refund";
710
+ },
711
+ {
712
+ code: 6005;
713
+ name: "LaunchNotInitialized";
714
+ msg: "Launch must be initialized to be started";
138
715
  }
139
716
  ];
140
717
  };