Rename SaplingShieldedAddress to Address, make address & commitment private, export their structs

This commit is contained in:
Deirdre Connolly 2020-08-28 00:14:41 -04:00 committed by Deirdre Connolly
parent df89a049cb
commit c027cfc0d2
2 changed files with 17 additions and 13 deletions

View File

@ -1,5 +1,7 @@
//! Sapling-related functionality. //! Sapling-related functionality.
mod address;
mod commitment;
mod output; mod output;
mod spend; mod spend;
@ -8,11 +10,13 @@ pub use spend::Spend;
// XXX clean up these modules // XXX clean up these modules
pub mod address;
pub mod commitment;
pub mod keys; pub mod keys;
pub mod note; pub mod note;
pub mod tree; pub mod tree;
#[cfg(test)] #[cfg(test)]
mod tests; mod tests;
pub use address::Address;
pub use commitment::{CommitmentRandomness, NoteCommitment, ValueCommitment};
pub use keys::Diversifier;

View File

@ -30,15 +30,15 @@ mod human_readable_parts {
/// ///
/// [4.2.2]: https://zips.z.cash/protocol/protocol.pdf#saplingkeycomponents /// [4.2.2]: https://zips.z.cash/protocol/protocol.pdf#saplingkeycomponents
#[derive(Clone, Copy, Eq, PartialEq)] #[derive(Clone, Copy, Eq, PartialEq)]
pub struct SaplingShieldedAddress { pub struct Address {
network: Network, network: Network,
diversifier: keys::Diversifier, diversifier: keys::Diversifier,
transmission_key: keys::TransmissionKey, transmission_key: keys::TransmissionKey,
} }
impl fmt::Debug for SaplingShieldedAddress { impl fmt::Debug for Address {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("SaplingShieldedAddress") f.debug_struct("SaplingAddress")
.field("network", &self.network) .field("network", &self.network)
.field("diversifier", &self.diversifier) .field("diversifier", &self.diversifier)
.field("transmission_key", &self.transmission_key) .field("transmission_key", &self.transmission_key)
@ -46,7 +46,7 @@ impl fmt::Debug for SaplingShieldedAddress {
} }
} }
impl fmt::Display for SaplingShieldedAddress { impl fmt::Display for Address {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let mut bytes = io::Cursor::new(Vec::new()); let mut bytes = io::Cursor::new(Vec::new());
@ -62,7 +62,7 @@ impl fmt::Display for SaplingShieldedAddress {
} }
} }
impl std::str::FromStr for SaplingShieldedAddress { impl std::str::FromStr for Address {
type Err = SerializationError; type Err = SerializationError;
fn from_str(s: &str) -> Result<Self, Self::Err> { fn from_str(s: &str) -> Result<Self, Self::Err> {
@ -75,7 +75,7 @@ impl std::str::FromStr for SaplingShieldedAddress {
let transmission_key_bytes = decoded_bytes.read_32_bytes()?; let transmission_key_bytes = decoded_bytes.read_32_bytes()?;
Ok(SaplingShieldedAddress { Ok(Address {
network: match hrp.as_str() { network: match hrp.as_str() {
human_readable_parts::MAINNET => Network::Mainnet, human_readable_parts::MAINNET => Network::Mainnet,
_ => Network::Testnet, _ => Network::Testnet,
@ -90,7 +90,7 @@ impl std::str::FromStr for SaplingShieldedAddress {
} }
#[cfg(test)] #[cfg(test)]
impl Arbitrary for SaplingShieldedAddress { impl Arbitrary for Address {
type Parameters = (); type Parameters = ();
fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy { fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy {
@ -119,7 +119,7 @@ mod tests {
#[test] #[test]
fn from_str_display() { fn from_str_display() {
let zs_addr: SaplingShieldedAddress = let zs_addr: Address =
"zs1qqqqqqqqqqqqqqqqqrjq05nyfku05msvu49mawhg6kr0wwljahypwyk2h88z6975u563j8nfaxd" "zs1qqqqqqqqqqqqqqqqqrjq05nyfku05msvu49mawhg6kr0wwljahypwyk2h88z6975u563j8nfaxd"
.parse() .parse()
.unwrap(); .unwrap();
@ -145,7 +145,7 @@ mod tests {
let diversifier = keys::Diversifier::new(&mut OsRng); let diversifier = keys::Diversifier::new(&mut OsRng);
let transmission_key = keys::TransmissionKey::from((incoming_viewing_key, diversifier)); let transmission_key = keys::TransmissionKey::from((incoming_viewing_key, diversifier));
let _sapling_shielded_address = SaplingShieldedAddress { let _sapling_shielded_address = Address {
network: Network::Mainnet, network: Network::Mainnet,
diversifier, diversifier,
transmission_key, transmission_key,
@ -157,11 +157,11 @@ mod tests {
proptest! { proptest! {
#[test] #[test]
fn sapling_address_roundtrip(zaddr in any::<SaplingShieldedAddress>()) { fn sapling_address_roundtrip(zaddr in any::<Address>()) {
let string = zaddr.to_string(); let string = zaddr.to_string();
let zaddr2 = string.parse::<SaplingShieldedAddress>() let zaddr2 = string.parse::<Address>()
.expect("randomized sapling z-addr should deserialize"); .expect("randomized sapling z-addr should deserialize");
prop_assert_eq![zaddr, zaddr2]; prop_assert_eq![zaddr, zaddr2];