@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.
@@ -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 { BN } from "@coral-xyz/anchor";
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, tokenMint: PublicKey, launchAuthority?: PublicKey, isDevnet?: boolean, payer?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
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: "tokenMint";
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: "usdcVault";
47
+ name: "quoteVault";
48
48
  isMut: true;
49
49
  isSigner: false;
50
50
  }, {
51
- name: "tokenVault";
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: "usdcMint";
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?: PublicKey, isDevnet?: boolean): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
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: "launchUsdcVault";
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: "funderUsdcAccount";
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, tokenMint: PublicKey, isDevnet?: boolean): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
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: "authority";
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: "launchTokenVault";
204
+ name: "launchBaseVault";
209
205
  isMut: true;
210
206
  isSigner: false;
211
207
  }, {
212
- name: "treasuryUsdcAccount";
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: "tokenMint";
220
+ name: "baseMint";
230
221
  isMut: true;
231
222
  isSigner: false;
232
223
  }, {
233
- name: "usdcMint";
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: "daoTreasury";
267
- isMut: false;
252
+ name: "squadsMultisig";
253
+ isMut: true;
268
254
  isSigner: false;
269
255
  }, {
270
- name: "cpSwapProgram";
256
+ name: "squadsMultisigVault";
271
257
  isMut: false;
272
258
  isSigner: false;
273
259
  }, {
274
- name: "associatedTokenProgram";
275
- isMut: false;
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: "autocratProgram";
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: "autocratEventAuthority";
272
+ name: "associatedTokenProgram";
295
273
  isMut: false;
296
274
  isSigner: false;
297
275
  }, {
298
- name: "rent";
299
- isMut: false;
300
- isSigner: false;
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?: PublicKey, isDevnet?: boolean): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
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: "launchUsdcVault";
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: "funderUsdcAccount";
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, tokenMint: PublicKey, funder?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Launchpad, {
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: "tokenMint";
399
+ name: "baseMint";
377
400
  isMut: true;
378
401
  isSigner: false;
379
402
  }, {
380
- name: "launchTokenVault";
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 { getDaoTreasuryAddr, getEventAuthorityAddr, getFundingRecordAddr, getLaunchAddr, getLaunchDaoAddr, getLaunchSignerAddr, getLiquidityPoolAddr, getMetadataAddr, getRaydiumCpmmLpMintAddr, } from "./utils/pda.js";
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, tokenMint, launchAuthority = this.provider.publicKey, isDevnet = false, payer = this.provider.publicKey) {
48
- const USDC = isDevnet ? DEVNET_USDC : MAINNET_USDC;
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 usdcVault = getAssociatedTokenAddressSync(USDC, launchSigner, true);
52
- const tokenVault = getAssociatedTokenAddressSync(tokenMint, launchSigner, true);
53
- const [tokenMetadata] = getMetadataAddr(tokenMint);
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
- usdcVault,
66
- tokenVault,
68
+ quoteVault,
69
+ baseVault,
67
70
  launchAuthority,
68
- usdcMint: USDC,
69
- tokenMint,
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(USDC, launchSigner, true), launchSigner, USDC),
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 launchUsdcVault = getAssociatedTokenAddressSync(USDC, launchSigner, true);
89
- const funderUsdcAccount = getAssociatedTokenAddressSync(USDC, funder, true);
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
- launchUsdcVault,
96
+ launchQuoteVault,
94
97
  fundingRecord,
95
98
  funder,
96
- funderUsdcAccount,
99
+ funderQuoteAccount,
97
100
  launchSigner,
98
101
  });
99
102
  }
100
- completeLaunchIx(launch, tokenMint, isDevnet = false) {
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 launchUsdcVault = getAssociatedTokenAddressSync(USDC, launchSigner, true);
104
- const launchTokenVault = getAssociatedTokenAddressSync(tokenMint, launchSigner, true);
106
+ const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
107
+ const launchBaseVault = getAssociatedTokenAddressSync(baseMint, launchSigner, true);
105
108
  // const daoKp = Keypair.generate();
106
- const [dao] = getLaunchDaoAddr(this.launchpad.programId, launch);
107
- const [daoTreasury] = getDaoTreasuryAddr(this.autocratClient.getProgramId(), dao);
108
- const treasuryUsdcAccount = getAssociatedTokenAddressSync(USDC, daoTreasury, true);
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
- tokenMint.toBuffer(),
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(tokenMint);
128
- return this.launchpad.methods
129
- .completeLaunch()
130
- .accounts({
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
- launchUsdcVault,
134
- launchTokenVault,
145
+ launchQuoteVault,
146
+ launchBaseVault,
135
147
  dao,
136
- daoTreasury,
137
- treasuryUsdcAccount,
138
- treasuryLpAccount: getAssociatedTokenAddressSync(lpMint, daoTreasury, true),
139
- usdcMint: USDC,
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
- cpSwapProgram: cpSwapProgramId,
149
- authority: isDevnet ? DEVNET_RAYDIUM_AUTHORITY : RAYDIUM_AUTHORITY,
150
- ammConfig: isDevnet
151
- ? DEVNET_LOW_FEE_RAYDIUM_CONFIG
152
- : LOW_FEE_RAYDIUM_CONFIG,
153
- createPoolFee: isDevnet
154
- ? DEVNET_RAYDIUM_CREATE_POOL_FEE_RECEIVE
155
- : RAYDIUM_CREATE_POOL_FEE_RECEIVE,
156
- autocratProgram: this.autocratClient.getProgramId(),
157
- tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
158
- autocratEventAuthority,
159
- })
160
- .preInstructions([
161
- createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, treasuryUsdcAccount, daoTreasury, USDC),
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 launchUsdcVault = getAssociatedTokenAddressSync(USDC, launchSigner, true);
169
- const funderUsdcAccount = getAssociatedTokenAddressSync(USDC, funder, true);
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
- launchUsdcVault,
196
+ launchQuoteVault,
174
197
  funder,
175
- funderUsdcAccount,
198
+ funderQuoteAccount,
176
199
  fundingRecord,
177
200
  });
178
201
  }
179
- claimIx(launch, tokenMint, funder = this.provider.publicKey) {
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(tokenMint, funder, true),
190
- tokenMint,
191
- launchTokenVault: getAssociatedTokenAddressSync(tokenMint, launchSigner, true),
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(tokenMint, funder, true), funder, tokenMint),
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":"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"}
1
+ {"version":3,"file":"LaunchpadClient.js","sourceRoot":"","sources":["../../src/v0.5/LaunchpadClient.ts"],"names":[],"mappings":"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"}