#![forbid(unsafe_code)]
pub mod block;
pub mod chain;
pub mod transaction;
pub mod wallet;
pub use block::*;
pub use chain::*;
use serde::{Deserialize, Serialize};
use thiserror::Error;
pub use transaction::*;
pub use wallet::*;
#[derive(Debug, Error, Serialize, Deserialize, PartialEq)]
pub enum BlockchainError {
#[error("Transaction not found.")]
TransactionNotFound,
#[error("Invalid transaction.")]
InvalidTransaction,
#[error("Invalid configuration during blockchain creation.")]
InvalidConfiguration,
#[error("Insufficient funds.")]
InsufficientFunds,
#[error("Wallet not found.")]
WalletNotFound,
}