diff --git a/program-test/src/lib.rs b/program-test/src/lib.rs index 44838a83e..d7f51d4fd 100644 --- a/program-test/src/lib.rs +++ b/program-test/src/lib.rs @@ -14,7 +14,7 @@ use { genesis_utils::{create_genesis_config_with_leader_ex, GenesisConfigInfo}, }, solana_sdk::{ - account::{Account, AccountSharedData, ReadableAccount}, + account::{Account, AccountSharedData, ReadableAccount, WritableAccount}, account_info::AccountInfo, clock::{Clock, Slot}, entrypoint::{ProgramResult, SUCCESS}, @@ -158,7 +158,7 @@ pub fn builtin_process_instruction( let mut account = keyed_account.account.borrow_mut(); let key = keyed_account.unsigned_key(); let (lamports, data, _owner) = &account_refs[key]; - account.lamports = **lamports.borrow(); + account.set_lamports(**lamports.borrow()); account.set_data(data.borrow().to_vec()); } diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index bee9cc274..bbad38e30 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -424,7 +424,7 @@ fn process_loader_upgradeable_instruction( payer .try_account_ref_mut()? .checked_add_lamports(buffer.lamports()?)?; - buffer.try_account_ref_mut()?.lamports = 0; + buffer.try_account_ref_mut()?.set_lamports(0); ic_logger_msg!(logger, "Deployed program {:?}", program.unsigned_key()); } @@ -553,8 +553,10 @@ fn process_loader_upgradeable_instruction( (programdata.lamports()? + buffer.lamports()?) .saturating_sub(programdata_balance_required), )?; - buffer.try_account_ref_mut()?.lamports = 0; - programdata.try_account_ref_mut()?.lamports = programdata_balance_required; + buffer.try_account_ref_mut()?.set_lamports(0); + programdata + .try_account_ref_mut()? + .set_lamports(programdata_balance_required); ic_logger_msg!(logger, "Upgraded program {:?}", program.unsigned_key()); } @@ -646,7 +648,7 @@ fn process_loader_upgradeable_instruction( recipient_account .try_account_ref_mut()? .checked_add_lamports(close_account.lamports()?)?; - close_account.try_account_ref_mut()?.lamports = 0; + close_account.try_account_ref_mut()?.set_lamports(0); for elt in close_account.try_account_ref_mut()?.data_as_mut_slice() { *elt = 0; } diff --git a/programs/bpf_loader/src/serialization.rs b/programs/bpf_loader/src/serialization.rs index baa0632fd..285e00f90 100644 --- a/programs/bpf_loader/src/serialization.rs +++ b/programs/bpf_loader/src/serialization.rs @@ -138,8 +138,9 @@ pub fn deserialize_parameters_unaligned( start += size_of::(); // is_signer start += size_of::(); // is_writable start += size_of::(); // key - keyed_account.try_account_ref_mut()?.lamports = - LittleEndian::read_u64(&buffer[start..]); + keyed_account + .try_account_ref_mut()? + .set_lamports(LittleEndian::read_u64(&buffer[start..])); start += size_of::() // lamports + size_of::(); // data length let end = start + keyed_account.data_len()?; @@ -269,7 +270,7 @@ pub fn deserialize_parameters_aligned( + size_of::(); // key account.copy_into_owner_from_slice(&buffer[start..start + size_of::()]); start += size_of::(); // owner - account.lamports = LittleEndian::read_u64(&buffer[start..]); + account.set_lamports(LittleEndian::read_u64(&buffer[start..])); start += size_of::(); // lamports let pre_len = account.data().len(); let post_len = LittleEndian::read_u64(&buffer[start..]) as usize; diff --git a/programs/budget/src/budget_processor.rs b/programs/budget/src/budget_processor.rs index 730469858..13b277895 100644 --- a/programs/budget/src/budget_processor.rs +++ b/programs/budget/src/budget_processor.rs @@ -140,7 +140,9 @@ pub fn process_instruction( if let Some(payment) = expr.final_payment() { let to_keyed_account = contract_keyed_account; let contract_keyed_account = keyed_account_at_index(keyed_accounts, 1)?; - contract_keyed_account.try_account_ref_mut()?.lamports = 0; + contract_keyed_account + .try_account_ref_mut()? + .set_lamports(0); to_keyed_account .try_account_ref_mut()? .checked_add_lamports(payment.lamports)?;