simulate_transaction_with_config() now passes full config to server
This commit is contained in:
@ -161,26 +161,20 @@ impl RpcClient {
|
|||||||
pub fn simulate_transaction(
|
pub fn simulate_transaction(
|
||||||
&self,
|
&self,
|
||||||
transaction: &Transaction,
|
transaction: &Transaction,
|
||||||
sig_verify: bool,
|
|
||||||
) -> RpcResult<RpcSimulateTransactionResult> {
|
) -> RpcResult<RpcSimulateTransactionResult> {
|
||||||
self.simulate_transaction_with_config(
|
self.simulate_transaction_with_config(transaction, RpcSimulateTransactionConfig::default())
|
||||||
transaction,
|
|
||||||
sig_verify,
|
|
||||||
RpcSimulateTransactionConfig::default(),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn simulate_transaction_with_config(
|
pub fn simulate_transaction_with_config(
|
||||||
&self,
|
&self,
|
||||||
transaction: &Transaction,
|
transaction: &Transaction,
|
||||||
sig_verify: bool,
|
|
||||||
config: RpcSimulateTransactionConfig,
|
config: RpcSimulateTransactionConfig,
|
||||||
) -> RpcResult<RpcSimulateTransactionResult> {
|
) -> RpcResult<RpcSimulateTransactionResult> {
|
||||||
let encoding = config.encoding.unwrap_or(UiTransactionEncoding::Base58);
|
let encoding = config.encoding.unwrap_or(UiTransactionEncoding::Base58);
|
||||||
let serialized_encoded = serialize_encode_transaction(transaction, encoding)?;
|
let serialized_encoded = serialize_encode_transaction(transaction, encoding)?;
|
||||||
self.send(
|
self.send(
|
||||||
RpcRequest::SimulateTransaction,
|
RpcRequest::SimulateTransaction,
|
||||||
json!([serialized_encoded, { "sigVerify": sig_verify }]),
|
json!([serialized_encoded, config]),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@ use solana_clap_utils::{
|
|||||||
};
|
};
|
||||||
use solana_cli_output::display::format_labeled_address;
|
use solana_cli_output::display::format_labeled_address;
|
||||||
use solana_client::{
|
use solana_client::{
|
||||||
client_error, rpc_client::RpcClient, rpc_request::MAX_GET_SIGNATURE_STATUSES_QUERY_ITEMS,
|
client_error, rpc_client::RpcClient, rpc_config::RpcSimulateTransactionConfig,
|
||||||
rpc_response::RpcVoteAccountInfo,
|
rpc_request::MAX_GET_SIGNATURE_STATUSES_QUERY_ITEMS, rpc_response::RpcVoteAccountInfo,
|
||||||
};
|
};
|
||||||
use solana_metrics::datapoint_info;
|
use solana_metrics::datapoint_info;
|
||||||
use solana_notifier::Notifier;
|
use solana_notifier::Notifier;
|
||||||
@ -394,7 +394,13 @@ fn simulate_transactions(
|
|||||||
for (mut transaction, memo) in candidate_transactions {
|
for (mut transaction, memo) in candidate_transactions {
|
||||||
transaction.message.recent_blockhash = blockhash;
|
transaction.message.recent_blockhash = blockhash;
|
||||||
|
|
||||||
let sim_result = rpc_client.simulate_transaction(&transaction, false)?;
|
let sim_result = rpc_client.simulate_transaction_with_config(
|
||||||
|
&transaction,
|
||||||
|
RpcSimulateTransactionConfig {
|
||||||
|
sig_verify: false,
|
||||||
|
..RpcSimulateTransactionConfig::default()
|
||||||
|
},
|
||||||
|
)?;
|
||||||
if sim_result.value.err.is_some() {
|
if sim_result.value.err.is_some() {
|
||||||
trace!(
|
trace!(
|
||||||
"filtering out transaction due to simulation failure: {:?}: {}",
|
"filtering out transaction due to simulation failure: {:?}: {}",
|
||||||
|
Reference in New Issue
Block a user