@metadaoproject/futarchy 0.4.0-alpha.42 → 0.4.0-alpha.43

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,384 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { AnchorProvider, Program } from "@coral-xyz/anchor";
3
- import { PublicKey, AccountInfo } from "@solana/web3.js";
4
- import { Launchpad } from "./types/launchpad.js";
5
- import { BN } from "@coral-xyz/anchor";
6
- import { FundingRecord, Launch } from "./types/index.js";
7
- import { AutocratClient } from "./AutocratClient.js";
8
- export type CreateLaunchpadClientParams = {
9
- provider: AnchorProvider;
10
- launchpadProgramId?: PublicKey;
11
- autocratProgramId?: PublicKey;
12
- conditionalVaultProgramId?: PublicKey;
13
- ammProgramId?: PublicKey;
14
- };
15
- export declare class LaunchpadClient {
16
- launchpad: Program<Launchpad>;
17
- provider: AnchorProvider;
18
- autocratClient: AutocratClient;
19
- private constructor();
20
- static createClient(params: CreateLaunchpadClientParams): LaunchpadClient;
21
- getProgramId(): PublicKey;
22
- getLaunch(launch: PublicKey): Promise<Launch>;
23
- fetchLaunch(launch: PublicKey): Promise<Launch | null>;
24
- deserializeLaunch(accountInfo: AccountInfo<Buffer>): Promise<Launch>;
25
- getFundingRecord(fundingRecord: PublicKey): Promise<FundingRecord>;
26
- fetchFundingRecord(fundingRecord: PublicKey): Promise<FundingRecord | null>;
27
- deserializeFundingRecord(accountInfo: AccountInfo<Buffer>): Promise<FundingRecord>;
28
- initializeLaunchIx(minimumRaiseAmount: BN, slotsForLaunch: BN, usdcMint: PublicKey, tokenMint: PublicKey, creator?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
29
- name: "initializeLaunch";
30
- accounts: [{
31
- name: "launch";
32
- isMut: true;
33
- isSigner: false;
34
- }, {
35
- name: "launchSigner";
36
- isMut: false;
37
- isSigner: false;
38
- }, {
39
- name: "usdcVault";
40
- isMut: false;
41
- isSigner: false;
42
- }, {
43
- name: "tokenVault";
44
- isMut: false;
45
- isSigner: false;
46
- }, {
47
- name: "creator";
48
- isMut: true;
49
- isSigner: true;
50
- }, {
51
- name: "usdcMint";
52
- isMut: false;
53
- isSigner: false;
54
- }, {
55
- name: "tokenMint";
56
- isMut: false;
57
- isSigner: false;
58
- }, {
59
- name: "tokenProgram";
60
- isMut: false;
61
- isSigner: false;
62
- }, {
63
- name: "associatedTokenProgram";
64
- isMut: false;
65
- isSigner: false;
66
- }, {
67
- name: "systemProgram";
68
- isMut: false;
69
- isSigner: false;
70
- }, {
71
- name: "eventAuthority";
72
- isMut: false;
73
- isSigner: false;
74
- }, {
75
- name: "program";
76
- isMut: false;
77
- isSigner: false;
78
- }];
79
- args: [{
80
- name: "args";
81
- type: {
82
- defined: "InitializeLaunchArgs";
83
- };
84
- }];
85
- } & {
86
- name: "initializeLaunch";
87
- }>;
88
- startLaunchIx(launch: PublicKey, creator?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
89
- name: "startLaunch";
90
- accounts: [{
91
- name: "launch";
92
- isMut: true;
93
- isSigner: false;
94
- }, {
95
- name: "creator";
96
- isMut: false;
97
- isSigner: true;
98
- }, {
99
- name: "eventAuthority";
100
- isMut: false;
101
- isSigner: false;
102
- }, {
103
- name: "program";
104
- isMut: false;
105
- isSigner: false;
106
- }];
107
- args: [];
108
- } & {
109
- name: "startLaunch";
110
- }>;
111
- fundIx(launch: PublicKey, amount: BN, usdcMint: PublicKey, funder?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
112
- name: "fund";
113
- accounts: [{
114
- name: "launch";
115
- isMut: true;
116
- isSigner: false;
117
- }, {
118
- name: "fundingRecord";
119
- isMut: true;
120
- isSigner: false;
121
- }, {
122
- name: "launchSigner";
123
- isMut: false;
124
- isSigner: false;
125
- }, {
126
- name: "launchUsdcVault";
127
- isMut: true;
128
- isSigner: false;
129
- }, {
130
- name: "funder";
131
- isMut: true;
132
- isSigner: true;
133
- }, {
134
- name: "funderUsdcAccount";
135
- isMut: true;
136
- isSigner: false;
137
- }, {
138
- name: "tokenProgram";
139
- isMut: false;
140
- isSigner: false;
141
- }, {
142
- name: "systemProgram";
143
- isMut: false;
144
- isSigner: false;
145
- }, {
146
- name: "eventAuthority";
147
- isMut: false;
148
- isSigner: false;
149
- }, {
150
- name: "program";
151
- isMut: false;
152
- isSigner: false;
153
- }];
154
- args: [{
155
- name: "amount";
156
- type: "u64";
157
- }];
158
- } & {
159
- name: "fund";
160
- }>;
161
- completeLaunchIx(launch: PublicKey, usdcMint: PublicKey, tokenMint: PublicKey, isDevnet?: boolean): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
162
- name: "completeLaunch";
163
- accounts: [{
164
- name: "launch";
165
- isMut: true;
166
- isSigner: false;
167
- }, {
168
- name: "payer";
169
- isMut: true;
170
- isSigner: true;
171
- }, {
172
- name: "launchSigner";
173
- isMut: true;
174
- isSigner: false;
175
- }, {
176
- name: "authority";
177
- isMut: false;
178
- isSigner: false;
179
- }, {
180
- name: "launchUsdcVault";
181
- isMut: true;
182
- isSigner: false;
183
- }, {
184
- name: "launchTokenVault";
185
- isMut: true;
186
- isSigner: false;
187
- }, {
188
- name: "treasuryUsdcAccount";
189
- isMut: true;
190
- isSigner: false;
191
- }, {
192
- name: "ammConfig";
193
- isMut: true;
194
- isSigner: false;
195
- docs: ["Use the lowest fee pool, can see fees at https://api-v3.raydium.io/main/cpmm-config"];
196
- }, {
197
- name: "poolState";
198
- isMut: true;
199
- isSigner: true;
200
- }, {
201
- name: "tokenMint";
202
- isMut: true;
203
- isSigner: false;
204
- }, {
205
- name: "usdcMint";
206
- isMut: false;
207
- isSigner: false;
208
- }, {
209
- name: "lpMint";
210
- isMut: true;
211
- isSigner: false;
212
- }, {
213
- name: "lpVault";
214
- isMut: true;
215
- isSigner: false;
216
- }, {
217
- name: "poolTokenVault";
218
- isMut: true;
219
- isSigner: false;
220
- }, {
221
- name: "poolUsdcVault";
222
- isMut: true;
223
- isSigner: false;
224
- }, {
225
- name: "createPoolFee";
226
- isMut: true;
227
- isSigner: false;
228
- docs: ["create pool fee account"];
229
- }, {
230
- name: "observationState";
231
- isMut: true;
232
- isSigner: false;
233
- }, {
234
- name: "dao";
235
- isMut: true;
236
- isSigner: true;
237
- }, {
238
- name: "daoTreasury";
239
- isMut: false;
240
- isSigner: false;
241
- }, {
242
- name: "cpSwapProgram";
243
- isMut: false;
244
- isSigner: false;
245
- }, {
246
- name: "associatedTokenProgram";
247
- isMut: false;
248
- isSigner: false;
249
- }, {
250
- name: "tokenProgram";
251
- isMut: false;
252
- isSigner: false;
253
- }, {
254
- name: "systemProgram";
255
- isMut: false;
256
- isSigner: false;
257
- }, {
258
- name: "autocratProgram";
259
- isMut: false;
260
- isSigner: false;
261
- }, {
262
- name: "autocratEventAuthority";
263
- isMut: false;
264
- isSigner: false;
265
- }, {
266
- name: "rent";
267
- isMut: false;
268
- isSigner: false;
269
- }, {
270
- name: "eventAuthority";
271
- isMut: false;
272
- isSigner: false;
273
- }, {
274
- name: "program";
275
- isMut: false;
276
- isSigner: false;
277
- }];
278
- args: [];
279
- } & {
280
- name: "completeLaunch";
281
- }>;
282
- refundIx(launch: PublicKey, usdcMint: PublicKey, tokenMint: PublicKey, funder?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
283
- name: "refund";
284
- accounts: [{
285
- name: "launch";
286
- isMut: true;
287
- isSigner: false;
288
- }, {
289
- name: "fundingRecord";
290
- isMut: true;
291
- isSigner: false;
292
- }, {
293
- name: "launchUsdcVault";
294
- isMut: true;
295
- isSigner: false;
296
- }, {
297
- name: "launchSigner";
298
- isMut: false;
299
- isSigner: false;
300
- }, {
301
- name: "funder";
302
- isMut: true;
303
- isSigner: true;
304
- }, {
305
- name: "funderUsdcAccount";
306
- isMut: true;
307
- isSigner: false;
308
- }, {
309
- name: "tokenProgram";
310
- isMut: false;
311
- isSigner: false;
312
- }, {
313
- name: "systemProgram";
314
- isMut: false;
315
- isSigner: false;
316
- }, {
317
- name: "eventAuthority";
318
- isMut: false;
319
- isSigner: false;
320
- }, {
321
- name: "program";
322
- isMut: false;
323
- isSigner: false;
324
- }];
325
- args: [];
326
- } & {
327
- name: "refund";
328
- }>;
329
- claimIx(launch: PublicKey, tokenMint: PublicKey, funder?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
330
- name: "claim";
331
- accounts: [{
332
- name: "launch";
333
- isMut: true;
334
- isSigner: false;
335
- }, {
336
- name: "fundingRecord";
337
- isMut: true;
338
- isSigner: false;
339
- }, {
340
- name: "launchSigner";
341
- isMut: false;
342
- isSigner: false;
343
- }, {
344
- name: "tokenMint";
345
- isMut: true;
346
- isSigner: false;
347
- }, {
348
- name: "launchTokenVault";
349
- isMut: true;
350
- isSigner: false;
351
- }, {
352
- name: "funder";
353
- isMut: false;
354
- isSigner: false;
355
- }, {
356
- name: "payer";
357
- isMut: true;
358
- isSigner: true;
359
- }, {
360
- name: "funderTokenAccount";
361
- isMut: true;
362
- isSigner: false;
363
- }, {
364
- name: "tokenProgram";
365
- isMut: false;
366
- isSigner: false;
367
- }, {
368
- name: "systemProgram";
369
- isMut: false;
370
- isSigner: false;
371
- }, {
372
- name: "eventAuthority";
373
- isMut: false;
374
- isSigner: false;
375
- }, {
376
- name: "program";
377
- isMut: false;
378
- isSigner: false;
379
- }];
380
- args: [];
381
- } & {
382
- name: "claim";
383
- }>;
384
- }
@@ -1,189 +0,0 @@
1
- import { Program } from "@coral-xyz/anchor";
2
- import { PublicKey, Keypair, } from "@solana/web3.js";
3
- import { IDL as LaunchpadIDL } from "./types/launchpad.js";
4
- import { LAUNCHPAD_PROGRAM_ID, RAYDIUM_AUTHORITY, LOW_FEE_RAYDIUM_CONFIG, RAYDIUM_CP_SWAP_PROGRAM_ID, RAYDIUM_CREATE_POOL_FEE_RECEIVE, DEVNET_RAYDIUM_CP_SWAP_PROGRAM_ID, DEVNET_RAYDIUM_AUTHORITY, DEVNET_LOW_FEE_RAYDIUM_CONFIG, DEVNET_RAYDIUM_CREATE_POOL_FEE_RECEIVE, } from "./constants.js";
5
- import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, } from "@solana/spl-token";
6
- import { getDaoTreasuryAddr, getEventAuthorityAddr, getFundingRecordAddr, getLaunchAddr, getLaunchSignerAddr, } from "./utils/pda.js";
7
- import { AutocratClient } from "./AutocratClient.js";
8
- import * as anchor from "@coral-xyz/anchor";
9
- export class LaunchpadClient {
10
- launchpad;
11
- provider;
12
- autocratClient;
13
- constructor(params) {
14
- this.provider = params.provider;
15
- this.launchpad = new Program(LaunchpadIDL, params.launchpadProgramId || LAUNCHPAD_PROGRAM_ID, this.provider);
16
- this.autocratClient = AutocratClient.createClient({
17
- provider: this.provider,
18
- autocratProgramId: params.autocratProgramId,
19
- conditionalVaultProgramId: params.conditionalVaultProgramId,
20
- ammProgramId: params.ammProgramId,
21
- });
22
- }
23
- static createClient(params) {
24
- return new LaunchpadClient(params);
25
- }
26
- getProgramId() {
27
- return this.launchpad.programId;
28
- }
29
- async getLaunch(launch) {
30
- return await this.launchpad.account.launch.fetch(launch);
31
- }
32
- async fetchLaunch(launch) {
33
- return await this.launchpad.account.launch.fetchNullable(launch);
34
- }
35
- async deserializeLaunch(accountInfo) {
36
- return this.launchpad.coder.accounts.decode("launch", accountInfo.data);
37
- }
38
- async getFundingRecord(fundingRecord) {
39
- return await this.launchpad.account.fundingRecord.fetch(fundingRecord);
40
- }
41
- async fetchFundingRecord(fundingRecord) {
42
- return await this.launchpad.account.fundingRecord.fetchNullable(fundingRecord);
43
- }
44
- async deserializeFundingRecord(accountInfo) {
45
- return this.launchpad.coder.accounts.decode("fundingRecord", accountInfo.data);
46
- }
47
- initializeLaunchIx(minimumRaiseAmount, slotsForLaunch, usdcMint, tokenMint, creator = this.provider.publicKey) {
48
- const [launch] = getLaunchAddr(this.launchpad.programId, tokenMint);
49
- const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
50
- const usdcVault = getAssociatedTokenAddressSync(usdcMint, launchSigner, true);
51
- const tokenVault = getAssociatedTokenAddressSync(tokenMint, launchSigner, true);
52
- return this.launchpad.methods
53
- .initializeLaunch({
54
- minimumRaiseAmount,
55
- slotsForLaunch,
56
- })
57
- .accounts({
58
- launch,
59
- launchSigner,
60
- usdcVault,
61
- tokenVault,
62
- creator,
63
- usdcMint,
64
- tokenMint,
65
- })
66
- .preInstructions([
67
- createAssociatedTokenAccountIdempotentInstruction(creator, getAssociatedTokenAddressSync(tokenMint, launchSigner, true), launchSigner, tokenMint),
68
- createAssociatedTokenAccountIdempotentInstruction(creator, getAssociatedTokenAddressSync(usdcMint, launchSigner, true), launchSigner, usdcMint),
69
- ]);
70
- }
71
- startLaunchIx(launch, creator = this.provider.publicKey) {
72
- return this.launchpad.methods.startLaunch().accounts({
73
- launch,
74
- creator,
75
- });
76
- }
77
- fundIx(launch, amount, usdcMint, funder = this.provider.publicKey) {
78
- const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
79
- const launchUsdcVault = getAssociatedTokenAddressSync(usdcMint, launchSigner, true);
80
- const funderUsdcAccount = getAssociatedTokenAddressSync(usdcMint, funder);
81
- const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
82
- return this.launchpad.methods.fund(amount).accounts({
83
- launch,
84
- launchUsdcVault,
85
- fundingRecord,
86
- funder,
87
- funderUsdcAccount,
88
- launchSigner,
89
- });
90
- }
91
- completeLaunchIx(launch, usdcMint, tokenMint, isDevnet = false) {
92
- const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
93
- const launchUsdcVault = getAssociatedTokenAddressSync(usdcMint, launchSigner, true);
94
- const launchTokenVault = getAssociatedTokenAddressSync(tokenMint, launchSigner, true);
95
- const daoKp = Keypair.generate();
96
- const [daoTreasury] = getDaoTreasuryAddr(this.autocratClient.getProgramId(), daoKp.publicKey);
97
- const treasuryUsdcAccount = getAssociatedTokenAddressSync(usdcMint, daoTreasury, true);
98
- const poolStateKp = Keypair.generate();
99
- const cpSwapProgramId = isDevnet
100
- ? DEVNET_RAYDIUM_CP_SWAP_PROGRAM_ID
101
- : RAYDIUM_CP_SWAP_PROGRAM_ID;
102
- const [lpMint] = PublicKey.findProgramAddressSync([
103
- anchor.utils.bytes.utf8.encode("pool_lp_mint"),
104
- poolStateKp.publicKey.toBuffer(),
105
- ], cpSwapProgramId);
106
- const lpVault = getAssociatedTokenAddressSync(lpMint, launchSigner, true);
107
- const [poolTokenVault] = PublicKey.findProgramAddressSync([
108
- anchor.utils.bytes.utf8.encode("pool_vault"),
109
- poolStateKp.publicKey.toBuffer(),
110
- tokenMint.toBuffer(),
111
- ], cpSwapProgramId);
112
- const [poolUsdcVault] = PublicKey.findProgramAddressSync([
113
- anchor.utils.bytes.utf8.encode("pool_vault"),
114
- poolStateKp.publicKey.toBuffer(),
115
- usdcMint.toBuffer(),
116
- ], cpSwapProgramId);
117
- const [observationState] = PublicKey.findProgramAddressSync([
118
- anchor.utils.bytes.utf8.encode("observation"),
119
- poolStateKp.publicKey.toBuffer(),
120
- ], cpSwapProgramId);
121
- const [autocratEventAuthority] = getEventAuthorityAddr(this.autocratClient.getProgramId());
122
- return this.launchpad.methods
123
- .completeLaunch()
124
- .accounts({
125
- launch,
126
- launchSigner,
127
- launchUsdcVault,
128
- launchTokenVault,
129
- dao: daoKp.publicKey,
130
- daoTreasury,
131
- treasuryUsdcAccount,
132
- usdcMint,
133
- tokenMint,
134
- lpMint,
135
- lpVault,
136
- poolTokenVault,
137
- poolUsdcVault,
138
- poolState: poolStateKp.publicKey,
139
- observationState,
140
- cpSwapProgram: cpSwapProgramId,
141
- authority: isDevnet ? DEVNET_RAYDIUM_AUTHORITY : RAYDIUM_AUTHORITY,
142
- ammConfig: isDevnet
143
- ? DEVNET_LOW_FEE_RAYDIUM_CONFIG
144
- : LOW_FEE_RAYDIUM_CONFIG,
145
- createPoolFee: isDevnet
146
- ? DEVNET_RAYDIUM_CREATE_POOL_FEE_RECEIVE
147
- : RAYDIUM_CREATE_POOL_FEE_RECEIVE,
148
- autocratProgram: this.autocratClient.getProgramId(),
149
- autocratEventAuthority,
150
- })
151
- .signers([poolStateKp, daoKp])
152
- .preInstructions([
153
- createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, treasuryUsdcAccount, daoTreasury, usdcMint),
154
- ]);
155
- }
156
- refundIx(launch, usdcMint, tokenMint, funder = this.provider.publicKey) {
157
- const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
158
- const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
159
- const launchUsdcVault = getAssociatedTokenAddressSync(usdcMint, launchSigner, true);
160
- const funderUsdcAccount = getAssociatedTokenAddressSync(usdcMint, funder);
161
- return this.launchpad.methods.refund().accounts({
162
- launch,
163
- launchSigner,
164
- launchUsdcVault,
165
- funder,
166
- funderUsdcAccount,
167
- fundingRecord,
168
- });
169
- }
170
- claimIx(launch, tokenMint, funder = this.provider.publicKey) {
171
- const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
172
- const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
173
- return this.launchpad.methods
174
- .claim()
175
- .accounts({
176
- launch,
177
- fundingRecord,
178
- launchSigner,
179
- funder,
180
- funderTokenAccount: getAssociatedTokenAddressSync(tokenMint, funder),
181
- tokenMint,
182
- launchTokenVault: getAssociatedTokenAddressSync(tokenMint, launchSigner, true),
183
- })
184
- .preInstructions([
185
- createAssociatedTokenAccountIdempotentInstruction(funder, getAssociatedTokenAddressSync(tokenMint, funder, true), funder, tokenMint),
186
- ]);
187
- }
188
- }
189
- //# sourceMappingURL=LaunchpadClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LaunchpadClient.js","sourceRoot":"","sources":["../../src/v0.4/LaunchpadClient.ts"],"names":[],"mappings":"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"}