mirror of
https://github.com/Qortal/pirate-librustzcash.git
synced 2025-11-03 12:57:03 +00:00
move node data to separate mod
This commit is contained in:
20
src/lib.rs
20
src/lib.rs
@@ -6,27 +6,11 @@
|
|||||||
#[cfg(test)] #[macro_use] extern crate quickcheck;
|
#[cfg(test)] #[macro_use] extern crate quickcheck;
|
||||||
extern crate derive_more;
|
extern crate derive_more;
|
||||||
|
|
||||||
|
|
||||||
mod tree;
|
mod tree;
|
||||||
|
mod node_data;
|
||||||
|
|
||||||
pub use tree::Tree;
|
pub use tree::Tree;
|
||||||
|
pub use node_data::NodeData;
|
||||||
/// Node metadata.
|
|
||||||
#[repr(C)]
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct NodeData {
|
|
||||||
subtree_commitment: [u8; 32],
|
|
||||||
start_time: u32,
|
|
||||||
end_time: u32,
|
|
||||||
start_target: u32,
|
|
||||||
end_target: u32,
|
|
||||||
start_sapling_root: [u8; 32],
|
|
||||||
end_sapling_root: [u8; 32],
|
|
||||||
subtree_total_work: u64,
|
|
||||||
start_height: u32,
|
|
||||||
end_height: u32,
|
|
||||||
shielded_tx: u64,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, derive_more::Display)]
|
#[derive(Debug, derive_more::Display)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
|
|||||||
37
src/node_data.rs
Normal file
37
src/node_data.rs
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
/// Node metadata.
|
||||||
|
#[repr(C)]
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct NodeData {
|
||||||
|
pub subtree_commitment: [u8; 32],
|
||||||
|
pub start_time: u32,
|
||||||
|
pub end_time: u32,
|
||||||
|
pub start_target: u32,
|
||||||
|
pub end_target: u32,
|
||||||
|
pub start_sapling_root: [u8; 32],
|
||||||
|
pub end_sapling_root: [u8; 32],
|
||||||
|
pub subtree_total_work: u64,
|
||||||
|
pub start_height: u32,
|
||||||
|
pub end_height: u32,
|
||||||
|
pub shielded_tx: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl NodeData {
|
||||||
|
pub fn combine(left: &NodeData, right: &NodeData) -> NodeData {
|
||||||
|
NodeData {
|
||||||
|
// TODO: hash children
|
||||||
|
subtree_commitment: [0u8; 32],
|
||||||
|
start_time: left.start_time,
|
||||||
|
end_time: right.end_time,
|
||||||
|
start_target: left.start_target,
|
||||||
|
end_target: right.end_target,
|
||||||
|
start_sapling_root: left.start_sapling_root,
|
||||||
|
end_sapling_root: right.end_sapling_root,
|
||||||
|
|
||||||
|
// TODO: sum work?
|
||||||
|
subtree_total_work: 0,
|
||||||
|
start_height: left.start_height,
|
||||||
|
end_height: right.end_height,
|
||||||
|
shielded_tx: left.shielded_tx + right.shielded_tx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
21
src/tree.rs
21
src/tree.rs
@@ -272,29 +272,10 @@ impl<'a> IndexedNode<'a> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn combine_data(left: &NodeData, right: &NodeData) -> NodeData {
|
|
||||||
NodeData {
|
|
||||||
// TODO: hash children
|
|
||||||
subtree_commitment: [0u8; 32],
|
|
||||||
start_time: left.start_time,
|
|
||||||
end_time: right.end_time,
|
|
||||||
start_target: left.start_target,
|
|
||||||
end_target: right.end_target,
|
|
||||||
start_sapling_root: left.start_sapling_root,
|
|
||||||
end_sapling_root: right.end_sapling_root,
|
|
||||||
|
|
||||||
// TODO: sum work?
|
|
||||||
subtree_total_work: 0,
|
|
||||||
start_height: left.start_height,
|
|
||||||
end_height: right.end_height,
|
|
||||||
shielded_tx: left.shielded_tx + right.shielded_tx,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn combine_nodes<'a>(left: IndexedNode<'a>, right: IndexedNode<'a>) -> Entry {
|
fn combine_nodes<'a>(left: IndexedNode<'a>, right: IndexedNode<'a>) -> Entry {
|
||||||
Entry {
|
Entry {
|
||||||
kind: EntryKind::Node(left.link, right.link),
|
kind: EntryKind::Node(left.link, right.link),
|
||||||
data: combine_data(&left.node.data, &right.node.data),
|
data: NodeData::combine(&left.node.data, &right.node.data),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user