@metadaoproject/futarchy 0.5.0-alpha.1 → 0.5.0-alpha.3
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/v0.3/utils/index.d.ts +1 -0
- package/dist/v0.4/ConditionalVaultClient.d.ts +1 -0
- package/dist/v0.4/utils/index.d.ts +1 -0
- package/dist/v0.5/AutocratClient.d.ts +73 -18
- package/dist/v0.5/AutocratClient.js +136 -191
- package/dist/v0.5/AutocratClient.js.map +1 -1
- package/dist/v0.5/ConditionalVaultClient.d.ts +1 -0
- package/dist/v0.5/LaunchpadClient.d.ts +76 -53
- package/dist/v0.5/LaunchpadClient.js +85 -62
- package/dist/v0.5/LaunchpadClient.js.map +1 -1
- package/dist/v0.5/SharedLiquidityManagerClient.d.ts +0 -1045
- package/dist/v0.5/SharedLiquidityManagerClient.js +1 -309
- package/dist/v0.5/SharedLiquidityManagerClient.js.map +1 -1
- package/dist/v0.5/constants.d.ts +5 -1
- package/dist/v0.5/constants.js +10 -1
- package/dist/v0.5/constants.js.map +1 -1
- package/dist/v0.5/types/autocrat.d.ts +107 -98
- package/dist/v0.5/types/autocrat.js +107 -98
- package/dist/v0.5/types/autocrat.js.map +1 -1
- package/dist/v0.5/types/index.d.ts +0 -3
- package/dist/v0.5/types/launchpad.d.ts +123 -61
- package/dist/v0.5/types/launchpad.js +123 -61
- package/dist/v0.5/types/launchpad.js.map +1 -1
- package/dist/v0.5/types/shared_liquidity_manager.d.ts +1 -1677
- package/dist/v0.5/types/shared_liquidity_manager.js +1 -1677
- package/dist/v0.5/types/shared_liquidity_manager.js.map +1 -1
- package/dist/v0.5/utils/index.d.ts +1 -0
- package/dist/v0.5/utils/pda.d.ts +5 -1
- package/dist/v0.5/utils/pda.js +8 -4
- package/dist/v0.5/utils/pda.js.map +1 -1
- package/package.json +3 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { AnchorProvider, Program } from "@coral-xyz/anchor";
|
|
3
3
|
import { PublicKey, AccountInfo } from "@solana/web3.js";
|
|
4
4
|
import { Launchpad } from "./types/launchpad.js";
|
|
5
|
-
import
|
|
5
|
+
import BN from "bn.js";
|
|
6
6
|
import { FundingRecord, Launch } from "./types/index.js";
|
|
7
7
|
import { AutocratClient } from "./AutocratClient.js";
|
|
8
8
|
export type CreateLaunchpadClientParams = {
|
|
@@ -25,14 +25,14 @@ export declare class LaunchpadClient {
|
|
|
25
25
|
getFundingRecord(fundingRecord: PublicKey): Promise<FundingRecord>;
|
|
26
26
|
fetchFundingRecord(fundingRecord: PublicKey): Promise<FundingRecord | null>;
|
|
27
27
|
deserializeFundingRecord(accountInfo: AccountInfo<Buffer>): Promise<FundingRecord>;
|
|
28
|
-
initializeLaunchIx(tokenName: string, tokenSymbol: string, tokenUri: string, minimumRaiseAmount: BN, secondsForLaunch: number,
|
|
28
|
+
initializeLaunchIx(tokenName: string, tokenSymbol: string, tokenUri: string, minimumRaiseAmount: BN, secondsForLaunch: number, baseMint: PublicKey, quoteMint: PublicKey, monthlySpendingLimitAmount: BN, monthlySpendingLimitMembers: PublicKey[], launchAuthority?: PublicKey, isDevnet?: boolean, payer?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
|
|
29
29
|
name: "initializeLaunch";
|
|
30
30
|
accounts: [{
|
|
31
31
|
name: "launch";
|
|
32
32
|
isMut: true;
|
|
33
33
|
isSigner: false;
|
|
34
34
|
}, {
|
|
35
|
-
name: "
|
|
35
|
+
name: "baseMint";
|
|
36
36
|
isMut: true;
|
|
37
37
|
isSigner: false;
|
|
38
38
|
}, {
|
|
@@ -44,11 +44,11 @@ export declare class LaunchpadClient {
|
|
|
44
44
|
isMut: false;
|
|
45
45
|
isSigner: false;
|
|
46
46
|
}, {
|
|
47
|
-
name: "
|
|
47
|
+
name: "quoteVault";
|
|
48
48
|
isMut: true;
|
|
49
49
|
isSigner: false;
|
|
50
50
|
}, {
|
|
51
|
-
name: "
|
|
51
|
+
name: "baseVault";
|
|
52
52
|
isMut: true;
|
|
53
53
|
isSigner: false;
|
|
54
54
|
}, {
|
|
@@ -60,7 +60,7 @@ export declare class LaunchpadClient {
|
|
|
60
60
|
isMut: false;
|
|
61
61
|
isSigner: false;
|
|
62
62
|
}, {
|
|
63
|
-
name: "
|
|
63
|
+
name: "quoteMint";
|
|
64
64
|
isMut: false;
|
|
65
65
|
isSigner: false;
|
|
66
66
|
}, {
|
|
@@ -124,7 +124,7 @@ export declare class LaunchpadClient {
|
|
|
124
124
|
} & {
|
|
125
125
|
name: "startLaunch";
|
|
126
126
|
}>;
|
|
127
|
-
fundIx(launch: PublicKey, amount: BN, funder
|
|
127
|
+
fundIx(launch: PublicKey, amount: BN, funder: PublicKey | undefined, quoteMint: PublicKey, isDevnet?: boolean): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
|
|
128
128
|
name: "fund";
|
|
129
129
|
accounts: [{
|
|
130
130
|
name: "launch";
|
|
@@ -139,7 +139,7 @@ export declare class LaunchpadClient {
|
|
|
139
139
|
isMut: false;
|
|
140
140
|
isSigner: false;
|
|
141
141
|
}, {
|
|
142
|
-
name: "
|
|
142
|
+
name: "launchQuoteVault";
|
|
143
143
|
isMut: true;
|
|
144
144
|
isSigner: false;
|
|
145
145
|
}, {
|
|
@@ -151,7 +151,7 @@ export declare class LaunchpadClient {
|
|
|
151
151
|
isMut: true;
|
|
152
152
|
isSigner: true;
|
|
153
153
|
}, {
|
|
154
|
-
name: "
|
|
154
|
+
name: "funderQuoteAccount";
|
|
155
155
|
isMut: true;
|
|
156
156
|
isSigner: false;
|
|
157
157
|
}, {
|
|
@@ -178,7 +178,7 @@ export declare class LaunchpadClient {
|
|
|
178
178
|
} & {
|
|
179
179
|
name: "fund";
|
|
180
180
|
}>;
|
|
181
|
-
completeLaunchIx(launch: PublicKey,
|
|
181
|
+
completeLaunchIx(launch: PublicKey, quoteMint: PublicKey, baseMint: PublicKey, isDevnet?: boolean): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
|
|
182
182
|
name: "completeLaunch";
|
|
183
183
|
accounts: [{
|
|
184
184
|
name: "launch";
|
|
@@ -197,40 +197,31 @@ export declare class LaunchpadClient {
|
|
|
197
197
|
isMut: true;
|
|
198
198
|
isSigner: false;
|
|
199
199
|
}, {
|
|
200
|
-
name: "
|
|
201
|
-
isMut: false;
|
|
202
|
-
isSigner: false;
|
|
203
|
-
}, {
|
|
204
|
-
name: "launchUsdcVault";
|
|
200
|
+
name: "launchQuoteVault";
|
|
205
201
|
isMut: true;
|
|
206
202
|
isSigner: false;
|
|
207
203
|
}, {
|
|
208
|
-
name: "
|
|
204
|
+
name: "launchBaseVault";
|
|
209
205
|
isMut: true;
|
|
210
206
|
isSigner: false;
|
|
211
207
|
}, {
|
|
212
|
-
name: "
|
|
208
|
+
name: "treasuryQuoteAccount";
|
|
213
209
|
isMut: true;
|
|
214
210
|
isSigner: false;
|
|
215
211
|
}, {
|
|
216
212
|
name: "treasuryLpAccount";
|
|
217
213
|
isMut: true;
|
|
218
214
|
isSigner: false;
|
|
219
|
-
}, {
|
|
220
|
-
name: "ammConfig";
|
|
221
|
-
isMut: true;
|
|
222
|
-
isSigner: false;
|
|
223
|
-
docs: ["Use the lowest fee pool, can see fees at https://api-v3.raydium.io/main/cpmm-config"];
|
|
224
215
|
}, {
|
|
225
216
|
name: "poolState";
|
|
226
217
|
isMut: true;
|
|
227
218
|
isSigner: false;
|
|
228
219
|
}, {
|
|
229
|
-
name: "
|
|
220
|
+
name: "baseMint";
|
|
230
221
|
isMut: true;
|
|
231
222
|
isSigner: false;
|
|
232
223
|
}, {
|
|
233
|
-
name: "
|
|
224
|
+
name: "quoteMint";
|
|
234
225
|
isMut: false;
|
|
235
226
|
isSigner: false;
|
|
236
227
|
}, {
|
|
@@ -249,11 +240,6 @@ export declare class LaunchpadClient {
|
|
|
249
240
|
name: "poolUsdcVault";
|
|
250
241
|
isMut: true;
|
|
251
242
|
isSigner: false;
|
|
252
|
-
}, {
|
|
253
|
-
name: "createPoolFee";
|
|
254
|
-
isMut: true;
|
|
255
|
-
isSigner: false;
|
|
256
|
-
docs: ["create pool fee account"];
|
|
257
243
|
}, {
|
|
258
244
|
name: "observationState";
|
|
259
245
|
isMut: true;
|
|
@@ -263,41 +249,78 @@ export declare class LaunchpadClient {
|
|
|
263
249
|
isMut: true;
|
|
264
250
|
isSigner: false;
|
|
265
251
|
}, {
|
|
266
|
-
name: "
|
|
267
|
-
isMut:
|
|
252
|
+
name: "squadsMultisig";
|
|
253
|
+
isMut: true;
|
|
268
254
|
isSigner: false;
|
|
269
255
|
}, {
|
|
270
|
-
name: "
|
|
256
|
+
name: "squadsMultisigVault";
|
|
271
257
|
isMut: false;
|
|
272
258
|
isSigner: false;
|
|
273
259
|
}, {
|
|
274
|
-
name: "
|
|
275
|
-
isMut:
|
|
276
|
-
isSigner: false;
|
|
277
|
-
}, {
|
|
278
|
-
name: "tokenProgram";
|
|
279
|
-
isMut: false;
|
|
260
|
+
name: "spendingLimit";
|
|
261
|
+
isMut: true;
|
|
280
262
|
isSigner: false;
|
|
281
263
|
}, {
|
|
282
264
|
name: "systemProgram";
|
|
283
265
|
isMut: false;
|
|
284
266
|
isSigner: false;
|
|
285
267
|
}, {
|
|
286
|
-
name: "
|
|
287
|
-
isMut: false;
|
|
288
|
-
isSigner: false;
|
|
289
|
-
}, {
|
|
290
|
-
name: "tokenMetadataProgram";
|
|
268
|
+
name: "tokenProgram";
|
|
291
269
|
isMut: false;
|
|
292
270
|
isSigner: false;
|
|
293
271
|
}, {
|
|
294
|
-
name: "
|
|
272
|
+
name: "associatedTokenProgram";
|
|
295
273
|
isMut: false;
|
|
296
274
|
isSigner: false;
|
|
297
275
|
}, {
|
|
298
|
-
name: "
|
|
299
|
-
|
|
300
|
-
|
|
276
|
+
name: "staticAccounts";
|
|
277
|
+
accounts: [{
|
|
278
|
+
name: "authority";
|
|
279
|
+
isMut: false;
|
|
280
|
+
isSigner: false;
|
|
281
|
+
}, {
|
|
282
|
+
name: "ammConfig";
|
|
283
|
+
isMut: true;
|
|
284
|
+
isSigner: false;
|
|
285
|
+
docs: ["Use the lowest fee pool, can see fees at https://api-v3.raydium.io/main/cpmm-config"];
|
|
286
|
+
}, {
|
|
287
|
+
name: "createPoolFee";
|
|
288
|
+
isMut: true;
|
|
289
|
+
isSigner: false;
|
|
290
|
+
docs: ["create pool fee account"];
|
|
291
|
+
}, {
|
|
292
|
+
name: "cpSwapProgram";
|
|
293
|
+
isMut: false;
|
|
294
|
+
isSigner: false;
|
|
295
|
+
}, {
|
|
296
|
+
name: "autocratProgram";
|
|
297
|
+
isMut: false;
|
|
298
|
+
isSigner: false;
|
|
299
|
+
}, {
|
|
300
|
+
name: "tokenMetadataProgram";
|
|
301
|
+
isMut: false;
|
|
302
|
+
isSigner: false;
|
|
303
|
+
}, {
|
|
304
|
+
name: "autocratEventAuthority";
|
|
305
|
+
isMut: false;
|
|
306
|
+
isSigner: false;
|
|
307
|
+
}, {
|
|
308
|
+
name: "rent";
|
|
309
|
+
isMut: false;
|
|
310
|
+
isSigner: false;
|
|
311
|
+
}, {
|
|
312
|
+
name: "squadsProgram";
|
|
313
|
+
isMut: false;
|
|
314
|
+
isSigner: false;
|
|
315
|
+
}, {
|
|
316
|
+
name: "squadsProgramConfig";
|
|
317
|
+
isMut: false;
|
|
318
|
+
isSigner: false;
|
|
319
|
+
}, {
|
|
320
|
+
name: "squadsProgramConfigTreasury";
|
|
321
|
+
isMut: true;
|
|
322
|
+
isSigner: false;
|
|
323
|
+
}];
|
|
301
324
|
}, {
|
|
302
325
|
name: "eventAuthority";
|
|
303
326
|
isMut: false;
|
|
@@ -311,7 +334,7 @@ export declare class LaunchpadClient {
|
|
|
311
334
|
} & {
|
|
312
335
|
name: "completeLaunch";
|
|
313
336
|
}>;
|
|
314
|
-
refundIx(launch: PublicKey, funder
|
|
337
|
+
refundIx(launch: PublicKey, funder: PublicKey | undefined, quoteMint: PublicKey, isDevnet?: boolean): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
|
|
315
338
|
name: "refund";
|
|
316
339
|
accounts: [{
|
|
317
340
|
name: "launch";
|
|
@@ -322,7 +345,7 @@ export declare class LaunchpadClient {
|
|
|
322
345
|
isMut: true;
|
|
323
346
|
isSigner: false;
|
|
324
347
|
}, {
|
|
325
|
-
name: "
|
|
348
|
+
name: "launchQuoteVault";
|
|
326
349
|
isMut: true;
|
|
327
350
|
isSigner: false;
|
|
328
351
|
}, {
|
|
@@ -334,7 +357,7 @@ export declare class LaunchpadClient {
|
|
|
334
357
|
isMut: true;
|
|
335
358
|
isSigner: true;
|
|
336
359
|
}, {
|
|
337
|
-
name: "
|
|
360
|
+
name: "funderQuoteAccount";
|
|
338
361
|
isMut: true;
|
|
339
362
|
isSigner: false;
|
|
340
363
|
}, {
|
|
@@ -358,7 +381,7 @@ export declare class LaunchpadClient {
|
|
|
358
381
|
} & {
|
|
359
382
|
name: "refund";
|
|
360
383
|
}>;
|
|
361
|
-
claimIx(launch: PublicKey,
|
|
384
|
+
claimIx(launch: PublicKey, baseMint: PublicKey, funder?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
|
|
362
385
|
name: "claim";
|
|
363
386
|
accounts: [{
|
|
364
387
|
name: "launch";
|
|
@@ -373,11 +396,11 @@ export declare class LaunchpadClient {
|
|
|
373
396
|
isMut: false;
|
|
374
397
|
isSigner: false;
|
|
375
398
|
}, {
|
|
376
|
-
name: "
|
|
399
|
+
name: "baseMint";
|
|
377
400
|
isMut: true;
|
|
378
401
|
isSigner: false;
|
|
379
402
|
}, {
|
|
380
|
-
name: "
|
|
403
|
+
name: "launchBaseVault";
|
|
381
404
|
isMut: true;
|
|
382
405
|
isSigner: false;
|
|
383
406
|
}, {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Program } from "@coral-xyz/anchor";
|
|
2
2
|
import { PublicKey, } from "@solana/web3.js";
|
|
3
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, MPL_TOKEN_METADATA_PROGRAM_ID, MAINNET_USDC, DEVNET_USDC, } from "./constants.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, MPL_TOKEN_METADATA_PROGRAM_ID, MAINNET_USDC, DEVNET_USDC, SQUADS_PROGRAM_ID, SQUADS_PROGRAM_CONFIG, SQUADS_PROGRAM_CONFIG_TREASURY, } from "./constants.js";
|
|
5
5
|
import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, } from "@solana/spl-token";
|
|
6
|
-
import
|
|
6
|
+
import BN from "bn.js";
|
|
7
|
+
import { getDaoAddr, getEventAuthorityAddr, getFundingRecordAddr, getLaunchAddr, getLaunchSignerAddr, getLiquidityPoolAddr, getMetadataAddr, getRaydiumCpmmLpMintAddr, } from "./utils/pda.js";
|
|
7
8
|
import { AutocratClient } from "./AutocratClient.js";
|
|
8
9
|
import * as anchor from "@coral-xyz/anchor";
|
|
10
|
+
import * as multisig from "@sqds/multisig";
|
|
9
11
|
export class LaunchpadClient {
|
|
10
12
|
launchpad;
|
|
11
13
|
provider;
|
|
@@ -44,13 +46,12 @@ export class LaunchpadClient {
|
|
|
44
46
|
async deserializeFundingRecord(accountInfo) {
|
|
45
47
|
return this.launchpad.coder.accounts.decode("fundingRecord", accountInfo.data);
|
|
46
48
|
}
|
|
47
|
-
initializeLaunchIx(tokenName, tokenSymbol, tokenUri, minimumRaiseAmount, secondsForLaunch,
|
|
48
|
-
const
|
|
49
|
-
const [launch] = getLaunchAddr(this.launchpad.programId, tokenMint);
|
|
49
|
+
initializeLaunchIx(tokenName, tokenSymbol, tokenUri, minimumRaiseAmount, secondsForLaunch, baseMint, quoteMint, monthlySpendingLimitAmount, monthlySpendingLimitMembers, launchAuthority = this.provider.publicKey, isDevnet = false, payer = this.provider.publicKey) {
|
|
50
|
+
const [launch] = getLaunchAddr(this.launchpad.programId, baseMint);
|
|
50
51
|
const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
const [tokenMetadata] = getMetadataAddr(
|
|
52
|
+
const quoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
|
|
53
|
+
const baseVault = getAssociatedTokenAddressSync(baseMint, launchSigner, true);
|
|
54
|
+
const [tokenMetadata] = getMetadataAddr(baseMint);
|
|
54
55
|
return this.launchpad.methods
|
|
55
56
|
.initializeLaunch({
|
|
56
57
|
minimumRaiseAmount,
|
|
@@ -58,21 +59,23 @@ export class LaunchpadClient {
|
|
|
58
59
|
tokenName,
|
|
59
60
|
tokenSymbol,
|
|
60
61
|
tokenUri,
|
|
62
|
+
monthlySpendingLimitAmount,
|
|
63
|
+
monthlySpendingLimitMembers,
|
|
61
64
|
})
|
|
62
65
|
.accounts({
|
|
63
66
|
launch,
|
|
64
67
|
launchSigner,
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
quoteVault,
|
|
69
|
+
baseVault,
|
|
67
70
|
launchAuthority,
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
quoteMint,
|
|
72
|
+
baseMint,
|
|
70
73
|
tokenMetadata,
|
|
71
74
|
tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
|
|
72
75
|
payer,
|
|
73
76
|
})
|
|
74
77
|
.preInstructions([
|
|
75
|
-
createAssociatedTokenAccountIdempotentInstruction(payer, getAssociatedTokenAddressSync(
|
|
78
|
+
createAssociatedTokenAccountIdempotentInstruction(payer, getAssociatedTokenAddressSync(quoteMint, launchSigner, true), launchSigner, quoteMint),
|
|
76
79
|
]);
|
|
77
80
|
// .signers([tokenMintKp]);
|
|
78
81
|
}
|
|
@@ -82,30 +85,31 @@ export class LaunchpadClient {
|
|
|
82
85
|
launchAuthority,
|
|
83
86
|
});
|
|
84
87
|
}
|
|
85
|
-
fundIx(launch, amount, funder = this.provider.publicKey, isDevnet = false) {
|
|
88
|
+
fundIx(launch, amount, funder = this.provider.publicKey, quoteMint, isDevnet = false) {
|
|
86
89
|
const USDC = isDevnet ? DEVNET_USDC : MAINNET_USDC;
|
|
87
90
|
const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
|
|
88
|
-
const
|
|
89
|
-
const
|
|
91
|
+
const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
|
|
92
|
+
const funderQuoteAccount = getAssociatedTokenAddressSync(quoteMint, funder, true);
|
|
90
93
|
const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
|
|
91
94
|
return this.launchpad.methods.fund(amount).accounts({
|
|
92
95
|
launch,
|
|
93
|
-
|
|
96
|
+
launchQuoteVault,
|
|
94
97
|
fundingRecord,
|
|
95
98
|
funder,
|
|
96
|
-
|
|
99
|
+
funderQuoteAccount,
|
|
97
100
|
launchSigner,
|
|
98
101
|
});
|
|
99
102
|
}
|
|
100
|
-
completeLaunchIx(launch,
|
|
103
|
+
completeLaunchIx(launch, quoteMint, baseMint, isDevnet = false) {
|
|
101
104
|
const USDC = isDevnet ? DEVNET_USDC : MAINNET_USDC;
|
|
102
105
|
const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
|
|
103
|
-
const
|
|
104
|
-
const
|
|
106
|
+
const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
|
|
107
|
+
const launchBaseVault = getAssociatedTokenAddressSync(baseMint, launchSigner, true);
|
|
105
108
|
// const daoKp = Keypair.generate();
|
|
106
|
-
const [dao] =
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
const [dao] = getDaoAddr({
|
|
110
|
+
nonce: new BN(0),
|
|
111
|
+
daoCreator: launchSigner,
|
|
112
|
+
});
|
|
109
113
|
const [poolState] = getLiquidityPoolAddr(this.launchpad.programId, dao);
|
|
110
114
|
const cpSwapProgramId = isDevnet
|
|
111
115
|
? DEVNET_RAYDIUM_CP_SWAP_PROGRAM_ID
|
|
@@ -115,7 +119,7 @@ export class LaunchpadClient {
|
|
|
115
119
|
const [poolTokenVault] = PublicKey.findProgramAddressSync([
|
|
116
120
|
anchor.utils.bytes.utf8.encode("pool_vault"),
|
|
117
121
|
poolState.toBuffer(),
|
|
118
|
-
|
|
122
|
+
baseMint.toBuffer(),
|
|
119
123
|
], cpSwapProgramId);
|
|
120
124
|
const [poolUsdcVault] = PublicKey.findProgramAddressSync([
|
|
121
125
|
anchor.utils.bytes.utf8.encode("pool_vault"),
|
|
@@ -124,20 +128,27 @@ export class LaunchpadClient {
|
|
|
124
128
|
], cpSwapProgramId);
|
|
125
129
|
const [observationState] = PublicKey.findProgramAddressSync([anchor.utils.bytes.utf8.encode("observation"), poolState.toBuffer()], cpSwapProgramId);
|
|
126
130
|
const [autocratEventAuthority] = getEventAuthorityAddr(this.autocratClient.getProgramId());
|
|
127
|
-
const [tokenMetadata] = getMetadataAddr(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
+
const [tokenMetadata] = getMetadataAddr(baseMint);
|
|
132
|
+
const [multisigPda] = multisig.getMultisigPda({ createKey: dao });
|
|
133
|
+
const [multisigVault] = multisig.getVaultPda({
|
|
134
|
+
multisigPda,
|
|
135
|
+
index: 0,
|
|
136
|
+
});
|
|
137
|
+
const [spendingLimit] = multisig.getSpendingLimitPda({
|
|
138
|
+
multisigPda,
|
|
139
|
+
createKey: dao,
|
|
140
|
+
});
|
|
141
|
+
const treasuryQuoteAccount = getAssociatedTokenAddressSync(quoteMint, multisigVault, true);
|
|
142
|
+
return this.launchpad.methods.completeLaunch().accounts({
|
|
131
143
|
launch,
|
|
132
144
|
launchSigner,
|
|
133
|
-
|
|
134
|
-
|
|
145
|
+
launchQuoteVault,
|
|
146
|
+
launchBaseVault,
|
|
135
147
|
dao,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
tokenMint,
|
|
148
|
+
treasuryQuoteAccount,
|
|
149
|
+
treasuryLpAccount: getAssociatedTokenAddressSync(lpMint, multisigVault, true),
|
|
150
|
+
quoteMint,
|
|
151
|
+
baseMint,
|
|
141
152
|
tokenMetadata,
|
|
142
153
|
lpMint,
|
|
143
154
|
lpVault,
|
|
@@ -145,38 +156,50 @@ export class LaunchpadClient {
|
|
|
145
156
|
poolUsdcVault,
|
|
146
157
|
poolState,
|
|
147
158
|
observationState,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
staticAccounts: {
|
|
160
|
+
cpSwapProgram: cpSwapProgramId,
|
|
161
|
+
authority: isDevnet ? DEVNET_RAYDIUM_AUTHORITY : RAYDIUM_AUTHORITY,
|
|
162
|
+
ammConfig: isDevnet
|
|
163
|
+
? DEVNET_LOW_FEE_RAYDIUM_CONFIG
|
|
164
|
+
: LOW_FEE_RAYDIUM_CONFIG,
|
|
165
|
+
createPoolFee: isDevnet
|
|
166
|
+
? DEVNET_RAYDIUM_CREATE_POOL_FEE_RECEIVE
|
|
167
|
+
: RAYDIUM_CREATE_POOL_FEE_RECEIVE,
|
|
168
|
+
autocratProgram: this.autocratClient.getProgramId(),
|
|
169
|
+
tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
|
|
170
|
+
autocratEventAuthority,
|
|
171
|
+
squadsProgram: SQUADS_PROGRAM_ID,
|
|
172
|
+
squadsProgramConfig: SQUADS_PROGRAM_CONFIG,
|
|
173
|
+
squadsProgramConfigTreasury: SQUADS_PROGRAM_CONFIG_TREASURY,
|
|
174
|
+
},
|
|
175
|
+
squadsMultisig: multisigPda,
|
|
176
|
+
squadsMultisigVault: multisigVault,
|
|
177
|
+
spendingLimit,
|
|
178
|
+
});
|
|
179
|
+
// .preInstructions([
|
|
180
|
+
// createAssociatedTokenAccountIdempotentInstruction(
|
|
181
|
+
// this.provider.publicKey,
|
|
182
|
+
// treasuryQuoteAccount,
|
|
183
|
+
// daoTreasury,
|
|
184
|
+
// USDC
|
|
185
|
+
// ),
|
|
186
|
+
// ]);
|
|
163
187
|
}
|
|
164
|
-
refundIx(launch, funder = this.provider.publicKey, isDevnet = false) {
|
|
165
|
-
const USDC = isDevnet ? DEVNET_USDC : MAINNET_USDC;
|
|
188
|
+
refundIx(launch, funder = this.provider.publicKey, quoteMint, isDevnet = false) {
|
|
166
189
|
const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
|
|
167
190
|
const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
|
|
168
|
-
const
|
|
169
|
-
const
|
|
191
|
+
const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
|
|
192
|
+
const funderQuoteAccount = getAssociatedTokenAddressSync(quoteMint, funder, true);
|
|
170
193
|
return this.launchpad.methods.refund().accounts({
|
|
171
194
|
launch,
|
|
172
195
|
launchSigner,
|
|
173
|
-
|
|
196
|
+
launchQuoteVault,
|
|
174
197
|
funder,
|
|
175
|
-
|
|
198
|
+
funderQuoteAccount,
|
|
176
199
|
fundingRecord,
|
|
177
200
|
});
|
|
178
201
|
}
|
|
179
|
-
claimIx(launch,
|
|
202
|
+
claimIx(launch, baseMint, funder = this.provider.publicKey) {
|
|
180
203
|
const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
|
|
181
204
|
const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
|
|
182
205
|
return this.launchpad.methods
|
|
@@ -186,12 +209,12 @@ export class LaunchpadClient {
|
|
|
186
209
|
fundingRecord,
|
|
187
210
|
launchSigner,
|
|
188
211
|
funder,
|
|
189
|
-
funderTokenAccount: getAssociatedTokenAddressSync(
|
|
190
|
-
|
|
191
|
-
|
|
212
|
+
funderTokenAccount: getAssociatedTokenAddressSync(baseMint, funder, true),
|
|
213
|
+
baseMint,
|
|
214
|
+
launchBaseVault: getAssociatedTokenAddressSync(baseMint, launchSigner, true),
|
|
192
215
|
})
|
|
193
216
|
.preInstructions([
|
|
194
|
-
createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, getAssociatedTokenAddressSync(
|
|
217
|
+
createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, getAssociatedTokenAddressSync(baseMint, funder, true), funder, baseMint),
|
|
195
218
|
]);
|
|
196
219
|
}
|
|
197
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchpadClient.js","sourceRoot":"","sources":["../../src/v0.5/LaunchpadClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,SAAS,GAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,GAAG,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,wBAAwB,EACxB,6BAA6B,EAC7B,sCAAsC,EACtC,6BAA6B,EAC7B,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"LaunchpadClient.js","sourceRoot":"","sources":["../../src/v0.5/LaunchpadClient.ts"],"names":[],"mappings":"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"}
|