Fix account copy step in program test message processor (#16469) (#16472)

(cherry picked from commit 278c125d99)

Co-authored-by: Justin Starry <justin@solana.com>
This commit is contained in:
mergify[bot]
2021-04-11 20:31:22 +08:00
committed by GitHub
parent 60fba7be75
commit ec8ba76e4d

View File

@ -290,13 +290,13 @@ impl solana_sdk::program_stubs::SyscallStubs for SyscallStubs {
.map_err(|err| ProgramError::try_from(err).unwrap_or_else(|err| panic!("{}", err)))?;
// Copy writeable account modifications back into the caller's AccountInfos
for (i, instruction_account) in instruction.accounts.iter().enumerate() {
if !instruction_account.is_writable {
for (i, account_pubkey) in message.account_keys.iter().enumerate() {
if !message.is_writable(i, true) {
continue;
}
for account_info in account_infos {
if *account_info.unsigned_key() == instruction_account.pubkey {
if account_info.unsigned_key() == account_pubkey {
let account = &accounts[i];
**account_info.try_borrow_mut_lamports().unwrap() = account.borrow().lamports;