simfony_as_rust/jet/
mod.rs1pub mod arithmetic;
6pub mod bitcoin_without_primitives;
7pub mod digital_signatures;
8pub mod elliptic_curve_functions;
9pub mod hash_functions;
10pub mod issuance;
11pub mod multi_bit_logic;
12pub mod signature_hash_modes;
13pub mod time_locks;
14pub mod transaction;
15
16pub use arithmetic::*;
17pub use bitcoin_without_primitives::*;
18pub use digital_signatures::*;
19pub use elliptic_curve_functions::*;
20pub use hash_functions::*;
21pub use issuance::*;
22pub use multi_bit_logic::*;
23pub use signature_hash_modes::*;
24pub use time_locks::*;
25pub use transaction::*;
26
27use either::Either;
28use std::marker::PhantomData;
29
30#[allow(non_camel_case_types)]
34pub struct u1;
35
36#[allow(non_camel_case_types)]
38pub struct u2;
39
40#[allow(non_camel_case_types)]
42pub struct u4;
43
44#[allow(non_camel_case_types)]
46pub struct u256;
47
48pub struct List<A, const BOUND: usize> {
50 phantom: PhantomData<[A; BOUND]>,
51}
52
53pub type Ctx8 = (List<u8, 64>, (u64, u256));
55
56pub type Pubkey = u256;
58pub type Message = u256;
60pub type Message64 = [u8; 64];
62pub type Signature = [u8; 64];
64
65pub type Scalar = u256;
67pub type Fe = u256;
69pub type Ge = (Fe, Fe);
71pub type Gej = (Ge, Fe);
73pub type Point = (u1, Fe);
76
77pub type Height = u32;
79pub type Time = u32;
81pub type Distance = u16;
83pub type Duration = u16;
85
86pub type Lock = u32;
88pub type Outpoint = (u256, u32);
90pub type Confidential1 = Point;
92pub type ExplicitAsset = u256;
94pub type Asset1 = Either<Confidential1, ExplicitAsset>;
96pub type ExplicitAmount = u64;
98pub type Amount1 = Either<Confidential1, ExplicitAmount>;
100pub type ExplicitNonce = u256;
102pub type Nonce = Either<Confidential1, ExplicitNonce>;
104pub type TokenAmount1 = Amount1;