Documentation ¶
Overview ¶
Package hash contains wrappers for Neo hashing algorithms.
It also implements Merkle tree.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CalcMerkleRoot ¶ added in v0.92.0
CalcMerkleRoot calculcates Merkle root hash value for a given slice of hashes. It doesn't create a full MerkleTree structure and it uses given slice as a scratchpad, so it will destroy its contents in the process. But it's much more memory efficient if you only need root hash value, while NewMerkleTree would make 3*N allocations for N hashes, this function will only make 4. It also is an error to call this function for zero-length hashes slice, the function will panic.
func Checksum ¶
Checksum returns the checksum for a given piece of data using sha256 twice as the hash algorithm.
func DoubleSha256 ¶
DoubleSha256 performs sha256 twice on the given data.
Types ¶
type MerkleTree ¶
type MerkleTree struct {
// contains filtered or unexported fields
}
MerkleTree implementation.
func NewMerkleTree ¶
func NewMerkleTree(hashes []util.Uint256) (*MerkleTree, error)
NewMerkleTree returns new MerkleTree object.
func (*MerkleTree) Root ¶
func (t *MerkleTree) Root() util.Uint256
Root returns the computed root hash of the MerkleTree.
type MerkleTreeNode ¶
type MerkleTreeNode struct {
// contains filtered or unexported fields
}
MerkleTreeNode represents a node in the MerkleTree.
func (*MerkleTreeNode) IsLeaf ¶
func (n *MerkleTreeNode) IsLeaf() bool
IsLeaf returns whether this node is a leaf node or not.
func (*MerkleTreeNode) IsRoot ¶
func (n *MerkleTreeNode) IsRoot() bool
IsRoot returns whether this node is a root node or not.