@metadaoproject/programs 0.1.0-alpha.0 → 0.1.0-alpha.2

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.
@@ -0,0 +1,406 @@
1
+ import { Program } from "@coral-xyz/anchor";
2
+ import { PublicKey, ComputeBudgetProgram } from "@solana/web3.js";
3
+ import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID, } from "@solana/spl-token";
4
+ import BN from "bn.js";
5
+ import * as multisig from "@sqds/multisig";
6
+ import { LAUNCHPAD_V0_8_PROGRAM_ID, MPL_TOKEN_METADATA_PROGRAM_ID, MAINNET_USDC, SQUADS_PROGRAM_ID, SQUADS_PROGRAM_CONFIG, SQUADS_PROGRAM_CONFIG_TREASURY, SQUADS_PROGRAM_CONFIG_TREASURY_DEVNET, DAMM_V2_PROGRAM_ID, LAUNCHPAD_V0_8_MAINNET_METEORA_CONFIG, METADAO_MULTISIG_VAULT, } from "../../constants.js";
7
+ import { getFundingRecordAddr, getLaunchAddr, getLaunchSignerAddr, } from "./pda.js";
8
+ import { getEventAuthorityAddr, getMetadataAddr } from "../../pda.js";
9
+ import { LaunchpadIDL, } from "./types/index.js";
10
+ import { FutarchyClient, getDaoAddr } from "../../futarchy/v0.6/index.js";
11
+ import { MintGovernorClient, getMintGovernorAddr, getMintAuthorityAddr, } from "../../mint_governor/v0.7/index.js";
12
+ import { PerformancePackageV2Client, getPerformancePackageV2Addr, } from "../../performance_package_v2/v0.7/index.js";
13
+ import { BidWallClient } from "../../bid_wall/v0.7/index.js";
14
+ export class LaunchpadClient {
15
+ launchpad;
16
+ provider;
17
+ futarchyClient;
18
+ mintGovernorClient;
19
+ performancePackageV2;
20
+ bidWall;
21
+ constructor(params) {
22
+ this.provider = params.provider;
23
+ this.launchpad = new Program(LaunchpadIDL, params.launchpadProgramId || LAUNCHPAD_V0_8_PROGRAM_ID, this.provider);
24
+ this.futarchyClient = FutarchyClient.createClient({
25
+ provider: this.provider,
26
+ futarchyProgramId: params.futarchyProgramId,
27
+ conditionalVaultProgramId: params.conditionalVaultProgramId,
28
+ });
29
+ this.mintGovernorClient = MintGovernorClient.createClient({
30
+ provider: this.provider,
31
+ programId: params.mintGovernorProgramId,
32
+ });
33
+ this.performancePackageV2 = PerformancePackageV2Client.createClient({
34
+ provider: this.provider,
35
+ programId: params.performancePackageV2ProgramId,
36
+ });
37
+ this.bidWall = BidWallClient.createClient({
38
+ provider: this.provider,
39
+ bidWallProgramId: params.bidWallProgramId,
40
+ });
41
+ }
42
+ static createClient(params) {
43
+ return new LaunchpadClient(params);
44
+ }
45
+ getProgramId() {
46
+ return this.launchpad.programId;
47
+ }
48
+ async getLaunch(launch) {
49
+ return await this.launchpad.account.launch.fetch(launch);
50
+ }
51
+ async fetchLaunch(launch) {
52
+ return await this.launchpad.account.launch.fetchNullable(launch);
53
+ }
54
+ async deserializeLaunch(accountInfo) {
55
+ return this.launchpad.coder.accounts.decode("launch", accountInfo.data);
56
+ }
57
+ async getFundingRecord(fundingRecord) {
58
+ return await this.launchpad.account.fundingRecord.fetch(fundingRecord);
59
+ }
60
+ async fetchFundingRecord(fundingRecord) {
61
+ return await this.launchpad.account.fundingRecord.fetchNullable(fundingRecord);
62
+ }
63
+ async deserializeFundingRecord(accountInfo) {
64
+ return this.launchpad.coder.accounts.decode("fundingRecord", accountInfo.data);
65
+ }
66
+ getLaunchAddress({ baseMint }) {
67
+ return getLaunchAddr(this.launchpad.programId, baseMint)[0];
68
+ }
69
+ getLaunchSignerAddress({ launch }) {
70
+ return getLaunchSignerAddr(this.launchpad.programId, launch)[0];
71
+ }
72
+ getMintGovernorAddress({ baseMint, launchSigner, }) {
73
+ return getMintGovernorAddr({
74
+ programId: this.mintGovernorClient.programId,
75
+ mint: baseMint,
76
+ createKey: launchSigner,
77
+ })[0];
78
+ }
79
+ getMintAuthorityAddress({ mintGovernor, authorizedMinter, }) {
80
+ return getMintAuthorityAddr({
81
+ programId: this.mintGovernorClient.programId,
82
+ mintGovernor,
83
+ authorizedMinter,
84
+ })[0];
85
+ }
86
+ getLaunchPerformancePackageAddress({ launch, }) {
87
+ const launchSigner = this.getLaunchSignerAddress({ launch });
88
+ return getPerformancePackageV2Addr({ createKey: launchSigner })[0];
89
+ }
90
+ getLaunchDaoAddress({ launch }) {
91
+ const launchSigner = this.getLaunchSignerAddress({ launch });
92
+ return getDaoAddr({ nonce: new BN(0), daoCreator: launchSigner })[0];
93
+ }
94
+ getFundingRecordAddress({ launch, funder, }) {
95
+ return getFundingRecordAddr(this.launchpad.programId, launch, funder)[0];
96
+ }
97
+ initializeLaunchIx({ tokenName, tokenSymbol, tokenUri, minimumRaiseAmount, secondsForLaunch = 60 * 60 * 24 * 5, // 5 days
98
+ baseMint, quoteMint = MAINNET_USDC, monthlySpendingLimitAmount, monthlySpendingLimitMembers, performancePackageGrantee, performancePackageTokenAmount, monthsUntilInsidersCanUnlock, teamAddress, launchAuthority = this.provider.publicKey, payer = this.provider.publicKey, additionalTokensRecipient, additionalTokensAmount, accumulatorActivationDelaySeconds = 0, hasBidWall = false, }) {
99
+ const [launch] = getLaunchAddr(this.launchpad.programId, baseMint);
100
+ const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
101
+ const quoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
102
+ const baseVault = getAssociatedTokenAddressSync(baseMint, launchSigner, true);
103
+ const [tokenMetadata] = getMetadataAddr(baseMint);
104
+ // MintGovernor PDAs
105
+ const [mintGovernor] = getMintGovernorAddr({
106
+ programId: this.mintGovernorClient.programId,
107
+ mint: baseMint,
108
+ createKey: launchSigner,
109
+ });
110
+ const [mintGovernorEventAuthority] = getEventAuthorityAddr(this.mintGovernorClient.programId);
111
+ return this.launchpad.methods
112
+ .initializeLaunch({
113
+ minimumRaiseAmount,
114
+ secondsForLaunch,
115
+ tokenName,
116
+ tokenSymbol,
117
+ tokenUri,
118
+ monthlySpendingLimitAmount,
119
+ monthlySpendingLimitMembers,
120
+ performancePackageGrantee,
121
+ performancePackageTokenAmount,
122
+ monthsUntilInsidersCanUnlock,
123
+ teamAddress,
124
+ additionalTokensAmount: additionalTokensAmount ?? new BN(0),
125
+ accumulatorActivationDelaySeconds,
126
+ hasBidWall,
127
+ })
128
+ .accounts({
129
+ launch,
130
+ launchSigner,
131
+ quoteVault,
132
+ baseVault,
133
+ launchAuthority,
134
+ quoteMint,
135
+ baseMint,
136
+ tokenMetadata,
137
+ tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
138
+ payer,
139
+ additionalTokensRecipient: additionalTokensRecipient ?? null,
140
+ mintGovernor,
141
+ mintGovernorProgram: this.mintGovernorClient.programId,
142
+ mintGovernorEventAuthority,
143
+ })
144
+ .preInstructions([
145
+ createAssociatedTokenAccountIdempotentInstruction(payer, getAssociatedTokenAddressSync(quoteMint, launchSigner, true), launchSigner, quoteMint),
146
+ ]);
147
+ }
148
+ startLaunchIx({ launch, launchAuthority = this.provider.publicKey, }) {
149
+ return this.launchpad.methods.startLaunch().accounts({
150
+ launch,
151
+ launchAuthority,
152
+ });
153
+ }
154
+ fundIx({ launch, amount, funder = this.provider.publicKey, payer = this.provider.publicKey, quoteMint = MAINNET_USDC, }) {
155
+ const launchSigner = this.getLaunchSignerAddress({ launch });
156
+ const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
157
+ const funderQuoteAccount = getAssociatedTokenAddressSync(quoteMint, funder, true);
158
+ const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
159
+ return this.launchpad.methods.fund(amount).accounts({
160
+ launch,
161
+ launchQuoteVault,
162
+ fundingRecord,
163
+ funder,
164
+ payer,
165
+ funderQuoteAccount,
166
+ });
167
+ }
168
+ closeLaunchIx({ launch }) {
169
+ return this.launchpad.methods.closeLaunch().accounts({
170
+ launch,
171
+ });
172
+ }
173
+ setFundingRecordApprovalIx({ launch, funder, launchAuthority = this.provider.publicKey, approvedAmount, }) {
174
+ let fundingRecord = getFundingRecordAddr(this.launchpad.programId, launch, funder)[0];
175
+ return this.launchpad.methods
176
+ .setFundingRecordApproval(approvedAmount)
177
+ .accounts({
178
+ launch,
179
+ fundingRecord,
180
+ launchAuthority,
181
+ });
182
+ }
183
+ settleLaunchIx({ launch, baseMint, quoteMint = MAINNET_USDC, launchAuthority, isDevnet = false, meteoraConfig = LAUNCHPAD_V0_8_MAINNET_METEORA_CONFIG, feeRecipient = METADAO_MULTISIG_VAULT, payer = this.provider.publicKey, }) {
184
+ const launchSigner = this.getLaunchSignerAddress({ launch });
185
+ const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
186
+ const launchBaseVault = getAssociatedTokenAddressSync(baseMint, launchSigner, true);
187
+ const [dao] = getDaoAddr({
188
+ nonce: new BN(0),
189
+ daoCreator: launchSigner,
190
+ });
191
+ const [futarchyEventAuthority] = getEventAuthorityAddr(this.futarchyClient.getProgramId());
192
+ const [tokenMetadata] = getMetadataAddr(baseMint);
193
+ const [multisigPda] = multisig.getMultisigPda({ createKey: dao });
194
+ const [multisigVault] = multisig.getVaultPda({
195
+ multisigPda,
196
+ index: 0,
197
+ });
198
+ const [spendingLimit] = multisig.getSpendingLimitPda({
199
+ multisigPda,
200
+ createKey: dao,
201
+ });
202
+ const treasuryQuoteAccount = getAssociatedTokenAddressSync(quoteMint, multisigVault, true);
203
+ const [ammPosition] = PublicKey.findProgramAddressSync([Buffer.from("amm_position"), dao.toBuffer(), multisigVault.toBuffer()], this.futarchyClient.getProgramId());
204
+ // Meteora PDAs
205
+ const [positionNftMint] = PublicKey.findProgramAddressSync([Buffer.from("position_nft_mint"), baseMint.toBuffer()], this.launchpad.programId);
206
+ const [positionNftAccount] = PublicKey.findProgramAddressSync([Buffer.from("position_nft_account"), positionNftMint.toBuffer()], DAMM_V2_PROGRAM_ID);
207
+ function getFirstKey(key1, key2) {
208
+ const buf1 = key1.toBuffer();
209
+ const buf2 = key2.toBuffer();
210
+ if (Buffer.compare(buf1, buf2) === 1) {
211
+ return buf1;
212
+ }
213
+ return buf2;
214
+ }
215
+ function getSecondKey(key1, key2) {
216
+ const buf1 = key1.toBuffer();
217
+ const buf2 = key2.toBuffer();
218
+ if (Buffer.compare(buf1, buf2) === 1) {
219
+ return buf2;
220
+ }
221
+ return buf1;
222
+ }
223
+ const [pool] = PublicKey.findProgramAddressSync([
224
+ Buffer.from("pool"),
225
+ meteoraConfig.toBuffer(),
226
+ getFirstKey(baseMint, quoteMint),
227
+ getSecondKey(baseMint, quoteMint),
228
+ ], DAMM_V2_PROGRAM_ID);
229
+ const [position] = PublicKey.findProgramAddressSync([Buffer.from("position"), positionNftMint.toBuffer()], DAMM_V2_PROGRAM_ID);
230
+ const [tokenAVault] = PublicKey.findProgramAddressSync([Buffer.from("token_vault"), baseMint.toBuffer(), pool.toBuffer()], DAMM_V2_PROGRAM_ID);
231
+ const [tokenBVault] = PublicKey.findProgramAddressSync([Buffer.from("token_vault"), quoteMint.toBuffer(), pool.toBuffer()], DAMM_V2_PROGRAM_ID);
232
+ const [poolCreatorAuthority] = PublicKey.findProgramAddressSync([Buffer.from("damm_pool_creator_authority")], this.launchpad.programId);
233
+ const [poolAuthority] = PublicKey.findProgramAddressSync([Buffer.from("pool_authority")], DAMM_V2_PROGRAM_ID);
234
+ const [dammV2EventAuthority] = getEventAuthorityAddr(DAMM_V2_PROGRAM_ID);
235
+ // Bid wall PDAs
236
+ const bidWall = this.bidWall.getBidWallAddress({
237
+ baseMint,
238
+ creator: launchSigner,
239
+ nonce: new BN(0),
240
+ });
241
+ const bidWallQuoteTokenAccount = getAssociatedTokenAddressSync(quoteMint, bidWall, true);
242
+ return this.launchpad.methods
243
+ .settleLaunch()
244
+ .accounts({
245
+ launch,
246
+ launchSigner,
247
+ launchQuoteVault,
248
+ launchBaseVault,
249
+ launchAuthority,
250
+ dao,
251
+ treasuryQuoteAccount,
252
+ quoteMint,
253
+ baseMint,
254
+ tokenMetadata,
255
+ payer,
256
+ daoOwnedLpPosition: ammPosition,
257
+ futarchyAmmQuoteVault: getAssociatedTokenAddressSync(quoteMint, dao, true),
258
+ futarchyAmmBaseVault: getAssociatedTokenAddressSync(baseMint, dao, true),
259
+ staticAccounts: {
260
+ futarchyProgram: this.futarchyClient.getProgramId(),
261
+ tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
262
+ futarchyEventAuthority,
263
+ squadsProgram: SQUADS_PROGRAM_ID,
264
+ squadsProgramConfig: SQUADS_PROGRAM_CONFIG,
265
+ squadsProgramConfigTreasury: isDevnet
266
+ ? SQUADS_PROGRAM_CONFIG_TREASURY_DEVNET
267
+ : SQUADS_PROGRAM_CONFIG_TREASURY,
268
+ bidWallProgram: this.bidWall.programId,
269
+ bidWallEventAuthority: this.bidWall.getEventAuthorityAddress(),
270
+ },
271
+ squadsMultisig: multisigPda,
272
+ squadsMultisigVault: multisigVault,
273
+ spendingLimit,
274
+ bidWall,
275
+ bidWallQuoteTokenAccount,
276
+ feeRecipient,
277
+ meteoraAccounts: {
278
+ dammV2Program: DAMM_V2_PROGRAM_ID,
279
+ config: meteoraConfig,
280
+ token2022Program: TOKEN_2022_PROGRAM_ID,
281
+ positionNftAccount,
282
+ pool,
283
+ position,
284
+ positionNftMint,
285
+ baseMint,
286
+ quoteMint,
287
+ tokenAVault,
288
+ tokenBVault,
289
+ poolCreatorAuthority,
290
+ poolAuthority,
291
+ dammV2EventAuthority,
292
+ },
293
+ })
294
+ .preInstructions([
295
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 800_000 }),
296
+ ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }),
297
+ ]);
298
+ }
299
+ claimIx({ launch, baseMint, funder = this.provider.publicKey, }) {
300
+ const launchSigner = this.getLaunchSignerAddress({ launch });
301
+ const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
302
+ return this.launchpad.methods
303
+ .claim()
304
+ .accounts({
305
+ launch,
306
+ fundingRecord,
307
+ launchSigner,
308
+ baseMint,
309
+ launchBaseVault: getAssociatedTokenAddressSync(baseMint, launchSigner, true),
310
+ funder,
311
+ funderTokenAccount: getAssociatedTokenAddressSync(baseMint, funder, true),
312
+ })
313
+ .preInstructions([
314
+ createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, getAssociatedTokenAddressSync(baseMint, funder, true), funder, baseMint),
315
+ ]);
316
+ }
317
+ refundIx({ launch, funder = this.provider.publicKey, quoteMint = MAINNET_USDC, }) {
318
+ const launchSigner = this.getLaunchSignerAddress({ launch });
319
+ const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
320
+ const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
321
+ const funderQuoteAccount = getAssociatedTokenAddressSync(quoteMint, funder, true);
322
+ return this.launchpad.methods.refund().accounts({
323
+ launch,
324
+ fundingRecord,
325
+ launchQuoteVault,
326
+ launchSigner,
327
+ funder,
328
+ funderQuoteAccount,
329
+ });
330
+ }
331
+ finalizeLaunchIx({ launch, baseMint, performancePackageGrantee, payer = this.provider.publicKey, }) {
332
+ const launchSigner = this.getLaunchSignerAddress({ launch });
333
+ const [dao] = getDaoAddr({
334
+ nonce: new BN(0),
335
+ daoCreator: launchSigner,
336
+ });
337
+ const [squadsMultisig] = multisig.getMultisigPda({ createKey: dao });
338
+ const [squadsMultisigVault] = multisig.getVaultPda({
339
+ multisigPda: squadsMultisig,
340
+ index: 0,
341
+ });
342
+ const [mintGovernor] = getMintGovernorAddr({
343
+ programId: this.mintGovernorClient.programId,
344
+ mint: baseMint,
345
+ createKey: launchSigner,
346
+ });
347
+ const performancePackage = getPerformancePackageV2Addr({
348
+ createKey: launchSigner,
349
+ })[0];
350
+ const [ppMintAuthority] = getMintAuthorityAddr({
351
+ programId: this.mintGovernorClient.programId,
352
+ mintGovernor,
353
+ authorizedMinter: performancePackage,
354
+ });
355
+ const [daoMintAuthority] = getMintAuthorityAddr({
356
+ programId: this.mintGovernorClient.programId,
357
+ mintGovernor,
358
+ authorizedMinter: squadsMultisigVault,
359
+ });
360
+ const [mintGovernorEventAuthority] = getEventAuthorityAddr(this.mintGovernorClient.programId);
361
+ const [performancePackageV2EventAuthority] = getEventAuthorityAddr(this.performancePackageV2.programId);
362
+ return this.launchpad.methods
363
+ .finalizeLaunch()
364
+ .accounts({
365
+ launch,
366
+ payer,
367
+ launchSigner,
368
+ baseMint,
369
+ dao,
370
+ squadsMultisig,
371
+ squadsMultisigVault,
372
+ performancePackageGrantee,
373
+ mintGovernor,
374
+ ppMintAuthority,
375
+ daoMintAuthority,
376
+ performancePackage,
377
+ squadsProgram: SQUADS_PROGRAM_ID,
378
+ mintGovernorProgram: this.mintGovernorClient.programId,
379
+ mintGovernorEventAuthority,
380
+ performancePackageV2Program: this.performancePackageV2.programId,
381
+ performancePackageV2EventAuthority,
382
+ })
383
+ .preInstructions([
384
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 400_000 }),
385
+ ]);
386
+ }
387
+ claimAdditionalTokenAllocationIx({ launch, baseMint, additionalTokensRecipient, payer = this.provider.publicKey, }) {
388
+ const launchSigner = this.getLaunchSignerAddress({ launch });
389
+ return this.launchpad.methods.claimAdditionalTokenAllocation().accounts({
390
+ launch,
391
+ payer,
392
+ launchSigner,
393
+ launchBaseVault: getAssociatedTokenAddressSync(baseMint, launchSigner, true),
394
+ baseMint,
395
+ additionalTokensRecipient,
396
+ additionalTokensRecipientTokenAccount: getAssociatedTokenAddressSync(baseMint, additionalTokensRecipient, true),
397
+ });
398
+ }
399
+ extendLaunchIx({ launch, durationSeconds, admin = METADAO_MULTISIG_VAULT, }) {
400
+ return this.launchpad.methods.extendLaunch({ durationSeconds }).accounts({
401
+ launch,
402
+ admin,
403
+ });
404
+ }
405
+ }
406
+ //# sourceMappingURL=LaunchpadClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaunchpadClient.js","sourceRoot":"","sources":["../../../src/launchpad/v0.8/LaunchpadClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./types/index.js";
2
+ export * from "./pda.js";
3
+ export * from "./LaunchpadClient.js";
@@ -0,0 +1,4 @@
1
+ export * from "./types/index.js";
2
+ export * from "./pda.js";
3
+ export * from "./LaunchpadClient.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/launchpad/v0.8/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ export declare function getLaunchAddr(programId: PublicKey | undefined, tokenMint: PublicKey): [PublicKey, number];
3
+ export declare const getLaunchSignerAddr: (programId: PublicKey | undefined, launch: PublicKey) => [PublicKey, number];
4
+ export declare const getFundingRecordAddr: (programId: PublicKey | undefined, launch: PublicKey, funder: PublicKey) => [PublicKey, number];
@@ -0,0 +1,12 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { LAUNCHPAD_V0_8_PROGRAM_ID } from "../../constants.js";
3
+ export function getLaunchAddr(programId = LAUNCHPAD_V0_8_PROGRAM_ID, tokenMint) {
4
+ return PublicKey.findProgramAddressSync([Buffer.from("launch"), tokenMint.toBuffer()], programId);
5
+ }
6
+ export const getLaunchSignerAddr = (programId = LAUNCHPAD_V0_8_PROGRAM_ID, launch) => {
7
+ return PublicKey.findProgramAddressSync([Buffer.from("launch_signer"), launch.toBuffer()], programId);
8
+ };
9
+ export const getFundingRecordAddr = (programId = LAUNCHPAD_V0_8_PROGRAM_ID, launch, funder) => {
10
+ return PublicKey.findProgramAddressSync([Buffer.from("funding_record"), launch.toBuffer(), funder.toBuffer()], programId);
11
+ };
12
+ //# sourceMappingURL=pda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pda.js","sourceRoot":"","sources":["../../../src/launchpad/v0.8/pda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,UAAU,aAAa,CAC3B,YAAuB,yBAAyB,EAChD,SAAoB;IAEpB,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,EAC7C,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,YAAuB,yBAAyB,EAChD,MAAiB,EACI,EAAE;IACvB,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,EACjD,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,YAAuB,yBAAyB,EAChD,MAAiB,EACjB,MAAiB,EACI,EAAE;IACvB,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,EACrE,SAAS,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { IdlAccounts, IdlEvents } from "@coral-xyz/anchor";
2
+ import { LaunchpadV8 as LaunchpadProgram, IDL as LaunchpadIDL } from "./launchpad_v8.js";
3
+ export { LaunchpadProgram, LaunchpadIDL };
4
+ export type Launch = IdlAccounts<LaunchpadProgram>["launch"];
5
+ export type FundingRecord = IdlAccounts<LaunchpadProgram>["fundingRecord"];
6
+ export type LaunchInitializedEvent = IdlEvents<LaunchpadProgram>["LaunchInitializedEvent"];
7
+ export type LaunchStartedEvent = IdlEvents<LaunchpadProgram>["LaunchStartedEvent"];
8
+ export type LaunchFundedEvent = IdlEvents<LaunchpadProgram>["LaunchFundedEvent"];
9
+ export type FundingRecordApprovalSetEvent = IdlEvents<LaunchpadProgram>["FundingRecordApprovalSetEvent"];
10
+ export type LaunchSettledEvent = IdlEvents<LaunchpadProgram>["LaunchSettledEvent"];
11
+ export type LaunchFinalizedEvent = IdlEvents<LaunchpadProgram>["LaunchFinalizedEvent"];
12
+ export type LaunchRefundedEvent = IdlEvents<LaunchpadProgram>["LaunchRefundedEvent"];
13
+ export type LaunchClaimEvent = IdlEvents<LaunchpadProgram>["LaunchClaimEvent"];
14
+ export type LaunchCloseEvent = IdlEvents<LaunchpadProgram>["LaunchCloseEvent"];
15
+ export type LaunchClaimAdditionalTokenAllocationEvent = IdlEvents<LaunchpadProgram>["LaunchClaimAdditionalTokenAllocationEvent"];
16
+ export type LaunchExtendedEvent = IdlEvents<LaunchpadProgram>["LaunchExtendedEvent"];
17
+ export type LaunchpadEvent = LaunchInitializedEvent | LaunchStartedEvent | LaunchFundedEvent | FundingRecordApprovalSetEvent | LaunchSettledEvent | LaunchFinalizedEvent | LaunchRefundedEvent | LaunchClaimEvent | LaunchCloseEvent | LaunchClaimAdditionalTokenAllocationEvent | LaunchExtendedEvent;
@@ -0,0 +1,3 @@
1
+ import { IDL as LaunchpadIDL, } from "./launchpad_v8.js";
2
+ export { LaunchpadIDL };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/launchpad/v0.8/types/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,GAAG,IAAI,YAAY,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAoB,YAAY,EAAE,CAAC"}