Add a flag to simulateTransaction to use most recent blockhash
This commit is contained in:
parent
4eb6deee2d
commit
96cef5260c
|
@ -28,6 +28,8 @@ pub struct RpcSendTransactionConfig {
|
|||
pub struct RpcSimulateTransactionConfig {
|
||||
#[serde(default)]
|
||||
pub sig_verify: bool,
|
||||
#[serde(default)]
|
||||
pub use_most_recent_blockhash: bool,
|
||||
#[serde(flatten)]
|
||||
pub commitment: Option<CommitmentConfig>,
|
||||
pub encoding: Option<UiTransactionEncoding>,
|
||||
|
|
|
@ -2969,7 +2969,7 @@ pub mod rpc_full {
|
|||
debug!("simulate_transaction rpc request received");
|
||||
let config = config.unwrap_or_default();
|
||||
let encoding = config.encoding.unwrap_or(UiTransactionEncoding::Base58);
|
||||
let (_, transaction) = deserialize_transaction(data, encoding)?;
|
||||
let (_, mut transaction) = deserialize_transaction(data, encoding)?;
|
||||
|
||||
if config.sig_verify {
|
||||
if let Err(e) = verify_transaction(&transaction) {
|
||||
|
@ -2978,6 +2978,9 @@ pub mod rpc_full {
|
|||
}
|
||||
|
||||
let bank = &*meta.bank(config.commitment);
|
||||
if config.use_most_recent_blockhash {
|
||||
transaction.message.recent_blockhash = bank.last_blockhash();
|
||||
}
|
||||
let (result, logs) = bank.simulate_transaction(transaction);
|
||||
|
||||
Ok(new_response(
|
||||
|
|
|
@ -3206,6 +3206,7 @@ Simulate sending a transaction
|
|||
- `sigVerify: <bool>` - if true the transaction signatures will be verified (default: false)
|
||||
- `commitment: <string>` - (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment) level to simulate the transaction at (default: `"finalized"`).
|
||||
- `encoding: <string>` - (optional) Encoding used for the transaction data. Either `"base58"` (*slow*, **DEPRECATED**), or `"base64"`. (default: `"base58"`).
|
||||
- `useMostRecentBlockhash: <bool>` - (optional) if true the transaction recent blockhash will be ignored and overridden with the most recent blockhash. (default: false)
|
||||
|
||||
#### Results:
|
||||
|
||||
|
|
Loading…
Reference in New Issue