casper_storage/data_access_layer/
execution_results_checksum.rs1use crate::tracking_copy::TrackingCopyError;
2use casper_types::Digest;
3
4pub const EXECUTION_RESULTS_CHECKSUM_NAME: &str = "execution_results_checksum";
6
7#[derive(Debug, Clone, PartialEq, Eq)]
9pub struct ExecutionResultsChecksumRequest {
10 state_hash: Digest,
11}
12
13impl ExecutionResultsChecksumRequest {
14 pub fn new(state_hash: Digest) -> Self {
16 ExecutionResultsChecksumRequest { state_hash }
17 }
18
19 pub fn state_hash(&self) -> Digest {
21 self.state_hash
22 }
23}
24
25#[derive(Debug)]
27pub enum ExecutionResultsChecksumResult {
28 RootNotFound,
30 RegistryNotFound,
32 ChecksumNotFound,
34 Success {
36 checksum: Digest,
38 },
39 Failure(TrackingCopyError),
41}
42
43impl ExecutionResultsChecksumResult {
44 pub fn as_legacy(&self) -> Result<Option<Digest>, TrackingCopyError> {
46 match self {
47 ExecutionResultsChecksumResult::RootNotFound
48 | ExecutionResultsChecksumResult::RegistryNotFound
49 | ExecutionResultsChecksumResult::ChecksumNotFound => Ok(None),
50 ExecutionResultsChecksumResult::Success { checksum } => Ok(Some(*checksum)),
51 ExecutionResultsChecksumResult::Failure(err) => Err(err.clone()),
52 }
53 }
54}