mod account;
mod in_memory_accounting;
mod transaction;
mod utils;
pub use in_memory_accounting::*;
pub use transaction::Transaction;
use crate::{types::MarginCurrency, Result};
pub trait TransactionAccounting<M>
where
M: MarginCurrency,
{
fn new(user_starting_wallet_balance: M) -> Self;
fn create_margin_transfer(&mut self, transaction: Transaction<M>) -> Result<()>;
fn margin_balance_of(&self, account: AccountId) -> Result<M>;
}
pub(crate) type AccountId = usize;