//! # 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(warnings)] #![deny(missing_docs)] #![deny(unused_crate_dependencies)] #![deny(clippy::arithmetic_side_effects)] #![deny(clippy::cast_possible_truncation)] mod amount; mod asset; mod broadcaster; mod config; mod error; mod filter; mod filter_expr; mod id; mod ledger; mod payment; mod serde; mod status; pub mod storage; #[cfg(test)] mod tests; pub mod token; mod transaction; mod worker; #[cfg(test)] pub use self::storage::test as storage_test; #[cfg(test)] use cucumber as _; pub use self::{ amount::{Amount, AnyAmount, HumanAmount}, asset::Asset, error::Error, filter::{Filter, FilterableValue, PrimaryFilter}, id::*, ledger::Ledger, payment::PaymentFrom, serde::*, status::{Status, StatusManager}, token::TokenPayload, transaction::*, };