verify_precompiles needs FeatureSet
Rather than pass in individual features, pass in the entire feature set so that we can add the ed25519 program feature in a later commit.
This commit is contained in:
@ -56,6 +56,7 @@ use {
|
||||
epoch_info::EpochInfo,
|
||||
epoch_schedule::EpochSchedule,
|
||||
exit::Exit,
|
||||
feature_set,
|
||||
hash::Hash,
|
||||
message::{Message, SanitizedMessage},
|
||||
pubkey::Pubkey,
|
||||
@ -1969,17 +1970,13 @@ impl JsonRpcRequestProcessor {
|
||||
|
||||
fn verify_transaction(
|
||||
transaction: &SanitizedTransaction,
|
||||
libsecp256k1_0_5_upgrade_enabled: bool,
|
||||
libsecp256k1_fail_on_bad_count: bool,
|
||||
feature_set: &Arc<feature_set::FeatureSet>,
|
||||
) -> Result<()> {
|
||||
if transaction.verify().is_err() {
|
||||
return Err(RpcCustomError::TransactionSignatureVerificationFailure.into());
|
||||
}
|
||||
|
||||
if let Err(e) = transaction.verify_precompiles(
|
||||
libsecp256k1_0_5_upgrade_enabled,
|
||||
libsecp256k1_fail_on_bad_count,
|
||||
) {
|
||||
if let Err(e) = transaction.verify_precompiles(feature_set) {
|
||||
return Err(RpcCustomError::TransactionPrecompileVerificationFailure(e).into());
|
||||
}
|
||||
|
||||
@ -3347,11 +3344,7 @@ pub mod rpc_full {
|
||||
}
|
||||
|
||||
if !config.skip_preflight {
|
||||
if let Err(e) = verify_transaction(
|
||||
&transaction,
|
||||
preflight_bank.libsecp256k1_0_5_upgrade_enabled(),
|
||||
preflight_bank.libsecp256k1_fail_on_bad_count(),
|
||||
) {
|
||||
if let Err(e) = verify_transaction(&transaction, &preflight_bank.feature_set) {
|
||||
return Err(e);
|
||||
}
|
||||
|
||||
@ -3437,11 +3430,7 @@ pub mod rpc_full {
|
||||
|
||||
let transaction = sanitize_transaction(unsanitized_tx)?;
|
||||
if config.sig_verify {
|
||||
verify_transaction(
|
||||
&transaction,
|
||||
bank.libsecp256k1_0_5_upgrade_enabled(),
|
||||
bank.libsecp256k1_fail_on_bad_count(),
|
||||
)?;
|
||||
verify_transaction(&transaction, &bank.feature_set)?;
|
||||
}
|
||||
|
||||
let TransactionSimulationResult {
|
||||
|
Reference in New Issue
Block a user