From 3140d7741c9c54137525f493b6685d6f52397797 Mon Sep 17 00:00:00 2001 From: Jack May Date: Thu, 28 Oct 2021 16:00:09 -0700 Subject: [PATCH] deprecate FeeCalculator in BanksClients (#21056) --- banks-client/src/lib.rs | 12 ++++++++++++ banks-interface/src/lib.rs | 11 +++++++++++ banks-server/src/banks_server.rs | 13 +++++++++++++ 3 files changed, 36 insertions(+) diff --git a/banks-client/src/lib.rs b/banks-client/src/lib.rs index 88eae58481..0aa1304e4c 100644 --- a/banks-client/src/lib.rs +++ b/banks-client/src/lib.rs @@ -17,6 +17,7 @@ use { solana_sdk::{ account::{from_account, Account}, commitment_config::CommitmentLevel, + message::Message, signature::Signature, transaction::{self, Transaction}, transport, @@ -65,6 +66,7 @@ impl BanksClient { ctx: Context, commitment: CommitmentLevel, ) -> impl Future> + '_ { + #[allow(deprecated)] self.inner .get_fees_with_commitment_and_context(ctx, commitment) } @@ -312,6 +314,16 @@ impl BanksClient { // Convert Vec> to Result> statuses.into_iter().collect() } + + pub fn get_fee_for_message_with_commitment_and_context( + &mut self, + ctx: Context, + commitment: CommitmentLevel, + message: Message, + ) -> impl Future>> + '_ { + self.inner + .get_fee_for_message_with_commitment_and_context(ctx, commitment, message) + } } pub async fn start_client(transport: C) -> io::Result diff --git a/banks-interface/src/lib.rs b/banks-interface/src/lib.rs index 4e07048da0..d8562d9f23 100644 --- a/banks-interface/src/lib.rs +++ b/banks-interface/src/lib.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use { serde::{Deserialize, Serialize}, solana_sdk::{ @@ -6,6 +8,7 @@ use { commitment_config::CommitmentLevel, fee_calculator::FeeCalculator, hash::Hash, + message::Message, pubkey::Pubkey, signature::Signature, transaction::{self, Transaction, TransactionError}, @@ -30,6 +33,10 @@ pub struct TransactionStatus { #[tarpc::service] pub trait Banks { async fn send_transaction_with_context(transaction: Transaction); + #[deprecated( + since = "1.9.0", + note = "Please use `get_fee_for_message_with_commitment_and_context` instead" + )] async fn get_fees_with_commitment_and_context( commitment: CommitmentLevel, ) -> (FeeCalculator, Hash, Slot); @@ -45,6 +52,10 @@ pub trait Banks { address: Pubkey, commitment: CommitmentLevel, ) -> Option; + async fn get_fee_for_message_with_commitment_and_context( + commitment: CommitmentLevel, + message: Message, + ) -> Option; } #[cfg(test)] diff --git a/banks-server/src/banks_server.rs b/banks-server/src/banks_server.rs index 95292f71d9..317a1bc523 100644 --- a/banks-server/src/banks_server.rs +++ b/banks-server/src/banks_server.rs @@ -13,6 +13,7 @@ use { commitment_config::CommitmentLevel, fee_calculator::FeeCalculator, hash::Hash, + message::{Message, SanitizedMessage}, pubkey::Pubkey, signature::Signature, transaction::{self, Transaction}, @@ -22,6 +23,7 @@ use { tpu_info::NullTpuInfo, }, std::{ + convert::TryFrom, io, net::{Ipv4Addr, SocketAddr}, sync::{ @@ -278,6 +280,17 @@ impl Banks for BanksServer { let bank = self.bank(commitment); bank.get_account(&address).map(Account::from) } + + async fn get_fee_for_message_with_commitment_and_context( + self, + _: Context, + commitment: CommitmentLevel, + message: Message, + ) -> Option { + let bank = self.bank(commitment); + let sanitized_message = SanitizedMessage::try_from(message).ok()?; + Some(bank.get_fee_for_message(&sanitized_message)) + } } pub async fn start_local_server(