Make Accounts::is_non_loader_key() a method on Message

This commit is contained in:
Trent Nelson
2020-12-02 10:58:37 -07:00
committed by mergify[bot]
parent 404fc1570d
commit 17defbff13
3 changed files with 64 additions and 7 deletions

View File

@ -152,7 +152,7 @@ impl Accounts {
let rent_fix_enabled = feature_set.cumulative_rent_related_fixes_enabled();
for (i, key) in message.account_keys.iter().enumerate() {
let account = if Self::is_non_loader_key(message, key, i) {
let account = if message.is_non_loader_key(key, i) {
if payer_index.is_none() {
payer_index = Some(i);
}
@ -793,10 +793,6 @@ impl Accounts {
self.accounts_db.add_root(slot)
}
pub fn is_non_loader_key(message: &Message, key: &Pubkey, key_index: usize) -> bool {
!message.program_ids().contains(&key) || message.is_key_passed_to_program(key_index)
}
fn collect_accounts_to_store<'a>(
&self,
txs: &'a [Transaction],
@ -843,7 +839,7 @@ impl Accounts {
.iter()
.enumerate()
.zip(acc.0.iter_mut())
.filter(|((i, key), _account)| Self::is_non_loader_key(message, key, *i))
.filter(|((i, key), _account)| message.is_non_loader_key(key, *i))
{
let is_nonce_account = prepare_if_nonce_account(
account,

View File

@ -515,7 +515,7 @@ impl NonceRollbackFull {
.account_keys
.iter()
.enumerate()
.find(|(i, k)| Accounts::is_non_loader_key(message, k, *i))
.find(|(i, k)| message.is_non_loader_key(k, *i))
.and_then(|(i, k)| accounts.get(i).cloned().map(|a| (*k, a)));
if let Some((fee_pubkey, fee_account)) = fee_payer {
if fee_pubkey == nonce_address {