forked from TrueCloudLab/neoneo-go
hash: simplify merkle tree error handling
buildMerkleTree() is internal to the hash package and if anyone calls it with `len(leaves) == 0` he deserves a panic. As it's the only error case in it, we can remove error value return from this function and simplify NewMerkleTree().
This commit is contained in:
parent
ee28fb08f6
commit
ddad9ac9a3
1 changed files with 4 additions and 9 deletions
|
@ -25,13 +25,8 @@ func NewMerkleTree(hashes []util.Uint256) (*MerkleTree, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
root, err := buildMerkleTree(nodes)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &MerkleTree{
|
return &MerkleTree{
|
||||||
root: root,
|
root: buildMerkleTree(nodes),
|
||||||
depth: 1,
|
depth: 1,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
@ -41,12 +36,12 @@ func (t *MerkleTree) Root() util.Uint256 {
|
||||||
return t.root.hash
|
return t.root.hash
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildMerkleTree(leaves []*MerkleTreeNode) (*MerkleTreeNode, error) {
|
func buildMerkleTree(leaves []*MerkleTreeNode) *MerkleTreeNode {
|
||||||
if len(leaves) == 0 {
|
if len(leaves) == 0 {
|
||||||
return nil, errors.New("length of the leaves cannot be zero")
|
panic("length of leaves cannot be zero")
|
||||||
}
|
}
|
||||||
if len(leaves) == 1 {
|
if len(leaves) == 1 {
|
||||||
return leaves[0], nil
|
return leaves[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
parents := make([]*MerkleTreeNode, (len(leaves)+1)/2)
|
parents := make([]*MerkleTreeNode, (len(leaves)+1)/2)
|
||||||
|
|
Loading…
Reference in a new issue