From c6e029c6468f916b4a0acae1d1584adb2f1b12e4 Mon Sep 17 00:00:00 2001 From: Andrew Schran Date: Tue, 28 May 2024 17:31:03 -0400 Subject: [PATCH] fix empty version specific data in tests --- crates/sui-core/src/checkpoints/mod.rs | 7 ++-- .../unit_tests/batch_verification_tests.rs | 4 +- crates/sui-data-ingestion-core/src/tests.rs | 4 +- crates/sui-storage/tests/key_value_tests.rs | 4 +- crates/sui-types/src/messages_checkpoint.rs | 21 ++++++++--- crates/sui-types/src/unit_tests/utils.rs | 37 +------------------ 6 files changed, 26 insertions(+), 51 deletions(-) diff --git a/crates/sui-core/src/checkpoints/mod.rs b/crates/sui-core/src/checkpoints/mod.rs index efeb3013b0c4d9..d69f14d03a595c 100644 --- a/crates/sui-core/src/checkpoints/mod.rs +++ b/crates/sui-core/src/checkpoints/mod.rs @@ -1361,12 +1361,11 @@ impl CheckpointBuilder { .filter_map(|e| randomness_rounds.get(e.transaction_digest())) .copied() .collect(); - let data = CheckpointVersionSpecificData::V1(CheckpointVersionSpecificDataV1 { + Some(CheckpointVersionSpecificData::V1(CheckpointVersionSpecificDataV1 { randomness_rounds: matching_randomness_rounds, - }); - bcs::to_bytes(&data)? + })) } else { - Vec::new() + None }; let contents = CheckpointContents::new_with_digests_and_signatures( diff --git a/crates/sui-core/src/unit_tests/batch_verification_tests.rs b/crates/sui-core/src/unit_tests/batch_verification_tests.rs index c240ee38b9012b..7541c452a082fd 100644 --- a/crates/sui-core/src/unit_tests/batch_verification_tests.rs +++ b/crates/sui-core/src/unit_tests/batch_verification_tests.rs @@ -13,7 +13,7 @@ use sui_types::committee::Committee; use sui_types::crypto::{get_key_pair, AccountKeyPair, AuthorityKeyPair}; use sui_types::gas::GasCostSummary; use sui_types::messages_checkpoint::{ - CheckpointContents, CheckpointSummary, SignedCheckpointSummary, + CheckpointContents, CheckpointSummary, CheckpointVersionSpecificData, SignedCheckpointSummary, }; use sui_types::signature_verification::VerifiedDigestCache; use sui_types::transaction::CertifiedTransaction; @@ -63,7 +63,7 @@ fn gen_ckpts( GasCostSummary::default(), None, 0, - Vec::new(), + CheckpointVersionSpecificData::empty_for_tests(), ), k, name, diff --git a/crates/sui-data-ingestion-core/src/tests.rs b/crates/sui-data-ingestion-core/src/tests.rs index f603a0c13a9720..b317452518462e 100644 --- a/crates/sui-data-ingestion-core/src/tests.rs +++ b/crates/sui-data-ingestion-core/src/tests.rs @@ -17,7 +17,7 @@ use sui_types::full_checkpoint_content::CheckpointData; use sui_types::gas::GasCostSummary; use sui_types::messages_checkpoint::{ CertifiedCheckpointSummary, CheckpointContents, CheckpointSequenceNumber, CheckpointSummary, - SignedCheckpointSummary, + CheckpointVersionSpecificData, SignedCheckpointSummary, }; use sui_types::utils::make_committee_key; use tempfile::NamedTempFile; @@ -144,7 +144,7 @@ fn mock_checkpoint_data_bytes(seq_number: CheckpointSequenceNumber) -> Vec { GasCostSummary::default(), None, 0, - Vec::new(), + CheckpointVersionSpecificData::empty_for_tests(), ); let sign_infos: Vec<_> = keys diff --git a/crates/sui-storage/tests/key_value_tests.rs b/crates/sui-storage/tests/key_value_tests.rs index 4bed819dede0f2..58d64356124a9a 100644 --- a/crates/sui-storage/tests/key_value_tests.rs +++ b/crates/sui-storage/tests/key_value_tests.rs @@ -20,7 +20,7 @@ use sui_types::error::SuiResult; use sui_types::event::Event; use sui_types::messages_checkpoint::{ CertifiedCheckpointSummary, CheckpointContents, CheckpointSequenceNumber, CheckpointSummary, - SignedCheckpointSummary, + CheckpointVersionSpecificData, SignedCheckpointSummary, }; use sui_types::transaction::Transaction; @@ -114,7 +114,7 @@ impl MockTxStore { Default::default(), None, 0, - Vec::new(), + CheckpointVersionSpecificData::empty_for_tests(), ); let signed = SignedCheckpointSummary::new( diff --git a/crates/sui-types/src/messages_checkpoint.rs b/crates/sui-types/src/messages_checkpoint.rs index 196f63a1790112..2b0eebb9fdcd2b 100644 --- a/crates/sui-types/src/messages_checkpoint.rs +++ b/crates/sui-types/src/messages_checkpoint.rs @@ -209,9 +209,12 @@ impl CheckpointSummary { epoch_rolling_gas_cost_summary: GasCostSummary, end_of_epoch_data: Option, timestamp_ms: CheckpointTimestamp, - version_specific_data: Vec, + version_specific_data: Option, ) -> CheckpointSummary { let content_digest = *transactions.digest(); + let version_specific_data = version_specific_data + .map(|v| bcs::to_bytes(&v).expect("version specific data should serialize")) + .unwrap_or_default(); Self { epoch, @@ -730,6 +733,14 @@ impl CheckpointVersionSpecificData { Self::V1(v) => v, } } + + pub fn empty_for_tests() -> Option { + Some(CheckpointVersionSpecificData::V1( + CheckpointVersionSpecificDataV1 { + randomness_rounds: Vec::new(), + }, + )) + } } #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] @@ -782,7 +793,7 @@ mod tests { GasCostSummary::default(), None, 0, - Vec::new(), + CheckpointVersionSpecificData::empty_for_tests(), ), k, name, @@ -817,7 +828,7 @@ mod tests { GasCostSummary::default(), None, 0, - Vec::new(), + CheckpointVersionSpecificData::empty_for_tests(), ); let sign_infos: Vec<_> = keys @@ -857,7 +868,7 @@ mod tests { GasCostSummary::default(), None, 0, - Vec::new(), + CheckpointVersionSpecificData::empty_for_tests(), ), k, name, @@ -896,7 +907,7 @@ mod tests { GasCostSummary::default(), None, 100, - Vec::new(), + CheckpointVersionSpecificData::empty_for_tests(), ) } diff --git a/crates/sui-types/src/unit_tests/utils.rs b/crates/sui-types/src/unit_tests/utils.rs index dd9e1b2c990261..73cf30fdf2933e 100644 --- a/crates/sui-types/src/unit_tests/utils.rs +++ b/crates/sui-types/src/unit_tests/utils.rs @@ -7,16 +7,12 @@ use crate::programmable_transaction_builder::ProgrammableTransactionBuilder; use crate::transaction::{SenderSignedData, TEST_ONLY_GAS_UNIT_FOR_TRANSFER}; use crate::SuiAddress; use crate::{ - base_types::{dbg_addr, ExecutionDigests, ObjectID}, + base_types::{dbg_addr, ObjectID}, committee::Committee, crypto::{ get_key_pair, get_key_pair_from_rng, AccountKeyPair, AuthorityKeyPair, AuthorityPublicKeyBytes, DefaultHash, Signature, SignatureScheme, }, - gas::GasCostSummary, - messages_checkpoint::{ - CertifiedCheckpointSummary, CheckpointContents, CheckpointSummary, SignedCheckpointSummary, - }, object::Object, signature::GenericSignature, transaction::{Transaction, TransactionData}, @@ -129,37 +125,6 @@ pub fn to_sender_signed_transaction_with_multi_signers( Transaction::from_data_and_signer(data, signers) } -pub fn mock_certified_checkpoint<'a>( - keys: impl Iterator, - committee: Committee, - seq_num: u64, -) -> CertifiedCheckpointSummary { - let contents = - CheckpointContents::new_with_digests_only_for_tests([ExecutionDigests::random()]); - - let summary = CheckpointSummary::new( - committee.epoch, - seq_num, - 0, - &contents, - None, - GasCostSummary::default(), - None, - 0, - Vec::new(), - ); - - let sign_infos: Vec<_> = keys - .map(|k| { - let name = k.public().into(); - - SignedCheckpointSummary::sign(committee.epoch, &summary, k, name) - }) - .collect(); - - CertifiedCheckpointSummary::new(summary, sign_infos, &committee).expect("Cert is OK") -} - mod zk_login { use fastcrypto_zkp::bn254::zk_login::ZkLoginInputs; use shared_crypto::intent::PersonalMessage;