Rename tree::*NoteTreeRootHash to tree::Root

This commit is contained in:
Deirdre Connolly 2020-08-28 04:22:40 -04:00 committed by Deirdre Connolly
parent 31d98248ab
commit b467a75e08
7 changed files with 21 additions and 27 deletions

View File

@ -1,7 +1,7 @@
//! The LightClientRootHash enum, used for the corresponding block header field. //! The LightClientRootHash enum, used for the corresponding block header field.
use crate::parameters::{Network, NetworkUpgrade, NetworkUpgrade::*}; use crate::parameters::{Network, NetworkUpgrade, NetworkUpgrade::*};
use crate::sapling::tree::SaplingNoteTreeRootHash; use crate::sapling::tree::Root;
use super::Height; use super::Height;
@ -21,7 +21,7 @@ pub enum RootHash {
/// ///
/// The root LEBS2OSP256(rt) of the Sapling note commitment tree /// The root LEBS2OSP256(rt) of the Sapling note commitment tree
/// corresponding to the final Sapling treestate of this block. /// corresponding to the final Sapling treestate of this block.
FinalSaplingRoot(SaplingNoteTreeRootHash), FinalSaplingRoot(Root),
/// [Heartwood activation block] Reserved field. /// [Heartwood activation block] Reserved field.
/// ///
@ -51,7 +51,7 @@ impl RootHash {
match NetworkUpgrade::current(network, height) { match NetworkUpgrade::current(network, height) {
Genesis | BeforeOverwinter | Overwinter => PreSaplingReserved(bytes), Genesis | BeforeOverwinter | Overwinter => PreSaplingReserved(bytes),
Sapling | Blossom => FinalSaplingRoot(SaplingNoteTreeRootHash(bytes)), Sapling | Blossom => FinalSaplingRoot(Root(bytes)),
Heartwood if Some(height) == Heartwood.activation_height(network) => { Heartwood if Some(height) == Heartwood.activation_height(network) => {
ChainHistoryActivationReserved(bytes) ChainHistoryActivationReserved(bytes)
} }

View File

@ -20,7 +20,7 @@ pub struct Spend {
/// A value commitment to the value of the input note. /// A value commitment to the value of the input note.
pub cv: commitment::ValueCommitment, pub cv: commitment::ValueCommitment,
/// A root of the Sapling note commitment tree at some block height in the past. /// A root of the Sapling note commitment tree at some block height in the past.
pub anchor: tree::SaplingNoteTreeRootHash, pub anchor: tree::Root,
/// The nullifier of the input note. /// The nullifier of the input note.
pub nullifier: note::Nullifier, pub nullifier: note::Nullifier,
/// The randomized public key for `spend_auth_sig`. /// The randomized public key for `spend_auth_sig`.
@ -45,12 +45,10 @@ impl ZcashSerialize for Spend {
impl ZcashDeserialize for Spend { impl ZcashDeserialize for Spend {
fn zcash_deserialize<R: io::Read>(mut reader: R) -> Result<Self, SerializationError> { fn zcash_deserialize<R: io::Read>(mut reader: R) -> Result<Self, SerializationError> {
use crate::sapling::{ use crate::sapling::{commitment::ValueCommitment, note::Nullifier};
commitment::ValueCommitment, note::Nullifier, tree::SaplingNoteTreeRootHash,
};
Ok(Spend { Ok(Spend {
cv: ValueCommitment::zcash_deserialize(&mut reader)?, cv: ValueCommitment::zcash_deserialize(&mut reader)?,
anchor: SaplingNoteTreeRootHash(reader.read_32_bytes()?), anchor: tree::Root(reader.read_32_bytes()?),
nullifier: Nullifier::from(reader.read_32_bytes()?), nullifier: Nullifier::from(reader.read_32_bytes()?),
rk: reader.read_32_bytes()?.into(), rk: reader.read_32_bytes()?.into(),
zkproof: Groth16Proof::zcash_deserialize(&mut reader)?, zkproof: Groth16Proof::zcash_deserialize(&mut reader)?,

View File

@ -9,7 +9,7 @@ impl Arbitrary for Spend {
fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy { fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy {
( (
any::<tree::SaplingNoteTreeRootHash>(), any::<tree::Root>(),
any::<commitment::ValueCommitment>(), any::<commitment::ValueCommitment>(),
any::<note::Nullifier>(), any::<note::Nullifier>(),
array::uniform32(any::<u8>()), array::uniform32(any::<u8>()),

View File

@ -64,17 +64,15 @@ pub struct SaplingNoteCommitmentTree;
/// each treestate. /// each treestate.
#[derive(Clone, Copy, Default, Eq, PartialEq, Serialize, Deserialize)] #[derive(Clone, Copy, Default, Eq, PartialEq, Serialize, Deserialize)]
#[cfg_attr(test, derive(Arbitrary))] #[cfg_attr(test, derive(Arbitrary))]
pub struct SaplingNoteTreeRootHash(pub [u8; 32]); pub struct Root(pub [u8; 32]);
impl fmt::Debug for SaplingNoteTreeRootHash { impl fmt::Debug for Root {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_tuple("SaplingNoteTreeRootHash") f.debug_tuple("Root").field(&hex::encode(&self.0)).finish()
.field(&hex::encode(&self.0))
.finish()
} }
} }
impl From<SaplingNoteCommitmentTree> for SaplingNoteTreeRootHash { impl From<SaplingNoteCommitmentTree> for Root {
fn from(_tree: SaplingNoteCommitmentTree) -> Self { fn from(_tree: SaplingNoteCommitmentTree) -> Self {
// TODO: The Sapling note commitment tree requires a Pedersen // TODO: The Sapling note commitment tree requires a Pedersen
// hash function, not SHA256. // hash function, not SHA256.

View File

@ -28,7 +28,7 @@ pub struct JoinSplit<P: ZkSnarkProof> {
/// A root of the Sprout note commitment tree at some block height in the /// A root of the Sprout note commitment tree at some block height in the
/// past, or the root produced by a previous JoinSplit transfer in this /// past, or the root produced by a previous JoinSplit transfer in this
/// transaction. /// transaction.
pub anchor: tree::NoteTreeRootHash, pub anchor: tree::Root,
/// A nullifier for the input notes. /// A nullifier for the input notes.
pub nullifiers: [note::Nullifier; 2], pub nullifiers: [note::Nullifier; 2],
/// A note commitment for this output note. /// A note commitment for this output note.
@ -93,7 +93,7 @@ impl<P: ZkSnarkProof> ZcashDeserialize for JoinSplit<P> {
Ok(JoinSplit::<P> { Ok(JoinSplit::<P> {
vpub_old: reader.read_u64::<LittleEndian>()?.try_into()?, vpub_old: reader.read_u64::<LittleEndian>()?.try_into()?,
vpub_new: reader.read_u64::<LittleEndian>()?.try_into()?, vpub_new: reader.read_u64::<LittleEndian>()?.try_into()?,
anchor: tree::NoteTreeRootHash::from(reader.read_32_bytes()?), anchor: tree::Root::from(reader.read_32_bytes()?),
nullifiers: [ nullifiers: [
reader.read_32_bytes()?.into(), reader.read_32_bytes()?.into(),
reader.read_32_bytes()?.into(), reader.read_32_bytes()?.into(),

View File

@ -14,7 +14,7 @@ impl<P: ZkSnarkProof + Arbitrary + 'static> Arbitrary for JoinSplit<P> {
( (
any::<Amount<NonNegative>>(), any::<Amount<NonNegative>>(),
any::<Amount<NonNegative>>(), any::<Amount<NonNegative>>(),
any::<tree::NoteTreeRootHash>(), any::<tree::Root>(),
array::uniform2(any::<note::Nullifier>()), array::uniform2(any::<note::Nullifier>()),
array::uniform2(any::<commitment::NoteCommitment>()), array::uniform2(any::<commitment::NoteCommitment>()),
array::uniform32(any::<u8>()), array::uniform32(any::<u8>()),

View File

@ -24,24 +24,22 @@ use proptest_derive::Arbitrary;
/// each treestate. /// each treestate.
#[derive(Clone, Copy, Default, Eq, PartialEq, Serialize, Deserialize)] #[derive(Clone, Copy, Default, Eq, PartialEq, Serialize, Deserialize)]
#[cfg_attr(test, derive(Arbitrary))] #[cfg_attr(test, derive(Arbitrary))]
pub struct NoteTreeRootHash([u8; 32]); pub struct Root([u8; 32]);
impl fmt::Debug for NoteTreeRootHash { impl fmt::Debug for Root {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_tuple("SproutNoteTreeRootHash") f.debug_tuple("Root").field(&hex::encode(&self.0)).finish()
.field(&hex::encode(&self.0))
.finish()
} }
} }
impl From<[u8; 32]> for NoteTreeRootHash { impl From<[u8; 32]> for Root {
fn from(bytes: [u8; 32]) -> NoteTreeRootHash { fn from(bytes: [u8; 32]) -> Root {
Self(bytes) Self(bytes)
} }
} }
impl From<NoteTreeRootHash> for [u8; 32] { impl From<Root> for [u8; 32] {
fn from(rt: NoteTreeRootHash) -> [u8; 32] { fn from(rt: Root) -> [u8; 32] {
rt.0 rt.0
} }
} }