diff --git a/lib/client/rpc/proposals/finalizeProposal.ts b/lib/client/rpc/proposals/finalizeProposal.ts index 64870df..56cb13a 100644 --- a/lib/client/rpc/proposals/finalizeProposal.ts +++ b/lib/client/rpc/proposals/finalizeProposal.ts @@ -14,6 +14,7 @@ import { ConditionalVault } from "@/idl/conditional_vault_v0.2"; import { TransactionSender } from "@/transactions"; import { AutocratClient, + InstructionUtils, getAmmAddr, getAmmLpMintAddr, getDaoTreasuryAddr, @@ -22,6 +23,7 @@ import { getVaultRevertMintAddr } from "@metadaoproject/futarchy"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; +import { Transaction } from "@solana/web3.js"; export class FinalizeProposalClient implements FinalizeProposal { private proposalsClient: FutarchyProposalsClient; @@ -129,6 +131,7 @@ export class FinalizeProposalClient implements FinalizeProposal { const proposalAccount = await this.autocratClient.getProposal( proposal.publicKey ); + const dao = await this.autocratClient.getDao(proposalAccount.dao); const finalizeProposalTx = await this.autocratClient .finalizeProposalIx( @@ -139,13 +142,20 @@ export class FinalizeProposalClient implements FinalizeProposal { dao.usdcMint, proposalAccount.proposer ) + .preInstructions( + await InstructionUtils.getInstructions( + this.autocratClient.ammClient.crankThatTwapIx(proposal.failMarket), + this.autocratClient.ammClient.crankThatTwapIx(proposal.passMarket)) + ) .transaction(); return await this.transactionSender?.send( [finalizeProposalTx], this.rpcProvider.connection, { - customErrors: [this.autocratClient.autocrat.idl.errors] + customErrors: [ + this.autocratClient.autocrat.idl.errors + ] }, { title: "Finalizing Proposal" } );