mod approvals_hashes;
mod block_execution_results_or_chunk;
mod block_execution_results_or_chunk_id;
mod block_payload;
mod block_with_metadata;
mod executable_block;
mod finalized_block;
mod invalid_proposal_error;
mod meta_block;
use casper_types::{
bytesrepr::{self, ToBytes},
Digest, FinalitySignature, SingleBlockRewardedSignatures, TransactionId,
};
pub use block_execution_results_or_chunk::BlockExecutionResultsOrChunk;
pub(crate) use block_execution_results_or_chunk_id::BlockExecutionResultsOrChunkId;
pub use block_payload::BlockPayload;
pub(crate) use block_with_metadata::BlockWithMetadata;
pub use executable_block::ExecutableBlock;
pub use finalized_block::{FinalizedBlock, InternalEraReport};
pub(crate) use invalid_proposal_error::InvalidProposalError;
pub(crate) use meta_block::{
ForwardMetaBlock, MergeMismatchError as MetaBlockMergeError, MetaBlock, State as MetaBlockState,
};
#[cfg_attr(doc, aquamarine::aquamarine)]
#[allow(dead_code)]
type ValidatorFinalitySignature = FinalitySignature;
pub(crate) fn compute_approvals_checksum(
txn_ids: Vec<TransactionId>,
) -> Result<Digest, bytesrepr::Error> {
let bytes = txn_ids.into_bytes()?;
Ok(Digest::hash(bytes))
}
pub(crate) fn create_single_block_rewarded_signatures(
validator_matrix: &super::ValidatorMatrix,
past_block_with_metadata: &BlockWithMetadata,
) -> Option<SingleBlockRewardedSignatures> {
validator_matrix
.validator_weights(past_block_with_metadata.block.era_id())
.map(|weights| {
SingleBlockRewardedSignatures::from_validator_set(
&past_block_with_metadata
.block_signatures
.signers()
.cloned()
.collect(),
weights.validator_public_keys(),
)
})
}