From e086ae498d05a2104a13c4cfb159a8e41f8f0eaa Mon Sep 17 00:00:00 2001 From: Pileks Date: Mon, 8 Jun 2026 23:25:36 +0200 Subject: [PATCH] refactor SDK's *Ix functions to only return a single instruction --- scripts/v0.6/finalizeLaunch.ts | 2 +- scripts/v0.6/finalizeProposal.ts | 13 +- scripts/v0.7/completeLaunch.ts | 2 +- sdk/src/futarchy/v0.6/FutarchyClient.ts | 166 ++++++++--------- sdk/src/launchpad/v0.6/LaunchpadClient.ts | 15 +- sdk/src/launchpad/v0.7/LaunchpadClient.ts | 127 +++++++------ sdk/src/launchpad/v0.8/LaunchpadClient.ts | 174 +++++++++--------- tests/bidWall/unit/cancelBidWall.test.ts | 2 +- tests/bidWall/unit/closeBidWall.test.ts | 2 +- tests/bidWall/unit/collectFees.test.ts | 2 +- tests/bidWall/unit/initializeBidWall.test.ts | 2 +- tests/bidWall/unit/sellTokens.test.ts | 2 +- .../futarchy/integration/futarchyAmm.test.ts | 2 +- .../futarchy/unit/adminCancelProposal.test.ts | 2 +- .../futarchy/unit/adminRemoveProposal.test.ts | 2 +- tests/futarchy/unit/collectFees.test.ts | 2 +- .../unit/collectMeteoraDammFees.test.ts | 2 +- tests/futarchy/unit/conditionalSwap.test.ts | 9 +- .../executeMultisigProposalApproval.test.ts | 2 +- tests/futarchy/unit/finalizeProposal.test.ts | 6 +- tests/futarchy/unit/launchProposal.test.ts | 14 +- .../futarchy/unit/unstakeFromProposal.test.ts | 4 +- tests/futarchy/unit/updateDao.test.ts | 6 +- tests/integration/fullLaunch.test.ts | 4 +- tests/integration/fullLaunch_v7.test.ts | 4 +- .../launchpad_v8_full_lifecycle.test.ts | 4 +- .../launchpad_v8_tranche_lifecycle.test.ts | 4 +- tests/launchpad/unit/claim.test.ts | 2 +- tests/launchpad/unit/completeLaunch.test.ts | 6 +- tests/launchpad/unit/refund.test.ts | 4 +- tests/launchpad_v7/unit/claim.test.ts | 2 +- .../claimAdditionalTokenAllocation.test.ts | 4 +- .../launchpad_v7/unit/completeLaunch.test.ts | 14 +- .../unit/initializePerformancePackage.test.ts | 4 +- tests/launchpad_v7/unit/refund.test.ts | 2 +- .../unit/setFundingRecordApproval.test.ts | 2 +- tests/launchpad_v8/unit/claim.test.ts | 2 +- .../claimAdditionalTokenAllocation.test.ts | 2 +- .../launchpad_v8/unit/finalizeLaunch.test.ts | 10 +- tests/launchpad_v8/unit/refund.test.ts | 2 +- .../unit/setFundingRecordApproval.test.ts | 2 +- tests/launchpad_v8/unit/settleLaunch.test.ts | 5 +- tests/main.test.ts | 13 +- .../unit/completeUnlock.test.ts | 3 + 44 files changed, 330 insertions(+), 325 deletions(-) diff --git a/scripts/v0.6/finalizeLaunch.ts b/scripts/v0.6/finalizeLaunch.ts index a28d4cac..dbab1950 100644 --- a/scripts/v0.6/finalizeLaunch.ts +++ b/scripts/v0.6/finalizeLaunch.ts @@ -26,7 +26,7 @@ export const launch = async () => { await launchpad.closeLaunchIx({ launch }).rpc(); const tx = await launchpad - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, // quoteMint: DEVNET_USDC, baseMint: mintKp, diff --git a/scripts/v0.6/finalizeProposal.ts b/scripts/v0.6/finalizeProposal.ts index 46f7ffa4..f6dffd02 100644 --- a/scripts/v0.6/finalizeProposal.ts +++ b/scripts/v0.6/finalizeProposal.ts @@ -1,6 +1,6 @@ import * as anchor from "@coral-xyz/anchor"; import { FutarchyClient } from "@metadaoproject/programs/futarchy/v0.6"; -import { PublicKey, Transaction } from "@solana/web3.js"; +import { PublicKey } from "@solana/web3.js"; import { BN } from "@coral-xyz/anchor"; const provider = anchor.AnchorProvider.env(); @@ -32,17 +32,14 @@ const finalizeProposal = async () => { }) .instruction(); - // Create finalize instruction - const finalizeIx = await futarchyClient - .finalizeProposalIxV2({ + const tx = await futarchyClient + .finalizeProposalTxBuilder({ squadsProposal: proposal.squadsProposal, dao: proposal.dao, baseMint: dao.baseMint, }) - .instruction(); - - // Build and send transaction - const tx = new Transaction().add(spotSwapIx, finalizeIx); + .preInstructions([spotSwapIx]) + .transaction(); tx.recentBlockhash = ( await provider.connection.getLatestBlockhash() ).blockhash; diff --git a/scripts/v0.7/completeLaunch.ts b/scripts/v0.7/completeLaunch.ts index 677c4c2d..cc04e91c 100644 --- a/scripts/v0.7/completeLaunch.ts +++ b/scripts/v0.7/completeLaunch.ts @@ -26,7 +26,7 @@ export const completeLaunch = async () => { let launchAccount = await launchpad.fetchLaunch(LAUNCH_TO_COMPLETE); const tx = await launchpad - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch: LAUNCH_TO_COMPLETE, baseMint: launchAccount.baseMint, launchAuthority: payer.publicKey, diff --git a/sdk/src/futarchy/v0.6/FutarchyClient.ts b/sdk/src/futarchy/v0.6/FutarchyClient.ts index 2468db64..ed814ede 100644 --- a/sdk/src/futarchy/v0.6/FutarchyClient.ts +++ b/sdk/src/futarchy/v0.6/FutarchyClient.ts @@ -300,44 +300,39 @@ export class FutarchyClient { const squadsMultisig = multisig.getMultisigPda({ createKey: dao })[0]; - return this.futarchy.methods - .launchProposal() - .accounts({ - proposal, - dao, - baseVault, - quoteVault, - passBaseMint, + return this.futarchy.methods.launchProposal().accounts({ + proposal, + dao, + baseVault, + quoteVault, + passBaseMint, + passQuoteMint, + failBaseMint, + failQuoteMint, + ammPassBaseVault: getAssociatedTokenAddressSync(passBaseMint, dao, true), + ammPassQuoteVault: getAssociatedTokenAddressSync( passQuoteMint, - failBaseMint, + dao, + true, + ), + ammFailBaseVault: getAssociatedTokenAddressSync(failBaseMint, dao, true), + ammFailQuoteVault: getAssociatedTokenAddressSync( failQuoteMint, - ammPassBaseVault: getAssociatedTokenAddressSync( - passBaseMint, - dao, - true, - ), - ammPassQuoteVault: getAssociatedTokenAddressSync( - passQuoteMint, - dao, - true, - ), - ammFailBaseVault: getAssociatedTokenAddressSync( - failBaseMint, - dao, - true, - ), - ammFailQuoteVault: getAssociatedTokenAddressSync( - failQuoteMint, - dao, - true, - ), - squadsMultisig, - squadsProposal, - payer: this.provider.publicKey, - }) - .preInstructions([ - ComputeBudgetProgram.setComputeUnitLimit({ units: 300_000 }), - ]); + dao, + true, + ), + squadsMultisig, + squadsProposal, + payer: this.provider.publicKey, + }); + } + + launchProposalTxBuilder( + args: Parameters[0], + ) { + return this.launchProposalIx(args).preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 300_000 }), + ]); } spotSwapIx({ @@ -747,7 +742,11 @@ export class FutarchyClient { storedProposal.dao, storedDao.baseMint, storedDao.quoteMint, - ).rpc(); + ) + .preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 300_000 }), + ]) + .rpc(); } finalizeProposalIxV2({ @@ -772,6 +771,14 @@ export class FutarchyClient { ); } + finalizeProposalTxBuilder( + args: Parameters[0], + ) { + return this.finalizeProposalIxV2(args).preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 300_000 }), + ]); + } + /** * @deprecated use `finalizeProposalIxV2` instead */ @@ -797,59 +804,46 @@ export class FutarchyClient { const [vaultEventAuthority] = getEventAuthorityAddr(vaultProgramId); - return this.futarchy.methods - .finalizeProposal() - .accounts({ - proposal, - dao, - squadsProposal, - squadsMultisig: multisigPda, - squadsMultisigProgram: SQUADS_PROGRAM_ID, + return this.futarchy.methods.finalizeProposal().accounts({ + proposal, + dao, + squadsProposal, + squadsMultisig: multisigPda, + squadsMultisigProgram: SQUADS_PROGRAM_ID, + quoteVault, + question, + quoteVaultUnderlyingTokenAccount: getAssociatedTokenAddressSync( + usdc, quoteVault, - question, - quoteVaultUnderlyingTokenAccount: getAssociatedTokenAddressSync( - usdc, - quoteVault, - true, - ), + true, + ), + passQuoteMint, + failQuoteMint, + passBaseMint, + failBaseMint, + ammPassQuoteVault: getAssociatedTokenAddressSync( passQuoteMint, + dao, + true, + ), + ammFailQuoteVault: getAssociatedTokenAddressSync( failQuoteMint, - passBaseMint, - failBaseMint, - ammPassQuoteVault: getAssociatedTokenAddressSync( - passQuoteMint, - dao, - true, - ), - ammFailQuoteVault: getAssociatedTokenAddressSync( - failQuoteMint, - dao, - true, - ), - ammQuoteVault: getAssociatedTokenAddressSync(usdc, dao, true), - ammPassBaseVault: getAssociatedTokenAddressSync( - passBaseMint, - dao, - true, - ), - ammFailBaseVault: getAssociatedTokenAddressSync( - failBaseMint, - dao, - true, - ), - ammBaseVault: getAssociatedTokenAddressSync(daoToken, dao, true), + dao, + true, + ), + ammQuoteVault: getAssociatedTokenAddressSync(usdc, dao, true), + ammPassBaseVault: getAssociatedTokenAddressSync(passBaseMint, dao, true), + ammFailBaseVault: getAssociatedTokenAddressSync(failBaseMint, dao, true), + ammBaseVault: getAssociatedTokenAddressSync(daoToken, dao, true), + baseVault, + baseVaultUnderlyingTokenAccount: getAssociatedTokenAddressSync( + daoToken, baseVault, - baseVaultUnderlyingTokenAccount: getAssociatedTokenAddressSync( - daoToken, - baseVault, - true, - ), - vaultProgram: this.vaultClient.vaultProgram.programId, - vaultEventAuthority, - }) - .preInstructions([ - ComputeBudgetProgram.setComputeUnitLimit({ units: 300_000 }), - ]); + true, + ), + vaultProgram: this.vaultClient.vaultProgram.programId, + vaultEventAuthority, + }); } updateDaoIx({ dao, params }: { dao: PublicKey; params: UpdateDaoParams }) { diff --git a/sdk/src/launchpad/v0.6/LaunchpadClient.ts b/sdk/src/launchpad/v0.6/LaunchpadClient.ts index 173b66e4..2784ed6b 100644 --- a/sdk/src/launchpad/v0.6/LaunchpadClient.ts +++ b/sdk/src/launchpad/v0.6/LaunchpadClient.ts @@ -463,11 +463,16 @@ export class LaunchpadClient { dammV2EventAuthority, }, // poolCreatorAuthority, - }) - .preInstructions([ - ComputeBudgetProgram.setComputeUnitLimit({ units: 850_000 }), - ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }), - ]); + }); + } + + completeLaunchTxBuilder( + args: Parameters[0], + ) { + return this.completeLaunchIx(args).preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 850_000 }), + ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }), + ]); } refundIx({ diff --git a/sdk/src/launchpad/v0.7/LaunchpadClient.ts b/sdk/src/launchpad/v0.7/LaunchpadClient.ts index c2f4910a..da3c859e 100644 --- a/sdk/src/launchpad/v0.7/LaunchpadClient.ts +++ b/sdk/src/launchpad/v0.7/LaunchpadClient.ts @@ -432,72 +432,71 @@ export class LaunchpadClient { true, ); - return this.launchpad.methods - .completeLaunch() - .accounts({ - launch, - launchSigner, - launchQuoteVault, - launchBaseVault, - launchAuthority, - dao, - treasuryQuoteAccount, + return this.launchpad.methods.completeLaunch().accounts({ + launch, + launchSigner, + launchQuoteVault, + launchBaseVault, + launchAuthority, + dao, + treasuryQuoteAccount, + quoteMint, + baseMint, + tokenMetadata, + daoOwnedLpPosition: ammPosition, + futarchyAmmQuoteVault: getAssociatedTokenAddressSync( quoteMint, + dao, + true, + ), + futarchyAmmBaseVault: getAssociatedTokenAddressSync(baseMint, dao, true), + staticAccounts: { + futarchyProgram: this.futarchyClient.getProgramId(), + tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID, + futarchyEventAuthority, + squadsProgram: SQUADS_PROGRAM_ID, + squadsProgramConfig: SQUADS_PROGRAM_CONFIG, + squadsProgramConfigTreasury: isDevnet + ? SQUADS_PROGRAM_CONFIG_TREASURY_DEVNET + : SQUADS_PROGRAM_CONFIG_TREASURY, + bidWallProgram: this.bidWall.programId, + bidWallEventAuthority: this.bidWall.getEventAuthorityAddress(), + }, + squadsMultisig: multisigPda, + squadsMultisigVault: multisigVault, + spendingLimit, + bidWall, + bidWallQuoteTokenAccount, + feeRecipient, + meteoraAccounts: { + dammV2Program: DAMM_V2_PROGRAM_ID, + positionNftMint, baseMint, - tokenMetadata, - daoOwnedLpPosition: ammPosition, - futarchyAmmQuoteVault: getAssociatedTokenAddressSync( - quoteMint, - dao, - true, - ), - futarchyAmmBaseVault: getAssociatedTokenAddressSync( - baseMint, - dao, - true, - ), - staticAccounts: { - futarchyProgram: this.futarchyClient.getProgramId(), - tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID, - futarchyEventAuthority, - squadsProgram: SQUADS_PROGRAM_ID, - squadsProgramConfig: SQUADS_PROGRAM_CONFIG, - squadsProgramConfigTreasury: isDevnet - ? SQUADS_PROGRAM_CONFIG_TREASURY_DEVNET - : SQUADS_PROGRAM_CONFIG_TREASURY, - bidWallProgram: this.bidWall.programId, - bidWallEventAuthority: this.bidWall.getEventAuthorityAddress(), - }, - squadsMultisig: multisigPda, - squadsMultisigVault: multisigVault, - spendingLimit, - bidWall, - bidWallQuoteTokenAccount, - feeRecipient, - meteoraAccounts: { - dammV2Program: DAMM_V2_PROGRAM_ID, - positionNftMint, - baseMint, - quoteMint, - config: meteoraConfig, - token2022Program: TOKEN_2022_PROGRAM_ID, - positionNftAccount, - pool, - // baseMint, - // quoteMint, - poolCreatorAuthority, - position, - tokenAVault, - tokenBVault, - poolAuthority, - dammV2EventAuthority, - }, - // poolCreatorAuthority, - }) - .preInstructions([ - ComputeBudgetProgram.setComputeUnitLimit({ units: 800_000 }), - ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }), - ]); + quoteMint, + config: meteoraConfig, + token2022Program: TOKEN_2022_PROGRAM_ID, + positionNftAccount, + pool, + // baseMint, + // quoteMint, + poolCreatorAuthority, + position, + tokenAVault, + tokenBVault, + poolAuthority, + dammV2EventAuthority, + }, + // poolCreatorAuthority, + }); + } + + completeLaunchTxBuilder( + args: Parameters[0], + ) { + return this.completeLaunchIx(args).preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 800_000 }), + ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }), + ]); } refundIx({ diff --git a/sdk/src/launchpad/v0.8/LaunchpadClient.ts b/sdk/src/launchpad/v0.8/LaunchpadClient.ts index c49d8b14..829d9a5b 100644 --- a/sdk/src/launchpad/v0.8/LaunchpadClient.ts +++ b/sdk/src/launchpad/v0.8/LaunchpadClient.ts @@ -531,70 +531,69 @@ export class LaunchpadClient { true, ); - return this.launchpad.methods - .settleLaunch() - .accounts({ - launch, - launchSigner, - launchQuoteVault, - launchBaseVault, - launchAuthority, - dao, - treasuryQuoteAccount, + return this.launchpad.methods.settleLaunch().accounts({ + launch, + launchSigner, + launchQuoteVault, + launchBaseVault, + launchAuthority, + dao, + treasuryQuoteAccount, + quoteMint, + baseMint, + tokenMetadata, + payer, + daoOwnedLpPosition: ammPosition, + futarchyAmmQuoteVault: getAssociatedTokenAddressSync( quoteMint, + dao, + true, + ), + futarchyAmmBaseVault: getAssociatedTokenAddressSync(baseMint, dao, true), + staticAccounts: { + futarchyProgram: this.futarchyClient.getProgramId(), + tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID, + futarchyEventAuthority, + squadsProgram: SQUADS_PROGRAM_ID, + squadsProgramConfig: SQUADS_PROGRAM_CONFIG, + squadsProgramConfigTreasury: isDevnet + ? SQUADS_PROGRAM_CONFIG_TREASURY_DEVNET + : SQUADS_PROGRAM_CONFIG_TREASURY, + bidWallProgram: this.bidWall.programId, + bidWallEventAuthority: this.bidWall.getEventAuthorityAddress(), + }, + squadsMultisig: multisigPda, + squadsMultisigVault: multisigVault, + spendingLimit, + bidWall, + bidWallQuoteTokenAccount, + feeRecipient, + meteoraAccounts: { + dammV2Program: DAMM_V2_PROGRAM_ID, + config: meteoraConfig, + token2022Program: TOKEN_2022_PROGRAM_ID, + positionNftAccount, + pool, + position, + positionNftMint, baseMint, - tokenMetadata, - payer, - daoOwnedLpPosition: ammPosition, - futarchyAmmQuoteVault: getAssociatedTokenAddressSync( - quoteMint, - dao, - true, - ), - futarchyAmmBaseVault: getAssociatedTokenAddressSync( - baseMint, - dao, - true, - ), - staticAccounts: { - futarchyProgram: this.futarchyClient.getProgramId(), - tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID, - futarchyEventAuthority, - squadsProgram: SQUADS_PROGRAM_ID, - squadsProgramConfig: SQUADS_PROGRAM_CONFIG, - squadsProgramConfigTreasury: isDevnet - ? SQUADS_PROGRAM_CONFIG_TREASURY_DEVNET - : SQUADS_PROGRAM_CONFIG_TREASURY, - bidWallProgram: this.bidWall.programId, - bidWallEventAuthority: this.bidWall.getEventAuthorityAddress(), - }, - squadsMultisig: multisigPda, - squadsMultisigVault: multisigVault, - spendingLimit, - bidWall, - bidWallQuoteTokenAccount, - feeRecipient, - meteoraAccounts: { - dammV2Program: DAMM_V2_PROGRAM_ID, - config: meteoraConfig, - token2022Program: TOKEN_2022_PROGRAM_ID, - positionNftAccount, - pool, - position, - positionNftMint, - baseMint, - quoteMint, - tokenAVault, - tokenBVault, - poolCreatorAuthority, - poolAuthority, - dammV2EventAuthority, - }, - }) - .preInstructions([ - ComputeBudgetProgram.setComputeUnitLimit({ units: 800_000 }), - ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }), - ]); + quoteMint, + tokenAVault, + tokenBVault, + poolCreatorAuthority, + poolAuthority, + dammV2EventAuthority, + }, + }); + } + + settleLaunchTxBuilder( + args: Parameters[0], + ) { + return this.settleLaunchIx(args).preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 800_000 }), + ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }), + ]); } claimIx({ @@ -732,30 +731,33 @@ export class LaunchpadClient { this.performancePackageV2.programId, ); - return this.launchpad.methods - .finalizeLaunch() - .accounts({ - launch, - payer, - launchSigner, - baseMint, - dao, - squadsMultisig, - squadsMultisigVault, - performancePackageGrantee, - mintGovernor, - ppMintAuthority, - daoMintAuthority, - performancePackage, - squadsProgram: SQUADS_PROGRAM_ID, - mintGovernorProgram: this.mintGovernorClient.programId, - mintGovernorEventAuthority, - performancePackageV2Program: this.performancePackageV2.programId, - performancePackageV2EventAuthority, - }) - .preInstructions([ - ComputeBudgetProgram.setComputeUnitLimit({ units: 400_000 }), - ]); + return this.launchpad.methods.finalizeLaunch().accounts({ + launch, + payer, + launchSigner, + baseMint, + dao, + squadsMultisig, + squadsMultisigVault, + performancePackageGrantee, + mintGovernor, + ppMintAuthority, + daoMintAuthority, + performancePackage, + squadsProgram: SQUADS_PROGRAM_ID, + mintGovernorProgram: this.mintGovernorClient.programId, + mintGovernorEventAuthority, + performancePackageV2Program: this.performancePackageV2.programId, + performancePackageV2EventAuthority, + }); + } + + finalizeLaunchTxBuilder( + args: Parameters[0], + ) { + return this.finalizeLaunchIx(args).preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 400_000 }), + ]); } claimAdditionalTokenAllocationIx({ diff --git a/tests/bidWall/unit/cancelBidWall.test.ts b/tests/bidWall/unit/cancelBidWall.test.ts index 25705adb..7d42e8e1 100644 --- a/tests/bidWall/unit/cancelBidWall.test.ts +++ b/tests/bidWall/unit/cancelBidWall.test.ts @@ -109,7 +109,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/bidWall/unit/closeBidWall.test.ts b/tests/bidWall/unit/closeBidWall.test.ts index 81ebbb71..8e8ff46a 100644 --- a/tests/bidWall/unit/closeBidWall.test.ts +++ b/tests/bidWall/unit/closeBidWall.test.ts @@ -108,7 +108,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/bidWall/unit/collectFees.test.ts b/tests/bidWall/unit/collectFees.test.ts index 6a2e0a7c..dddaa3b0 100644 --- a/tests/bidWall/unit/collectFees.test.ts +++ b/tests/bidWall/unit/collectFees.test.ts @@ -108,7 +108,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/bidWall/unit/initializeBidWall.test.ts b/tests/bidWall/unit/initializeBidWall.test.ts index bdd212ea..01a230e6 100644 --- a/tests/bidWall/unit/initializeBidWall.test.ts +++ b/tests/bidWall/unit/initializeBidWall.test.ts @@ -107,7 +107,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/bidWall/unit/sellTokens.test.ts b/tests/bidWall/unit/sellTokens.test.ts index 2e47265a..e1ff75cb 100644 --- a/tests/bidWall/unit/sellTokens.test.ts +++ b/tests/bidWall/unit/sellTokens.test.ts @@ -104,7 +104,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/futarchy/integration/futarchyAmm.test.ts b/tests/futarchy/integration/futarchyAmm.test.ts index b74c7ede..f13c5b04 100644 --- a/tests/futarchy/integration/futarchyAmm.test.ts +++ b/tests/futarchy/integration/futarchyAmm.test.ts @@ -215,7 +215,7 @@ export default function suite() { const proposalAccount = await this.futarchy.getProposal(proposal); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, diff --git a/tests/futarchy/unit/adminCancelProposal.test.ts b/tests/futarchy/unit/adminCancelProposal.test.ts index cea66318..e8e90d22 100644 --- a/tests/futarchy/unit/adminCancelProposal.test.ts +++ b/tests/futarchy/unit/adminCancelProposal.test.ts @@ -118,7 +118,7 @@ export default function suite() { proposal = await this.futarchy.initializeProposal(dao, squadsProposalPda); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, diff --git a/tests/futarchy/unit/adminRemoveProposal.test.ts b/tests/futarchy/unit/adminRemoveProposal.test.ts index 565313bf..cf7215b9 100644 --- a/tests/futarchy/unit/adminRemoveProposal.test.ts +++ b/tests/futarchy/unit/adminRemoveProposal.test.ts @@ -227,7 +227,7 @@ export default function suite() { // Launch the proposal to move it to Pending state await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, diff --git a/tests/futarchy/unit/collectFees.test.ts b/tests/futarchy/unit/collectFees.test.ts index c893e6e7..cfba6231 100644 --- a/tests/futarchy/unit/collectFees.test.ts +++ b/tests/futarchy/unit/collectFees.test.ts @@ -239,7 +239,7 @@ export default function suite() { .then(callbacks[0], callbacks[1]); await this.futarchy - .finalizeProposalIxV2({ + .finalizeProposalTxBuilder({ squadsProposal, dao, baseMint: META, diff --git a/tests/futarchy/unit/collectMeteoraDammFees.test.ts b/tests/futarchy/unit/collectMeteoraDammFees.test.ts index 70adb3cf..5744a9a7 100644 --- a/tests/futarchy/unit/collectMeteoraDammFees.test.ts +++ b/tests/futarchy/unit/collectMeteoraDammFees.test.ts @@ -97,7 +97,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/futarchy/unit/conditionalSwap.test.ts b/tests/futarchy/unit/conditionalSwap.test.ts index f83f11fb..5f300a38 100644 --- a/tests/futarchy/unit/conditionalSwap.test.ts +++ b/tests/futarchy/unit/conditionalSwap.test.ts @@ -1,9 +1,4 @@ -import { - ComputeBudgetProgram, - Keypair, - PublicKey, - TransactionMessage, -} from "@solana/web3.js"; +import { Keypair, PublicKey, TransactionMessage } from "@solana/web3.js"; import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, @@ -258,7 +253,7 @@ export default function suite() { // Finalize the proposal first await this.futarchy - .finalizeProposalIxV2({ + .finalizeProposalTxBuilder({ squadsProposal, dao, baseMint: META, diff --git a/tests/futarchy/unit/executeMultisigProposalApproval.test.ts b/tests/futarchy/unit/executeMultisigProposalApproval.test.ts index 233118d1..481e1118 100644 --- a/tests/futarchy/unit/executeMultisigProposalApproval.test.ts +++ b/tests/futarchy/unit/executeMultisigProposalApproval.test.ts @@ -227,7 +227,7 @@ export default function suite() { // Now launch the futarchy proposal to push the AMM out of Spot. const storedDao = await this.futarchy.getDao(dao); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: storedDao.baseMint, diff --git a/tests/futarchy/unit/finalizeProposal.test.ts b/tests/futarchy/unit/finalizeProposal.test.ts index 231c3c9e..5972313e 100644 --- a/tests/futarchy/unit/finalizeProposal.test.ts +++ b/tests/futarchy/unit/finalizeProposal.test.ts @@ -120,7 +120,7 @@ export default function suite() { proposal = await this.futarchy.initializeProposal(dao, squadsProposalPda); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -360,7 +360,7 @@ export default function suite() { ); const storedProposalEarly = await this.futarchy.getProposal(proposal); await this.futarchy - .finalizeProposalIxV2({ + .finalizeProposalTxBuilder({ squadsProposal: storedProposalEarly.squadsProposal, dao, baseMint: META, @@ -505,7 +505,7 @@ export default function suite() { .rpc(); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal: teamSponsoredProposal, dao: daoWithTeamSponsorship, baseMint: META, diff --git a/tests/futarchy/unit/launchProposal.test.ts b/tests/futarchy/unit/launchProposal.test.ts index a2a06198..3b6be584 100644 --- a/tests/futarchy/unit/launchProposal.test.ts +++ b/tests/futarchy/unit/launchProposal.test.ts @@ -205,7 +205,7 @@ export default function suite() { // Launch proposal without staking anything - should succeed because it's team-sponsored await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -264,7 +264,7 @@ export default function suite() { // Launch should succeed await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -321,7 +321,7 @@ export default function suite() { // Launch should succeed at exact threshold await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -396,7 +396,7 @@ export default function suite() { // Launch the proposal await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -457,7 +457,7 @@ export default function suite() { ); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -543,7 +543,7 @@ export default function suite() { .rpc(); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -647,7 +647,7 @@ export default function suite() { ); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, diff --git a/tests/futarchy/unit/unstakeFromProposal.test.ts b/tests/futarchy/unit/unstakeFromProposal.test.ts index 96a31a72..3451f269 100644 --- a/tests/futarchy/unit/unstakeFromProposal.test.ts +++ b/tests/futarchy/unit/unstakeFromProposal.test.ts @@ -166,7 +166,7 @@ export default function suite() { .rpc(); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, @@ -211,7 +211,7 @@ export default function suite() { .rpc(); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, diff --git a/tests/futarchy/unit/updateDao.test.ts b/tests/futarchy/unit/updateDao.test.ts index 50b8fc00..ee43a26c 100644 --- a/tests/futarchy/unit/updateDao.test.ts +++ b/tests/futarchy/unit/updateDao.test.ts @@ -192,7 +192,7 @@ export default function suite() { // Launch proposal A to put DAO in Futarchy state await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal: proposalA, dao, baseMint: META, @@ -346,7 +346,7 @@ export default function suite() { // Launch proposal B to put DAO in Futarchy state await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal: proposalB, dao, baseMint: META, @@ -493,7 +493,7 @@ export default function suite() { // Launch proposal A to put DAO in Futarchy state await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal: proposalA, dao, baseMint: META, diff --git a/tests/integration/fullLaunch.test.ts b/tests/integration/fullLaunch.test.ts index b2914587..3ba2d17e 100644 --- a/tests/integration/fullLaunch.test.ts +++ b/tests/integration/fullLaunch.test.ts @@ -205,7 +205,7 @@ export default async function suite() { await this.launchpad_v6.closeLaunchIx({ launch }).rpc(); const completeLaunchTx = await this.launchpad_v6 - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, baseMint: META, finalRaiseAmount: new BN(500_000 * 1e6), @@ -462,7 +462,7 @@ export default async function suite() { // Launch the proposal first await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, diff --git a/tests/integration/fullLaunch_v7.test.ts b/tests/integration/fullLaunch_v7.test.ts index e236370d..81241645 100644 --- a/tests/integration/fullLaunch_v7.test.ts +++ b/tests/integration/fullLaunch_v7.test.ts @@ -241,7 +241,7 @@ export default async function suite() { .rpc(); const completeLaunchTx = await this.launchpad_v7 - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, baseMint: META, launchAuthority: launchAuthority.publicKey, @@ -507,7 +507,7 @@ export default async function suite() { // Launch the proposal first await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: META, diff --git a/tests/integration/launchpad_v8_full_lifecycle.test.ts b/tests/integration/launchpad_v8_full_lifecycle.test.ts index 1e2e0389..b015e1ea 100644 --- a/tests/integration/launchpad_v8_full_lifecycle.test.ts +++ b/tests/integration/launchpad_v8_full_lifecycle.test.ts @@ -251,7 +251,7 @@ export default async function suite() { // 6. settle_launch → verify minting, DAO creation // ===================== const settleTx = await launchpadClient - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch, baseMint: META, launchAuthority: launchAuthority.publicKey, @@ -299,7 +299,7 @@ export default async function suite() { assert.equal(launchAccount.isFinalized, false); await launchpadClient - .finalizeLaunchIx({ + .finalizeLaunchTxBuilder({ launch, baseMint: META, performancePackageGrantee: launchAccount.performancePackageGrantee, diff --git a/tests/integration/launchpad_v8_tranche_lifecycle.test.ts b/tests/integration/launchpad_v8_tranche_lifecycle.test.ts index 05e326c6..eb503e84 100644 --- a/tests/integration/launchpad_v8_tranche_lifecycle.test.ts +++ b/tests/integration/launchpad_v8_tranche_lifecycle.test.ts @@ -197,7 +197,7 @@ export default async function suite() { .rpc(); const settleTx = await launchpadClient - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch, baseMint: META, launchAuthority: launchAuthority.publicKey, @@ -222,7 +222,7 @@ export default async function suite() { const dao = launchAccount.dao!; await launchpadClient - .finalizeLaunchIx({ + .finalizeLaunchTxBuilder({ launch, baseMint: META, performancePackageGrantee: launchAccount.performancePackageGrantee, diff --git a/tests/launchpad/unit/claim.test.ts b/tests/launchpad/unit/claim.test.ts index e85963fa..669fd259 100644 --- a/tests/launchpad/unit/claim.test.ts +++ b/tests/launchpad/unit/claim.test.ts @@ -77,7 +77,7 @@ export default function suite() { await this.advanceBySeconds(60 * 60 * 24 * 7 + 100); await launchpadClient.closeLaunchIx({ launch }).rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/launchpad/unit/completeLaunch.test.ts b/tests/launchpad/unit/completeLaunch.test.ts index 1f3de542..c4b086a6 100644 --- a/tests/launchpad/unit/completeLaunch.test.ts +++ b/tests/launchpad/unit/completeLaunch.test.ts @@ -107,7 +107,7 @@ export default function suite() { await launchpadClient.closeLaunchIx({ launch }).rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -231,7 +231,7 @@ export default function suite() { await launchpadClient.closeLaunchIx({ launch }).rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -365,7 +365,7 @@ export default function suite() { await launchpadClient.closeLaunchIx({ launch }).rpc(); // Try to complete again const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/launchpad/unit/refund.test.ts b/tests/launchpad/unit/refund.test.ts index 25c2c7ca..19b5ed09 100644 --- a/tests/launchpad/unit/refund.test.ts +++ b/tests/launchpad/unit/refund.test.ts @@ -114,7 +114,7 @@ export default function suite() { await launchpadClient.closeLaunchIx({ launch }).rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, baseMint: META, finalRaiseAmount: new BN(150_000 * 1e6), @@ -192,7 +192,7 @@ export default function suite() { await launchpadClient.closeLaunchIx({ launch }).rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, baseMint: META, finalRaiseAmount: new BN(100_000 * 1e6), diff --git a/tests/launchpad_v7/unit/claim.test.ts b/tests/launchpad_v7/unit/claim.test.ts index 6041b28c..f3d61b59 100644 --- a/tests/launchpad_v7/unit/claim.test.ts +++ b/tests/launchpad_v7/unit/claim.test.ts @@ -94,7 +94,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/launchpad_v7/unit/claimAdditionalTokenAllocation.test.ts b/tests/launchpad_v7/unit/claimAdditionalTokenAllocation.test.ts index 2ce6a359..9991af7c 100644 --- a/tests/launchpad_v7/unit/claimAdditionalTokenAllocation.test.ts +++ b/tests/launchpad_v7/unit/claimAdditionalTokenAllocation.test.ts @@ -110,7 +110,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -228,7 +228,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/launchpad_v7/unit/completeLaunch.test.ts b/tests/launchpad_v7/unit/completeLaunch.test.ts index 3805b85c..beef333f 100644 --- a/tests/launchpad_v7/unit/completeLaunch.test.ts +++ b/tests/launchpad_v7/unit/completeLaunch.test.ts @@ -120,7 +120,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -259,7 +259,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -319,7 +319,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -425,7 +425,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -537,7 +537,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -641,7 +641,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -700,7 +700,7 @@ export default function suite() { await launchpadClient.closeLaunchIx({ launch }).rpc(); // Try to complete again const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/launchpad_v7/unit/initializePerformancePackage.test.ts b/tests/launchpad_v7/unit/initializePerformancePackage.test.ts index f030585c..12d5370d 100644 --- a/tests/launchpad_v7/unit/initializePerformancePackage.test.ts +++ b/tests/launchpad_v7/unit/initializePerformancePackage.test.ts @@ -105,7 +105,7 @@ export default function suite() { it("initializes performance package successfully after launch is complete", async function () { // Complete launch const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, @@ -221,7 +221,7 @@ export default function suite() { it("can initialize a performance package only once", async function () { // Complete launch const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, quoteMint: MAINNET_USDC, baseMint: META, diff --git a/tests/launchpad_v7/unit/refund.test.ts b/tests/launchpad_v7/unit/refund.test.ts index e2738960..bc34f3c5 100644 --- a/tests/launchpad_v7/unit/refund.test.ts +++ b/tests/launchpad_v7/unit/refund.test.ts @@ -134,7 +134,7 @@ export default function suite() { .rpc(); const completeLaunchTx = await launchpadClient - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, baseMint: META, launchAuthority: launchAuthority.publicKey, diff --git a/tests/launchpad_v7/unit/setFundingRecordApproval.test.ts b/tests/launchpad_v7/unit/setFundingRecordApproval.test.ts index 2f1dc186..0c0969c1 100644 --- a/tests/launchpad_v7/unit/setFundingRecordApproval.test.ts +++ b/tests/launchpad_v7/unit/setFundingRecordApproval.test.ts @@ -386,7 +386,7 @@ export default function suite() { // Complete the launch const completeLaunchTx = await this.launchpad_v7 - .completeLaunchIx({ + .completeLaunchTxBuilder({ launch, baseMint: META, launchAuthority: launchAuthority.publicKey, diff --git a/tests/launchpad_v8/unit/claim.test.ts b/tests/launchpad_v8/unit/claim.test.ts index 848de520..40e974d1 100644 --- a/tests/launchpad_v8/unit/claim.test.ts +++ b/tests/launchpad_v8/unit/claim.test.ts @@ -37,7 +37,7 @@ export default function suite() { additionalSigners: Keypair[] = [], ) { const settleTx = await client - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch: params.launch, baseMint: params.baseMint, launchAuthority: params.launchAuthority, diff --git a/tests/launchpad_v8/unit/claimAdditionalTokenAllocation.test.ts b/tests/launchpad_v8/unit/claimAdditionalTokenAllocation.test.ts index ca5a8ca6..124e2151 100644 --- a/tests/launchpad_v8/unit/claimAdditionalTokenAllocation.test.ts +++ b/tests/launchpad_v8/unit/claimAdditionalTokenAllocation.test.ts @@ -36,7 +36,7 @@ export default function suite() { additionalSigners: Keypair[] = [], ) { const settleTx = await client - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch: params.launch, baseMint: params.baseMint, launchAuthority: params.launchAuthority, diff --git a/tests/launchpad_v8/unit/finalizeLaunch.test.ts b/tests/launchpad_v8/unit/finalizeLaunch.test.ts index 5d6d2514..3bc13b1d 100644 --- a/tests/launchpad_v8/unit/finalizeLaunch.test.ts +++ b/tests/launchpad_v8/unit/finalizeLaunch.test.ts @@ -36,7 +36,7 @@ export default function suite() { additionalSigners: Keypair[] = [], ) { const settleTx = await client - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch: params.launch, baseMint: params.baseMint, launchAuthority: params.launchAuthority, @@ -150,7 +150,7 @@ export default function suite() { // Finalize await launchpadClient - .finalizeLaunchIx({ + .finalizeLaunchTxBuilder({ launch, baseMint: META, performancePackageGrantee: launchAccount.performancePackageGrantee, @@ -236,7 +236,7 @@ export default function suite() { // The DAO constraint fires before validate() since launch.dao is None try { await launchpadClient - .finalizeLaunchIx({ + .finalizeLaunchTxBuilder({ launch, baseMint: META, performancePackageGrantee: this.payer.publicKey, @@ -262,7 +262,7 @@ export default function suite() { // First finalize succeeds await launchpadClient - .finalizeLaunchIx({ + .finalizeLaunchTxBuilder({ launch, baseMint: META, performancePackageGrantee: launchAccount.performancePackageGrantee, @@ -272,7 +272,7 @@ export default function suite() { // Second finalize fails try { await launchpadClient - .finalizeLaunchIx({ + .finalizeLaunchTxBuilder({ launch, baseMint: META, performancePackageGrantee: launchAccount.performancePackageGrantee, diff --git a/tests/launchpad_v8/unit/refund.test.ts b/tests/launchpad_v8/unit/refund.test.ts index 3c6e4550..b4eaaadc 100644 --- a/tests/launchpad_v8/unit/refund.test.ts +++ b/tests/launchpad_v8/unit/refund.test.ts @@ -38,7 +38,7 @@ export default function suite() { additionalSigners: Keypair[] = [], ) { const settleTx = await client - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch: params.launch, baseMint: params.baseMint, launchAuthority: params.launchAuthority, diff --git a/tests/launchpad_v8/unit/setFundingRecordApproval.test.ts b/tests/launchpad_v8/unit/setFundingRecordApproval.test.ts index ede91d2b..a4ca2364 100644 --- a/tests/launchpad_v8/unit/setFundingRecordApproval.test.ts +++ b/tests/launchpad_v8/unit/setFundingRecordApproval.test.ts @@ -343,7 +343,7 @@ export default function suite() { // Settle launch to reach Complete state const settleTx = await launchpadClient - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch, baseMint: META, launchAuthority: launchAuthority.publicKey, diff --git a/tests/launchpad_v8/unit/settleLaunch.test.ts b/tests/launchpad_v8/unit/settleLaunch.test.ts index 1bffb8a4..c333af3a 100644 --- a/tests/launchpad_v8/unit/settleLaunch.test.ts +++ b/tests/launchpad_v8/unit/settleLaunch.test.ts @@ -3,7 +3,6 @@ import { PublicKey, TransactionMessage, VersionedTransaction, - ComputeBudgetProgram, } from "@solana/web3.js"; import { assert } from "chai"; import { getMetadataAddr, MAINNET_USDC } from "@metadaoproject/programs"; @@ -48,7 +47,7 @@ export default function suite() { additionalSigners: Keypair[] = [], ) { const settleTx = await client - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch: params.launch, baseMint: params.baseMint, launchAuthority: params.launchAuthority, @@ -80,7 +79,7 @@ export default function suite() { additionalSigners: Keypair[] = [], ) { const settleTx = await client - .settleLaunchIx({ + .settleLaunchTxBuilder({ launch: params.launch, baseMint: params.baseMint, launchAuthority: params.launchAuthority, diff --git a/tests/main.test.ts b/tests/main.test.ts index 7b69d89b..a398754c 100644 --- a/tests/main.test.ts +++ b/tests/main.test.ts @@ -70,6 +70,11 @@ import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters"; import * as fs from "fs"; import { AccountInfo } from "@solana/web3.js"; +// Incrementing CU limit so otherwise-identical helper transactions (e.g. +// repeated mintTo calls with the same mint/amount) get unique signatures and +// bankrun doesn't reject them as "transaction already processed". +let mintToCuNonce = 200_000; + const MPL_TOKEN_METADATA_PROGRAM_ID = toWeb3JsPublicKey( UMI_MPL_TOKEN_METADATA_PROGRAM_ID, ); @@ -381,6 +386,12 @@ before(async function () { const tx = new Transaction(); + // Unique CU limit per call so two mintTo txs with identical args don't + // collide on signature ("transaction already processed"). + tx.add( + ComputeBudgetProgram.setComputeUnitLimit({ units: mintToCuNonce++ }), + ); + tx.add( token.createAssociatedTokenAccountIdempotentInstruction( this.payer.publicKey, @@ -650,7 +661,7 @@ before(async function () { await this.initializeProposal({ dao, instructions }); const storedDao = await this.futarchy.getDao(dao); await this.futarchy - .launchProposalIx({ + .launchProposalTxBuilder({ proposal, dao, baseMint: storedDao.baseMint, diff --git a/tests/performancePackageV2/unit/completeUnlock.test.ts b/tests/performancePackageV2/unit/completeUnlock.test.ts index 45d1b40d..8a273b52 100644 --- a/tests/performancePackageV2/unit/completeUnlock.test.ts +++ b/tests/performancePackageV2/unit/completeUnlock.test.ts @@ -822,6 +822,9 @@ export default function suite() { recipient: recipient.publicKey, signer: authority.publicKey, }) + .preInstructions([ + ComputeBudgetProgram.setComputeUnitLimit({ units: 200_001 }), + ]) .signers([authority]) .rpc();