pub mod arithmetic;
pub mod bitcoin_without_primitives;
pub mod digital_signatures;
pub mod elliptic_curve_functions;
pub mod hash_functions;
pub mod issuance;
pub mod multi_bit_logic;
pub mod signature_hash_modes;
pub mod time_locks;
pub mod transaction;
pub use arithmetic::*;
pub use bitcoin_without_primitives::*;
pub use digital_signatures::*;
pub use elliptic_curve_functions::*;
pub use hash_functions::*;
pub use issuance::*;
pub use multi_bit_logic::*;
pub use signature_hash_modes::*;
pub use time_locks::*;
pub use transaction::*;
use either::Either;
use std::marker::PhantomData;
#[allow(non_camel_case_types)]
pub struct u1;
#[allow(non_camel_case_types)]
pub struct u2;
#[allow(non_camel_case_types)]
pub struct u4;
#[allow(non_camel_case_types)]
pub struct u256;
pub struct List<A, const BOUND: usize> {
phantom: PhantomData<[A; BOUND]>,
}
pub type Ctx8 = (List<u8, 64>, (u64, u256));
pub type Pubkey = u256;
pub type Message = u256;
pub type Message64 = [u8; 64];
pub type Signature = [u8; 64];
pub type Scalar = u256;
pub type Fe = u256;
pub type Ge = (Fe, Fe);
pub type Gej = (Ge, Fe);
pub type Point = (u1, Fe);
pub type Height = u32;
pub type Time = u32;
pub type Distance = u16;
pub type Duration = u16;
pub type Lock = u32;
pub type Outpoint = (u256, u32);
pub type Confidential1 = Point;
pub type ExplicitAsset = u256;
pub type Asset1 = Either<Confidential1, ExplicitAsset>;
pub type ExplicitAmount = u64;
pub type Amount1 = Either<Confidential1, ExplicitAmount>;
pub type ExplicitNonce = u256;
pub type Nonce = Either<Confidential1, ExplicitNonce>;
pub type TokenAmount1 = Amount1;