Refactor: Add trait for loading addresses (#22903)

This commit is contained in:
Justin Starry
2022-02-03 19:00:12 +08:00
committed by GitHub
parent cc94a93b56
commit 60af1a4cce
10 changed files with 128 additions and 95 deletions

View File

@ -68,7 +68,10 @@ use {
stake_history::StakeHistory,
system_instruction,
sysvar::stake_history,
transaction::{self, SanitizedTransaction, TransactionError, VersionedTransaction},
transaction::{
self, DisabledAddressLoader, SanitizedTransaction, TransactionError,
VersionedTransaction,
},
},
solana_send_transaction_service::{
send_transaction_service::{SendTransactionService, TransactionInfo},
@ -4271,10 +4274,8 @@ where
fn sanitize_transaction(transaction: VersionedTransaction) -> Result<SanitizedTransaction> {
let message_hash = transaction.message.hash();
SanitizedTransaction::try_create(transaction, message_hash, None, |_| {
Err(TransactionError::UnsupportedVersion)
})
.map_err(|err| Error::invalid_params(format!("invalid transaction: {}", err)))
SanitizedTransaction::try_create(transaction, message_hash, None, &DisabledAddressLoader)
.map_err(|err| Error::invalid_params(format!("invalid transaction: {}", err)))
}
pub(crate) fn create_validator_exit(exit: &Arc<AtomicBool>) -> Arc<RwLock<Exit>> {

View File

@ -216,7 +216,7 @@ pub(crate) mod tests {
signature::{Keypair, Signature, Signer},
system_transaction,
transaction::{
SanitizedTransaction, Transaction, TransactionError, VersionedTransaction,
DisabledAddressLoader, SanitizedTransaction, Transaction, VersionedTransaction,
},
},
solana_transaction_status::{
@ -298,11 +298,13 @@ pub(crate) mod tests {
let message_hash = Hash::new_unique();
let transaction = build_test_transaction_legacy();
let transaction = VersionedTransaction::from(transaction);
let transaction =
SanitizedTransaction::try_create(transaction, message_hash, Some(true), |_| {
Err(TransactionError::UnsupportedVersion)
})
.unwrap();
let transaction = SanitizedTransaction::try_create(
transaction,
message_hash,
Some(true),
&DisabledAddressLoader,
)
.unwrap();
let expected_transaction = transaction.clone();
let pubkey = Pubkey::new_unique();