set_lamports() (#16914)
This commit is contained in:
parent
23d67e4ac7
commit
59e19828ea
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)?;
|
||||
|
|
Loading…
Reference in New Issue