## Issue Addressed Closes #673 ## Proposed Changes Store a schema version in the database so that future releases can check they're running against a compatible database version. This would also enable automatic migration on breaking database changes, but that's left as future work. The database config is also stored in the database so that the `slots_per_restore_point` value can be checked for consistency, which closes #673
70 lines
1.5 KiB
Rust
70 lines
1.5 KiB
Rust
use crate::chunked_vector::ChunkError;
|
|
use crate::config::StoreConfigError;
|
|
use crate::hot_cold_store::HotColdDBError;
|
|
use ssz::DecodeError;
|
|
use types::{BeaconStateError, Hash256, Slot};
|
|
|
|
pub type Result<T> = std::result::Result<T, Error>;
|
|
|
|
#[derive(Debug)]
|
|
pub enum Error {
|
|
SszDecodeError(DecodeError),
|
|
VectorChunkError(ChunkError),
|
|
BeaconStateError(BeaconStateError),
|
|
PartialBeaconStateError,
|
|
HotColdDBError(HotColdDBError),
|
|
DBError { message: String },
|
|
RlpError(String),
|
|
BlockNotFound(Hash256),
|
|
NoContinuationData,
|
|
SplitPointModified(Slot, Slot),
|
|
ConfigError(StoreConfigError),
|
|
}
|
|
|
|
impl From<DecodeError> for Error {
|
|
fn from(e: DecodeError) -> Error {
|
|
Error::SszDecodeError(e)
|
|
}
|
|
}
|
|
|
|
impl From<ChunkError> for Error {
|
|
fn from(e: ChunkError) -> Error {
|
|
Error::VectorChunkError(e)
|
|
}
|
|
}
|
|
|
|
impl From<HotColdDBError> for Error {
|
|
fn from(e: HotColdDBError) -> Error {
|
|
Error::HotColdDBError(e)
|
|
}
|
|
}
|
|
|
|
impl From<BeaconStateError> for Error {
|
|
fn from(e: BeaconStateError) -> Error {
|
|
Error::BeaconStateError(e)
|
|
}
|
|
}
|
|
|
|
impl From<DBError> for Error {
|
|
fn from(e: DBError) -> Error {
|
|
Error::DBError { message: e.message }
|
|
}
|
|
}
|
|
|
|
impl From<StoreConfigError> for Error {
|
|
fn from(e: StoreConfigError) -> Error {
|
|
Error::ConfigError(e)
|
|
}
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
pub struct DBError {
|
|
pub message: String,
|
|
}
|
|
|
|
impl DBError {
|
|
pub fn new(message: String) -> Self {
|
|
Self { message }
|
|
}
|
|
}
|