From 47af5933caea0e03930e2ed03d18160903a832a7 Mon Sep 17 00:00:00 2001 From: Trent Nelson Date: Wed, 25 Nov 2020 16:18:43 -0700 Subject: [PATCH] accounts: Don't assume fee-payer is the first account --- runtime/src/accounts.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runtime/src/accounts.rs b/runtime/src/accounts.rs index 74378eba43..2c4f7b9c53 100644 --- a/runtime/src/accounts.rs +++ b/runtime/src/accounts.rs @@ -826,6 +826,7 @@ impl Accounts { let message = &tx.message(); let acc = raccs.as_mut().unwrap(); + let mut fee_payer_index = None; for ((i, key), account) in message .account_keys .iter() @@ -841,7 +842,10 @@ impl Accounts { last_blockhash_with_fee_calculator, fix_recent_blockhashes_sysvar_delay, ); - let is_fee_payer = i == 0; + if fee_payer_index.is_none() { + fee_payer_index = Some(i); + } + let is_fee_payer = Some(i) == fee_payer_index; if message.is_writable(i) && (res.is_ok() || (maybe_nonce.is_some() && (is_nonce_account || is_fee_payer)))