use super::contract_distribution::{CodeBytes, CodeHash};
use crate::state::PartialState;
use borsh::{BorshDeserialize, BorshSerialize};
use near_primitives_core::hash::CryptoHash;
use near_schema_checker_lib::ProtocolSchema;
#[derive(Debug, BorshSerialize, BorshDeserialize, ProtocolSchema)]
#[borsh(use_discriminant = true)]
#[repr(u8)]
pub enum StoredChunkStateTransitionData {
V1(StoredChunkStateTransitionDataV1) = 0,
}
impl StoredChunkStateTransitionData {
pub fn contract_accesses(&self) -> &[CodeHash] {
match &self {
Self::V1(v1) => &v1.contract_accesses,
}
}
}
#[derive(Debug, BorshSerialize, BorshDeserialize, ProtocolSchema)]
pub struct StoredChunkStateTransitionDataV1 {
pub base_state: PartialState,
pub receipts_hash: CryptoHash,
pub contract_accesses: Vec<CodeHash>,
pub contract_deploys: Vec<CodeBytes>,
}