set_lamports() (#16914)

This commit is contained in:
Jeff Washington (jwash)
2021-04-29 10:43:26 -05:00
committed by GitHub
parent 23d67e4ac7
commit 59e19828ea
4 changed files with 15 additions and 10 deletions

View File

@ -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;
}

View File

@ -138,8 +138,9 @@ pub fn deserialize_parameters_unaligned(
start += size_of::<u8>(); // is_signer
start += size_of::<u8>(); // is_writable
start += size_of::<Pubkey>(); // 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::<u64>() // lamports
+ size_of::<u64>(); // data length
let end = start + keyed_account.data_len()?;
@ -269,7 +270,7 @@ pub fn deserialize_parameters_aligned(
+ size_of::<Pubkey>(); // key
account.copy_into_owner_from_slice(&buffer[start..start + size_of::<Pubkey>()]);
start += size_of::<Pubkey>(); // owner
account.lamports = LittleEndian::read_u64(&buffer[start..]);
account.set_lamports(LittleEndian::read_u64(&buffer[start..]));
start += size_of::<u64>(); // lamports
let pre_len = account.data().len();
let post_len = LittleEndian::read_u64(&buffer[start..]) as usize;