//! # Verax: A simple ledger database //! //! It is a simple Ledger database which aims to be a building block for //! financial products. //! //! Verax uses a UTXO model (unspent transaction output), heavily inspired by //! Bitcoin. Having UTXO each account balance is isolated from the rest and it's //! easy to track the history of each payment. In Verax the terminology is //! slighly different, there are unspent payments instead of UTXO. //! //! The data model is simple, any transaction spends one or many payments. Those //! payments cannot be spend again and are marked as spent. The transaction can //! be settled or not, if it's not settled it can be rolled back. Each //! transaction creates new payments that can be spend in the future by other //! transactions. //! //! Verax aims to be simple, auditable, cryptographically provable and human //! auditable friendly. #![deny(missing_docs)] #![deny(warnings)] #![deny(unused_crate_dependencies)] #![deny(clippy::arithmetic_side_effects)] #![deny(clippy::cast_possible_truncation)] mod amount; mod asset; mod config; mod error; mod id; mod ledger; mod payment; mod serde; mod status; pub mod storage; #[cfg(test)] mod tests; mod transaction; #[cfg(test)] pub use self::storage::test as storage_test; pub use self::{ amount::{Amount, AnyAmount, HumanAmount}, asset::Asset, error::Error, id::*, ledger::Ledger, payment::{PaymentFrom, PaymentId}, serde::*, status::Status, transaction::{Transaction, Type}, };