Rename tree::*NoteTreeRootHash to tree::Root
This commit is contained in:
parent
31d98248ab
commit
b467a75e08
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)?,
|
||||||
|
|
|
@ -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>()),
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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(),
|
||||||
|
|
|
@ -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>()),
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue