clean feature: dedupe_config_program_signers (#34077)

This commit is contained in:
Justin Starry 2023-11-16 10:00:20 +08:00 committed by GitHub
parent 2573b7acc9
commit 0817cb048a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 12 deletions

View File

@ -5,8 +5,8 @@ use {
bincode::deserialize, bincode::deserialize,
solana_program_runtime::{declare_process_instruction, ic_msg}, solana_program_runtime::{declare_process_instruction, ic_msg},
solana_sdk::{ solana_sdk::{
feature_set, instruction::InstructionError, program_utils::limited_deserialize, instruction::InstructionError, program_utils::limited_deserialize, pubkey::Pubkey,
pubkey::Pubkey, transaction_context::IndexOfAccount, transaction_context::IndexOfAccount,
}, },
std::collections::BTreeSet, std::collections::BTreeSet,
}; };
@ -102,16 +102,12 @@ declare_process_instruction!(Entrypoint, DEFAULT_COMPUTE_UNITS, |invoke_context|
} }
} }
if invoke_context // dedupe signers
.feature_set let total_new_keys = key_list.keys.len();
.is_active(&feature_set::dedupe_config_program_signers::id()) let unique_new_keys = key_list.keys.into_iter().collect::<BTreeSet<_>>();
{ if unique_new_keys.len() != total_new_keys {
let total_new_keys = key_list.keys.len(); ic_msg!(invoke_context, "new config contains duplicate keys");
let unique_new_keys = key_list.keys.into_iter().collect::<BTreeSet<_>>(); return Err(InstructionError::InvalidArgument);
if unique_new_keys.len() != total_new_keys {
ic_msg!(invoke_context, "new config contains duplicate keys");
return Err(InstructionError::InvalidArgument);
}
} }
// Check for Config data signers not present in incoming account update // Check for Config data signers not present in incoming account update