Skip to content

Commit

Permalink
Remove deprecated symbols from recent_blockhashes_account (anza-xyz#2004
Browse files Browse the repository at this point in the history
)

* Move recent_blockhashes_account to runtime

* Fixup imports

* Reduce pub

* Remove unused method

* Duplicate code to limit pub and dependency complexity

* Move test-only fn into tests module
  • Loading branch information
CriesofCarrots authored and samkim-crypto committed Jul 31, 2024
1 parent 02c705d commit 9ce4b47
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 64 deletions.
53 changes: 39 additions & 14 deletions programs/system/src/system_processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,10 @@ declare_process_instruction!(Entrypoint, DEFAULT_COMPUTE_UNITS, |invoke_context|
mod tests {
#[allow(deprecated)]
use solana_sdk::{
account::{self, Account, AccountSharedData, ReadableAccount},
account::{
self, create_account_shared_data_with_fields, to_account, Account, AccountSharedData,
ReadableAccount, DUMMY_INHERITABLE_ACCOUNT_FIELDS,
},
fee_calculator::FeeCalculator,
hash::{hash, Hash},
instruction::{AccountMeta, Instruction, InstructionError},
Expand All @@ -552,8 +555,12 @@ mod tests {
Data as NonceData, DurableNonce, State as NonceState, Versions as NonceVersions,
},
},
nonce_account, recent_blockhashes_account, system_instruction, system_program,
sysvar::{self, recent_blockhashes::IterItem, rent::Rent},
nonce_account, system_instruction, system_program,
sysvar::{
self,
recent_blockhashes::{IntoIterSorted, IterItem, RecentBlockhashes, MAX_ENTRIES},
rent::Rent,
},
};
use {
super::*,
Expand All @@ -562,6 +569,7 @@ mod tests {
solana_program_runtime::{
invoke_context::mock_process_instruction, with_mock_invoke_context,
},
std::collections::BinaryHeap,
};

impl From<Pubkey> for Address {
Expand Down Expand Up @@ -595,11 +603,30 @@ mod tests {
fn create_default_account() -> AccountSharedData {
AccountSharedData::new(0, 0, &Pubkey::new_unique())
}
#[allow(deprecated)]
fn create_recent_blockhashes_account_for_test<'a, I>(
recent_blockhash_iter: I,
) -> AccountSharedData
where
I: IntoIterator<Item = IterItem<'a>>,
{
let mut account = create_account_shared_data_with_fields::<RecentBlockhashes>(
&RecentBlockhashes::default(),
DUMMY_INHERITABLE_ACCOUNT_FIELDS,
);
let sorted = BinaryHeap::from_iter(recent_blockhash_iter);
let sorted_iter = IntoIterSorted::new(sorted);
let recent_blockhash_iter = sorted_iter.take(MAX_ENTRIES);
let recent_blockhashes: RecentBlockhashes = recent_blockhash_iter.collect();
to_account(&recent_blockhashes, &mut account);
account
}
fn create_default_recent_blockhashes_account() -> AccountSharedData {
#[allow(deprecated)]
recent_blockhashes_account::create_account_with_data_for_test(
vec![IterItem(0u64, &Hash::default(), 0); sysvar::recent_blockhashes::MAX_ENTRIES],
)
create_recent_blockhashes_account_for_test(vec![
IterItem(0u64, &Hash::default(), 0);
sysvar::recent_blockhashes::MAX_ENTRIES
])
}
fn create_default_rent_account() -> AccountSharedData {
account::create_account_shared_data_for_test(&Rent::free())
Expand Down Expand Up @@ -1551,10 +1578,10 @@ mod tests {
);
let blockhash = hash(&serialize(&0).unwrap());
#[allow(deprecated)]
let new_recent_blockhashes_account =
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(
vec![IterItem(0u64, &blockhash, 0); sysvar::recent_blockhashes::MAX_ENTRIES],
);
let new_recent_blockhashes_account = create_recent_blockhashes_account_for_test(vec![
IterItem(0u64, &blockhash, 0);
sysvar::recent_blockhashes::MAX_ENTRIES
]);
mock_process_instruction(
&system_program::id(),
Vec::new(),
Expand Down Expand Up @@ -1837,8 +1864,7 @@ mod tests {
#[allow(deprecated)]
let blockhash_id = sysvar::recent_blockhashes::id();
#[allow(deprecated)]
let new_recent_blockhashes_account =
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(vec![]);
let new_recent_blockhashes_account = create_recent_blockhashes_account_for_test(vec![]);
process_instruction(
&serialize(&SystemInstruction::InitializeNonceAccount(nonce_address)).unwrap(),
vec![
Expand Down Expand Up @@ -1900,8 +1926,7 @@ mod tests {
Ok(()),
);
#[allow(deprecated)]
let new_recent_blockhashes_account =
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(vec![]);
let new_recent_blockhashes_account = create_recent_blockhashes_account_for_test(vec![]);
mock_process_instruction(
&system_program::id(),
Vec::new(),
Expand Down
3 changes: 1 addition & 2 deletions runtime/src/bank.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@
//! It offers a high-level API that signs transactions
//! on behalf of the caller, and a low-level API for when they have
//! already been signed and verified.
#[allow(deprecated)]
use solana_sdk::recent_blockhashes_account;
use {
crate::{
bank::{
Expand Down Expand Up @@ -228,6 +226,7 @@ pub mod epoch_accounts_hash_utils;
mod fee_distribution;
mod metrics;
pub(crate) mod partitioned_epoch_rewards;
mod recent_blockhashes_account;
mod serde_snapshot;
mod sysvar_cache;
pub(crate) mod tests;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,19 @@
//! Helpers for the recent blockhashes sysvar.
#[allow(deprecated)]
use solana_program::sysvar::recent_blockhashes::{
use solana_sdk::sysvar::recent_blockhashes::{
IntoIterSorted, IterItem, RecentBlockhashes, MAX_ENTRIES,
};
use {
crate::{
account::{
create_account_shared_data_with_fields, to_account, AccountSharedData,
InheritableAccountFields, DUMMY_INHERITABLE_ACCOUNT_FIELDS,
},
clock::INITIAL_RENT_EPOCH,
solana_sdk::account::{
create_account_shared_data_with_fields, to_account, AccountSharedData,
InheritableAccountFields,
},
std::{collections::BinaryHeap, iter::FromIterator},
};

#[deprecated(
since = "1.9.0",
note = "Please do not use, will no longer be available in the future"
)]
#[allow(deprecated)]
pub fn update_account<'a, I>(
account: &mut AccountSharedData,
recent_blockhash_iter: I,
) -> Option<()>
fn update_account<'a, I>(account: &mut AccountSharedData, recent_blockhash_iter: I) -> Option<()>
where
I: IntoIterator<Item = IterItem<'a>>,
{
Expand All @@ -37,25 +27,8 @@ where
to_account(&recent_blockhashes, account)
}

#[deprecated(
since = "1.5.17",
note = "Please use `create_account_with_data_for_test` instead"
)]
#[allow(deprecated)]
pub fn create_account_with_data<'a, I>(lamports: u64, recent_blockhash_iter: I) -> AccountSharedData
where
I: IntoIterator<Item = IterItem<'a>>,
{
#[allow(deprecated)]
create_account_with_data_and_fields(recent_blockhash_iter, (lamports, INITIAL_RENT_EPOCH))
}

#[deprecated(
since = "1.9.0",
note = "Please do not use, will no longer be available in the future"
)]
#[allow(deprecated)]
pub fn create_account_with_data_and_fields<'a, I>(
pub(in crate::bank) fn create_account_with_data_and_fields<'a, I>(
recent_blockhash_iter: I,
fields: InheritableAccountFields,
) -> AccountSharedData
Expand All @@ -70,31 +43,26 @@ where
account
}

#[deprecated(
since = "1.9.0",
note = "Please do not use, will no longer be available in the future"
)]
#[allow(deprecated)]
pub fn create_account_with_data_for_test<'a, I>(recent_blockhash_iter: I) -> AccountSharedData
where
I: IntoIterator<Item = IterItem<'a>>,
{
create_account_with_data_and_fields(recent_blockhash_iter, DUMMY_INHERITABLE_ACCOUNT_FIELDS)
}

#[cfg(test)]
mod tests {
#![allow(deprecated)]
use {
super::*,
crate::account::from_account,
rand::{seq::SliceRandom, thread_rng},
solana_program::{
solana_sdk::{
account::{from_account, DUMMY_INHERITABLE_ACCOUNT_FIELDS},
hash::{Hash, HASH_BYTES},
sysvar::recent_blockhashes::Entry,
},
};

fn create_account_with_data_for_test<'a, I>(recent_blockhash_iter: I) -> AccountSharedData
where
I: IntoIterator<Item = IterItem<'a>>,
{
create_account_with_data_and_fields(recent_blockhash_iter, DUMMY_INHERITABLE_ACCOUNT_FIELDS)
}

#[test]
fn test_create_account_empty() {
let account = create_account_with_data_for_test(vec![]);
Expand Down
1 change: 0 additions & 1 deletion sdk/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ pub mod precompiles;
pub mod program_utils;
pub mod pubkey;
pub mod quic;
pub mod recent_blockhashes_account;
pub mod rent_collector;
pub mod rent_debits;
pub mod reserved_account_keys;
Expand Down

0 comments on commit 9ce4b47

Please sign in to comment.