//! # 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)] mod amount; mod asset; mod asset_manager; mod changelog; mod error; mod id; mod ledger; mod payment; mod serde; #[cfg(any(feature = "sqlite", test))] pub mod sqlite; 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, asset::Asset, asset_manager::{AssetDefinition, AssetManager}, error::Error, id::*, ledger::Ledger, payment::{Payment, PaymentId}, serde::*, status::Status, transaction::{Transaction, Type}, }; #[cfg(any(feature = "sqlite", test))] pub use self::sqlite::{Batch, SQLite};