Cleanup - Feature gate of `delay_visibility_of_program_deployment` (#34087)
* Cleans up feature gate of delay_visibility_of_program_deployment. * Removes programs_updated_only_for_global_cache.
This commit is contained in:
parent
d93280c287
commit
ffa462dd3a
|
@ -1459,7 +1459,6 @@ mod tests {
|
||||||
accounts_data_len_delta: 0,
|
accounts_data_len_delta: 0,
|
||||||
},
|
},
|
||||||
programs_modified_by_tx: Box::<LoadedProgramsForTxBatch>::default(),
|
programs_modified_by_tx: Box::<LoadedProgramsForTxBatch>::default(),
|
||||||
programs_updated_only_for_global_cache: Box::<LoadedProgramsForTxBatch>::default(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ pub enum TransactionExecutionResult {
|
||||||
Executed {
|
Executed {
|
||||||
details: TransactionExecutionDetails,
|
details: TransactionExecutionDetails,
|
||||||
programs_modified_by_tx: Box<LoadedProgramsForTxBatch>,
|
programs_modified_by_tx: Box<LoadedProgramsForTxBatch>,
|
||||||
programs_updated_only_for_global_cache: Box<LoadedProgramsForTxBatch>,
|
|
||||||
},
|
},
|
||||||
NotExecuted(TransactionError),
|
NotExecuted(TransactionError),
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@ use {
|
||||||
account::AccountSharedData,
|
account::AccountSharedData,
|
||||||
account_utils::StateMut,
|
account_utils::StateMut,
|
||||||
bpf_loader_upgradeable::{self, UpgradeableLoaderState},
|
bpf_loader_upgradeable::{self, UpgradeableLoaderState},
|
||||||
feature_set,
|
|
||||||
pubkey::Pubkey,
|
pubkey::Pubkey,
|
||||||
slot_history::Slot,
|
slot_history::Slot,
|
||||||
transaction_context::{IndexOfAccount, InstructionAccount},
|
transaction_context::{IndexOfAccount, InstructionAccount},
|
||||||
|
@ -358,9 +357,6 @@ fn load_program<'a>(
|
||||||
#[allow(unused_mut)]
|
#[allow(unused_mut)]
|
||||||
let mut verified_executable = if is_elf {
|
let mut verified_executable = if is_elf {
|
||||||
let result = load_program_from_bytes(
|
let result = load_program_from_bytes(
|
||||||
invoke_context
|
|
||||||
.feature_set
|
|
||||||
.is_active(&feature_set::delay_visibility_of_program_deployment::id()),
|
|
||||||
log_collector,
|
log_collector,
|
||||||
&mut load_program_metrics,
|
&mut load_program_metrics,
|
||||||
&contents,
|
&contents,
|
||||||
|
|
|
@ -167,7 +167,6 @@ pub struct InvokeContext<'a> {
|
||||||
accounts_data_meter: AccountsDataMeter,
|
accounts_data_meter: AccountsDataMeter,
|
||||||
pub programs_loaded_for_tx_batch: &'a LoadedProgramsForTxBatch,
|
pub programs_loaded_for_tx_batch: &'a LoadedProgramsForTxBatch,
|
||||||
pub programs_modified_by_tx: &'a mut LoadedProgramsForTxBatch,
|
pub programs_modified_by_tx: &'a mut LoadedProgramsForTxBatch,
|
||||||
pub programs_updated_only_for_global_cache: &'a mut LoadedProgramsForTxBatch,
|
|
||||||
pub feature_set: Arc<FeatureSet>,
|
pub feature_set: Arc<FeatureSet>,
|
||||||
pub timings: ExecuteDetailsTimings,
|
pub timings: ExecuteDetailsTimings,
|
||||||
pub blockhash: Hash,
|
pub blockhash: Hash,
|
||||||
|
@ -185,7 +184,6 @@ impl<'a> InvokeContext<'a> {
|
||||||
compute_budget: ComputeBudget,
|
compute_budget: ComputeBudget,
|
||||||
programs_loaded_for_tx_batch: &'a LoadedProgramsForTxBatch,
|
programs_loaded_for_tx_batch: &'a LoadedProgramsForTxBatch,
|
||||||
programs_modified_by_tx: &'a mut LoadedProgramsForTxBatch,
|
programs_modified_by_tx: &'a mut LoadedProgramsForTxBatch,
|
||||||
programs_updated_only_for_global_cache: &'a mut LoadedProgramsForTxBatch,
|
|
||||||
feature_set: Arc<FeatureSet>,
|
feature_set: Arc<FeatureSet>,
|
||||||
blockhash: Hash,
|
blockhash: Hash,
|
||||||
lamports_per_signature: u64,
|
lamports_per_signature: u64,
|
||||||
|
@ -201,7 +199,6 @@ impl<'a> InvokeContext<'a> {
|
||||||
accounts_data_meter: AccountsDataMeter::new(prev_accounts_data_len),
|
accounts_data_meter: AccountsDataMeter::new(prev_accounts_data_len),
|
||||||
programs_loaded_for_tx_batch,
|
programs_loaded_for_tx_batch,
|
||||||
programs_modified_by_tx,
|
programs_modified_by_tx,
|
||||||
programs_updated_only_for_global_cache,
|
|
||||||
feature_set,
|
feature_set,
|
||||||
timings: ExecuteDetailsTimings::default(),
|
timings: ExecuteDetailsTimings::default(),
|
||||||
blockhash,
|
blockhash,
|
||||||
|
@ -688,7 +685,6 @@ macro_rules! with_mock_invoke_context {
|
||||||
});
|
});
|
||||||
let programs_loaded_for_tx_batch = LoadedProgramsForTxBatch::default();
|
let programs_loaded_for_tx_batch = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let mut $invoke_context = InvokeContext::new(
|
let mut $invoke_context = InvokeContext::new(
|
||||||
&mut $transaction_context,
|
&mut $transaction_context,
|
||||||
&sysvar_cache,
|
&sysvar_cache,
|
||||||
|
@ -696,7 +692,6 @@ macro_rules! with_mock_invoke_context {
|
||||||
compute_budget,
|
compute_budget,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
Hash::default(),
|
Hash::default(),
|
||||||
0,
|
0,
|
||||||
|
|
|
@ -56,7 +56,6 @@ impl MessageProcessor {
|
||||||
log_collector: Option<Rc<RefCell<LogCollector>>>,
|
log_collector: Option<Rc<RefCell<LogCollector>>>,
|
||||||
programs_loaded_for_tx_batch: &LoadedProgramsForTxBatch,
|
programs_loaded_for_tx_batch: &LoadedProgramsForTxBatch,
|
||||||
programs_modified_by_tx: &mut LoadedProgramsForTxBatch,
|
programs_modified_by_tx: &mut LoadedProgramsForTxBatch,
|
||||||
programs_updated_only_for_global_cache: &mut LoadedProgramsForTxBatch,
|
|
||||||
feature_set: Arc<FeatureSet>,
|
feature_set: Arc<FeatureSet>,
|
||||||
compute_budget: ComputeBudget,
|
compute_budget: ComputeBudget,
|
||||||
timings: &mut ExecuteTimings,
|
timings: &mut ExecuteTimings,
|
||||||
|
@ -73,7 +72,6 @@ impl MessageProcessor {
|
||||||
compute_budget,
|
compute_budget,
|
||||||
programs_loaded_for_tx_batch,
|
programs_loaded_for_tx_batch,
|
||||||
programs_modified_by_tx,
|
programs_modified_by_tx,
|
||||||
programs_updated_only_for_global_cache,
|
|
||||||
feature_set,
|
feature_set,
|
||||||
blockhash,
|
blockhash,
|
||||||
lamports_per_signature,
|
lamports_per_signature,
|
||||||
|
@ -302,7 +300,6 @@ mod tests {
|
||||||
)));
|
)));
|
||||||
let sysvar_cache = SysvarCache::default();
|
let sysvar_cache = SysvarCache::default();
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let result = MessageProcessor::process_message(
|
let result = MessageProcessor::process_message(
|
||||||
&message,
|
&message,
|
||||||
&program_indices,
|
&program_indices,
|
||||||
|
@ -310,7 +307,6 @@ mod tests {
|
||||||
None,
|
None,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
ComputeBudget::default(),
|
ComputeBudget::default(),
|
||||||
&mut ExecuteTimings::default(),
|
&mut ExecuteTimings::default(),
|
||||||
|
@ -354,7 +350,6 @@ mod tests {
|
||||||
]),
|
]),
|
||||||
)));
|
)));
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let result = MessageProcessor::process_message(
|
let result = MessageProcessor::process_message(
|
||||||
&message,
|
&message,
|
||||||
&program_indices,
|
&program_indices,
|
||||||
|
@ -362,7 +357,6 @@ mod tests {
|
||||||
None,
|
None,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
ComputeBudget::default(),
|
ComputeBudget::default(),
|
||||||
&mut ExecuteTimings::default(),
|
&mut ExecuteTimings::default(),
|
||||||
|
@ -396,7 +390,6 @@ mod tests {
|
||||||
]),
|
]),
|
||||||
)));
|
)));
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let result = MessageProcessor::process_message(
|
let result = MessageProcessor::process_message(
|
||||||
&message,
|
&message,
|
||||||
&program_indices,
|
&program_indices,
|
||||||
|
@ -404,7 +397,6 @@ mod tests {
|
||||||
None,
|
None,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
ComputeBudget::default(),
|
ComputeBudget::default(),
|
||||||
&mut ExecuteTimings::default(),
|
&mut ExecuteTimings::default(),
|
||||||
|
@ -528,7 +520,6 @@ mod tests {
|
||||||
)));
|
)));
|
||||||
let sysvar_cache = SysvarCache::default();
|
let sysvar_cache = SysvarCache::default();
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let result = MessageProcessor::process_message(
|
let result = MessageProcessor::process_message(
|
||||||
&message,
|
&message,
|
||||||
&program_indices,
|
&program_indices,
|
||||||
|
@ -536,7 +527,6 @@ mod tests {
|
||||||
None,
|
None,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
ComputeBudget::default(),
|
ComputeBudget::default(),
|
||||||
&mut ExecuteTimings::default(),
|
&mut ExecuteTimings::default(),
|
||||||
|
@ -564,7 +554,6 @@ mod tests {
|
||||||
Some(transaction_context.get_key_of_account_at_index(0).unwrap()),
|
Some(transaction_context.get_key_of_account_at_index(0).unwrap()),
|
||||||
)));
|
)));
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let result = MessageProcessor::process_message(
|
let result = MessageProcessor::process_message(
|
||||||
&message,
|
&message,
|
||||||
&program_indices,
|
&program_indices,
|
||||||
|
@ -572,7 +561,6 @@ mod tests {
|
||||||
None,
|
None,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
ComputeBudget::default(),
|
ComputeBudget::default(),
|
||||||
&mut ExecuteTimings::default(),
|
&mut ExecuteTimings::default(),
|
||||||
|
@ -597,7 +585,6 @@ mod tests {
|
||||||
Some(transaction_context.get_key_of_account_at_index(0).unwrap()),
|
Some(transaction_context.get_key_of_account_at_index(0).unwrap()),
|
||||||
)));
|
)));
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let result = MessageProcessor::process_message(
|
let result = MessageProcessor::process_message(
|
||||||
&message,
|
&message,
|
||||||
&program_indices,
|
&program_indices,
|
||||||
|
@ -605,7 +592,6 @@ mod tests {
|
||||||
None,
|
None,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
ComputeBudget::default(),
|
ComputeBudget::default(),
|
||||||
&mut ExecuteTimings::default(),
|
&mut ExecuteTimings::default(),
|
||||||
|
@ -687,7 +673,6 @@ mod tests {
|
||||||
Arc::new(LoadedProgram::new_builtin(0, 0, MockBuiltin::vm)),
|
Arc::new(LoadedProgram::new_builtin(0, 0, MockBuiltin::vm)),
|
||||||
);
|
);
|
||||||
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default();
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default();
|
|
||||||
let result = MessageProcessor::process_message(
|
let result = MessageProcessor::process_message(
|
||||||
&message,
|
&message,
|
||||||
&[vec![0], vec![1]],
|
&[vec![0], vec![1]],
|
||||||
|
@ -695,7 +680,6 @@ mod tests {
|
||||||
None,
|
None,
|
||||||
&programs_loaded_for_tx_batch,
|
&programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
Arc::new(FeatureSet::all_enabled()),
|
Arc::new(FeatureSet::all_enabled()),
|
||||||
ComputeBudget::default(),
|
ComputeBudget::default(),
|
||||||
&mut ExecuteTimings::default(),
|
&mut ExecuteTimings::default(),
|
||||||
|
|
|
@ -34,10 +34,9 @@ use {
|
||||||
clock::Slot,
|
clock::Slot,
|
||||||
entrypoint::{MAX_PERMITTED_DATA_INCREASE, SUCCESS},
|
entrypoint::{MAX_PERMITTED_DATA_INCREASE, SUCCESS},
|
||||||
feature_set::{
|
feature_set::{
|
||||||
bpf_account_data_direct_mapping, delay_visibility_of_program_deployment,
|
bpf_account_data_direct_mapping, enable_bpf_loader_extend_program_ix,
|
||||||
enable_bpf_loader_extend_program_ix, enable_bpf_loader_set_authority_checked_ix,
|
enable_bpf_loader_set_authority_checked_ix, enable_program_redeployment_cooldown,
|
||||||
enable_program_redeployment_cooldown, native_programs_consume_cu,
|
native_programs_consume_cu, remove_bpf_loader_incorrect_program_id,
|
||||||
remove_bpf_loader_incorrect_program_id,
|
|
||||||
},
|
},
|
||||||
instruction::{AccountMeta, InstructionError},
|
instruction::{AccountMeta, InstructionError},
|
||||||
loader_instruction::LoaderInstruction,
|
loader_instruction::LoaderInstruction,
|
||||||
|
@ -66,7 +65,6 @@ pub const UPGRADEABLE_LOADER_COMPUTE_UNITS: u64 = 2_370;
|
||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub fn load_program_from_bytes(
|
pub fn load_program_from_bytes(
|
||||||
delay_visibility_of_program_deployment: bool,
|
|
||||||
log_collector: Option<Rc<RefCell<LogCollector>>>,
|
log_collector: Option<Rc<RefCell<LogCollector>>>,
|
||||||
load_program_metrics: &mut LoadProgramMetrics,
|
load_program_metrics: &mut LoadProgramMetrics,
|
||||||
programdata: &[u8],
|
programdata: &[u8],
|
||||||
|
@ -76,11 +74,7 @@ pub fn load_program_from_bytes(
|
||||||
program_runtime_environment: Arc<BuiltinProgram<InvokeContext<'static>>>,
|
program_runtime_environment: Arc<BuiltinProgram<InvokeContext<'static>>>,
|
||||||
reloading: bool,
|
reloading: bool,
|
||||||
) -> Result<LoadedProgram, InstructionError> {
|
) -> Result<LoadedProgram, InstructionError> {
|
||||||
let effective_slot = if delay_visibility_of_program_deployment {
|
let effective_slot = deployment_slot.saturating_add(DELAY_VISIBILITY_SLOT_OFFSET);
|
||||||
deployment_slot.saturating_add(DELAY_VISIBILITY_SLOT_OFFSET)
|
|
||||||
} else {
|
|
||||||
deployment_slot
|
|
||||||
};
|
|
||||||
let loaded_program = if reloading {
|
let loaded_program = if reloading {
|
||||||
// Safety: this is safe because the program is being reloaded in the cache.
|
// Safety: this is safe because the program is being reloaded in the cache.
|
||||||
unsafe {
|
unsafe {
|
||||||
|
@ -150,7 +144,6 @@ macro_rules! deploy_program {
|
||||||
load_program_metrics.verify_code_us = verify_code_time.as_us();
|
load_program_metrics.verify_code_us = verify_code_time.as_us();
|
||||||
// Reload but with environments.program_runtime_v1
|
// Reload but with environments.program_runtime_v1
|
||||||
let executor = load_program_from_bytes(
|
let executor = load_program_from_bytes(
|
||||||
$invoke_context.feature_set.is_active(&delay_visibility_of_program_deployment::id()),
|
|
||||||
$invoke_context.get_log_collector(),
|
$invoke_context.get_log_collector(),
|
||||||
&mut load_program_metrics,
|
&mut load_program_metrics,
|
||||||
$new_programdata,
|
$new_programdata,
|
||||||
|
@ -1228,28 +1221,13 @@ fn process_loader_upgradeable_instruction(
|
||||||
&log_collector,
|
&log_collector,
|
||||||
)?;
|
)?;
|
||||||
let clock = invoke_context.get_sysvar_cache().get_clock()?;
|
let clock = invoke_context.get_sysvar_cache().get_clock()?;
|
||||||
if invoke_context
|
invoke_context.programs_modified_by_tx.replenish(
|
||||||
.feature_set
|
program_key,
|
||||||
.is_active(&delay_visibility_of_program_deployment::id())
|
Arc::new(LoadedProgram::new_tombstone(
|
||||||
{
|
clock.slot,
|
||||||
invoke_context.programs_modified_by_tx.replenish(
|
LoadedProgramType::Closed,
|
||||||
program_key,
|
)),
|
||||||
Arc::new(LoadedProgram::new_tombstone(
|
);
|
||||||
clock.slot,
|
|
||||||
LoadedProgramType::Closed,
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
invoke_context
|
|
||||||
.programs_updated_only_for_global_cache
|
|
||||||
.replenish(
|
|
||||||
program_key,
|
|
||||||
Arc::new(LoadedProgram::new_tombstone(
|
|
||||||
clock.slot,
|
|
||||||
LoadedProgramType::Closed,
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
ic_logger_msg!(log_collector, "Invalid Program account");
|
ic_logger_msg!(log_collector, "Invalid Program account");
|
||||||
|
@ -1711,7 +1689,6 @@ pub mod test_utils {
|
||||||
.expect("Failed to get account key");
|
.expect("Failed to get account key");
|
||||||
|
|
||||||
if let Ok(loaded_program) = load_program_from_bytes(
|
if let Ok(loaded_program) = load_program_from_bytes(
|
||||||
true,
|
|
||||||
None,
|
None,
|
||||||
&mut load_program_metrics,
|
&mut load_program_metrics,
|
||||||
account.data(),
|
account.data(),
|
||||||
|
|
|
@ -4733,8 +4733,6 @@ impl Bank {
|
||||||
|
|
||||||
ProgramAccountLoadResult::ProgramOfLoaderV1orV2(program_account) => {
|
ProgramAccountLoadResult::ProgramOfLoaderV1orV2(program_account) => {
|
||||||
solana_bpf_loader_program::load_program_from_bytes(
|
solana_bpf_loader_program::load_program_from_bytes(
|
||||||
self.feature_set
|
|
||||||
.is_active(&feature_set::delay_visibility_of_program_deployment::id()),
|
|
||||||
None,
|
None,
|
||||||
&mut load_program_metrics,
|
&mut load_program_metrics,
|
||||||
program_account.data(),
|
program_account.data(),
|
||||||
|
@ -4756,8 +4754,6 @@ impl Bank {
|
||||||
.ok_or(InstructionError::InvalidAccountData)
|
.ok_or(InstructionError::InvalidAccountData)
|
||||||
.and_then(|programdata| {
|
.and_then(|programdata| {
|
||||||
solana_bpf_loader_program::load_program_from_bytes(
|
solana_bpf_loader_program::load_program_from_bytes(
|
||||||
self.feature_set
|
|
||||||
.is_active(&feature_set::delay_visibility_of_program_deployment::id()),
|
|
||||||
None,
|
None,
|
||||||
&mut load_program_metrics,
|
&mut load_program_metrics,
|
||||||
programdata,
|
programdata,
|
||||||
|
@ -4915,10 +4911,6 @@ impl Bank {
|
||||||
self.slot,
|
self.slot,
|
||||||
programs_loaded_for_tx_batch.environments.clone(),
|
programs_loaded_for_tx_batch.environments.clone(),
|
||||||
);
|
);
|
||||||
let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::new(
|
|
||||||
self.slot,
|
|
||||||
programs_loaded_for_tx_batch.environments.clone(),
|
|
||||||
);
|
|
||||||
let mut process_message_time = Measure::start("process_message_time");
|
let mut process_message_time = Measure::start("process_message_time");
|
||||||
let process_result = MessageProcessor::process_message(
|
let process_result = MessageProcessor::process_message(
|
||||||
tx.message(),
|
tx.message(),
|
||||||
|
@ -4927,7 +4919,6 @@ impl Bank {
|
||||||
log_collector.clone(),
|
log_collector.clone(),
|
||||||
programs_loaded_for_tx_batch,
|
programs_loaded_for_tx_batch,
|
||||||
&mut programs_modified_by_tx,
|
&mut programs_modified_by_tx,
|
||||||
&mut programs_updated_only_for_global_cache,
|
|
||||||
self.feature_set.clone(),
|
self.feature_set.clone(),
|
||||||
compute_budget,
|
compute_budget,
|
||||||
timings,
|
timings,
|
||||||
|
@ -5027,9 +5018,6 @@ impl Bank {
|
||||||
accounts_data_len_delta,
|
accounts_data_len_delta,
|
||||||
},
|
},
|
||||||
programs_modified_by_tx: Box::new(programs_modified_by_tx),
|
programs_modified_by_tx: Box::new(programs_modified_by_tx),
|
||||||
programs_updated_only_for_global_cache: Box::new(
|
|
||||||
programs_updated_only_for_global_cache,
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5312,7 +5300,6 @@ impl Bank {
|
||||||
if let TransactionExecutionResult::Executed {
|
if let TransactionExecutionResult::Executed {
|
||||||
details,
|
details,
|
||||||
programs_modified_by_tx,
|
programs_modified_by_tx,
|
||||||
programs_updated_only_for_global_cache: _,
|
|
||||||
} = &result
|
} = &result
|
||||||
{
|
{
|
||||||
// Update batch specific cache of the loaded programs with the modifications
|
// Update batch specific cache of the loaded programs with the modifications
|
||||||
|
@ -5689,13 +5676,11 @@ impl Bank {
|
||||||
if let TransactionExecutionResult::Executed {
|
if let TransactionExecutionResult::Executed {
|
||||||
details,
|
details,
|
||||||
programs_modified_by_tx,
|
programs_modified_by_tx,
|
||||||
programs_updated_only_for_global_cache,
|
|
||||||
} = execution_result
|
} = execution_result
|
||||||
{
|
{
|
||||||
if details.status.is_ok() {
|
if details.status.is_ok() {
|
||||||
let mut cache = self.loaded_programs_cache.write().unwrap();
|
let mut cache = self.loaded_programs_cache.write().unwrap();
|
||||||
cache.merge(programs_modified_by_tx);
|
cache.merge(programs_modified_by_tx);
|
||||||
cache.merge(programs_updated_only_for_global_cache);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,7 +204,6 @@ fn new_execution_result(
|
||||||
accounts_data_len_delta: 0,
|
accounts_data_len_delta: 0,
|
||||||
},
|
},
|
||||||
programs_modified_by_tx: Box::<LoadedProgramsForTxBatch>::default(),
|
programs_modified_by_tx: Box::<LoadedProgramsForTxBatch>::default(),
|
||||||
programs_updated_only_for_global_cache: Box::<LoadedProgramsForTxBatch>::default(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue