use casper_types::{BlockHash, EraId, TransactionHash};
use std::fmt::Debug;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum BlockStoreError {
#[error("duplicate entries for block at height {height}: {first} / {second}")]
DuplicateBlock {
height: u64,
first: BlockHash,
second: BlockHash,
},
#[error("duplicate entries for switch block at era id {era_id}: {first} / {second}")]
DuplicateEraId {
era_id: EraId,
first: BlockHash,
second: BlockHash,
},
#[error("duplicate entries for blocks for transaction {transaction_hash}: {first} / {second}")]
DuplicateTransaction {
transaction_hash: TransactionHash,
first: BlockHash,
second: BlockHash,
},
#[error("internal database error: {0}")]
InternalStorage(Box<dyn std::error::Error + Send + Sync>),
#[error("unsupported operation")]
UnsupportedOperation,
}