Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.0: Remove deprecated symbols from recent_blockhashes_account (backport of #2004) #2009

Merged
merged 1 commit into from
Jul 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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