1use decaf377::Fq;
2use once_cell::sync::Lazy;
3
4mod action;
5mod ciphertext;
6mod payload;
7mod plaintext;
8mod plan;
9mod view;
10
11pub mod proof;
12
13pub use action::{Body, Swap};
14pub use ciphertext::SwapCiphertext;
15pub use payload::SwapPayload;
16pub use plaintext::{SwapPlaintext, SwapPlaintextVar};
17pub use plan::SwapPlan;
18pub use view::SwapView;
19
20pub const SWAP_CIPHERTEXT_BYTES: usize = 272;
22pub const SWAP_LEN_BYTES: usize = 256;
24
25pub static DOMAIN_SEPARATOR: Lazy<Fq> =
26 Lazy::new(|| Fq::from_le_bytes_mod_order(blake2b_simd::blake2b(b"penumbra.swap").as_bytes()));