diff --git a/banks-client/src/lib.rs b/banks-client/src/lib.rs index d0de8cd78d..ddc8162fdb 100644 --- a/banks-client/src/lib.rs +++ b/banks-client/src/lib.rs @@ -25,7 +25,7 @@ use { commitment_config::CommitmentLevel, message::Message, signature::Signature, - transaction::{self, Transaction, VersionedTransaction}, + transaction::{self, VersionedTransaction}, }, tarpc::{ client::{self, NewClient, RequestDispatch}, @@ -231,7 +231,7 @@ impl BanksClient { /// reached the given level of commitment. pub fn process_transaction_with_commitment( &mut self, - transaction: Transaction, + transaction: impl Into, commitment: CommitmentLevel, ) -> impl Future> + '_ { let ctx = context::current(); @@ -258,7 +258,7 @@ impl BanksClient { /// after the transaction has been rejected or reached the given level of commitment. pub fn process_transaction_with_preflight_and_commitment( &mut self, - transaction: Transaction, + transaction: impl Into, commitment: CommitmentLevel, ) -> impl Future> + '_ { let ctx = context::current(); @@ -294,7 +294,7 @@ impl BanksClient { /// after the transaction has been finalized or rejected. pub fn process_transaction_with_preflight( &mut self, - transaction: Transaction, + transaction: impl Into, ) -> impl Future> + '_ { self.process_transaction_with_preflight_and_commitment( transaction, @@ -305,14 +305,14 @@ impl BanksClient { /// Send a transaction and return until the transaction has been finalized or rejected. pub fn process_transaction( &mut self, - transaction: Transaction, + transaction: impl Into, ) -> impl Future> + '_ { self.process_transaction_with_commitment(transaction, CommitmentLevel::default()) } - pub async fn process_transactions_with_commitment( + pub async fn process_transactions_with_commitment>( &mut self, - transactions: Vec, + transactions: Vec, commitment: CommitmentLevel, ) -> Result<(), BanksClientError> { let mut clients: Vec<_> = transactions.iter().map(|_| self.clone()).collect(); @@ -327,9 +327,9 @@ impl BanksClient { } /// Send transactions and return until the transaction has been finalized or rejected. - pub fn process_transactions( - &mut self, - transactions: Vec, + pub fn process_transactions<'a, T: Into + 'a>( + &'a mut self, + transactions: Vec, ) -> impl Future> + '_ { self.process_transactions_with_commitment(transactions, CommitmentLevel::default()) } @@ -337,7 +337,7 @@ impl BanksClient { /// Simulate a transaction at the given commitment level pub fn simulate_transaction_with_commitment( &mut self, - transaction: Transaction, + transaction: impl Into, commitment: CommitmentLevel, ) -> impl Future> + '_ { @@ -351,7 +351,7 @@ impl BanksClient { /// Simulate a transaction at the default commitment level pub fn simulate_transaction( &mut self, - transaction: Transaction, + transaction: impl Into, ) -> impl Future> + '_ { self.simulate_transaction_with_commitment(transaction, CommitmentLevel::default()) @@ -534,7 +534,9 @@ mod tests { bank::Bank, bank_forks::BankForks, commitment::BlockCommitmentCache, genesis_utils::create_genesis_config, }, - solana_sdk::{message::Message, signature::Signer, system_instruction}, + solana_sdk::{ + message::Message, signature::Signer, system_instruction, transaction::Transaction, + }, std::sync::{Arc, RwLock}, tarpc::transport, tokio::{