crucible_test_context/
transaction_builder.rs1use crate::TestContext;
2use anchor_lang::solana_program::instruction::Instruction;
3use solana_keypair::Keypair;
4
5pub struct TransactionBuilder<'a> {
6 pub(crate) ctx: &'a mut TestContext,
7 pub(crate) instructions: Vec<Instruction>,
8 pub(crate) signers: Vec<Keypair>,
9}
10
11impl TransactionBuilder<'_> {
12 pub fn add_instruction<F>(mut self, builder: F) -> Self
13 where
14 F: FnOnce() -> Instruction,
15 {
16 self.instructions.push(builder());
17 self
18 }
19
20 pub fn signers(mut self, signers: &[&Keypair]) -> Self {
21 self.signers = signers.iter().map(|k| k.insecure_clone()).collect();
22 self
23 }
24
25 pub fn send(self) -> anyhow::Result<litesvm::types::TransactionResult> {
26 todo!("Transaction batching not yet implemented")
27 }
28}