diff --git a/program-test/src/lib.rs b/program-test/src/lib.rs index 4ea214ebf..5891ff90f 100644 --- a/program-test/src/lib.rs +++ b/program-test/src/lib.rs @@ -295,13 +295,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;