drive/cache/
mod.rs

1use dpp::identity::TimestampMillis;
2
3mod data_contract;
4mod protocol_version;
5mod system_contracts;
6
7pub use data_contract::DataContractCache;
8pub use protocol_version::ProtocolVersionsCache;
9pub use system_contracts::SystemDataContracts;
10
11/// Drive cache struct
12pub struct DriveCache {
13    /// Cached contracts
14    pub data_contracts: DataContractCache,
15    // TODO: We probably don't need this since we have it genesis cache in the platform
16    /// Genesis time in ms
17    pub genesis_time_ms: parking_lot::RwLock<Option<TimestampMillis>>,
18    // TODO: Make protocol versions cache thread-safe
19    /// Lazy loaded counter of votes to upgrade protocol version
20    pub protocol_versions_counter: parking_lot::RwLock<ProtocolVersionsCache>,
21    /// Versioned system data contracts
22    pub system_data_contracts: SystemDataContracts,
23}