Documentation ¶
Index ¶
- func CalcMerkleRoot(hashes []common.Hash) common.Hash
- func CalcProofRoot(target common.Hash, hashes []common.Hash, path uint32) common.Hash
- func Checksum(data []byte) []byte
- func DoubleKeccak256(data []byte) common.Hash
- func DoubleSha256(data []byte) common.Hash
- func Hash160(data []byte) common.Address
- func Keccak256(data ...[]byte) (h common.Hash)
- func NetKeccak256(chainId uint64, hh Hashable) common.Hash
- func NetSha256(net uint64, hh Hashable) common.Hash
- func RipeMD160(data []byte) common.Address
- func RlpHash(v interface{}) (h common.Hash)
- func Sha256(data []byte) common.Hash
- func VerifyMerkleProof(root common.Hash, target common.Hash, hashes []common.Hash, path uint32) bool
- type Hashable
- type KeccakState
- type MerkleTree
- type MerkleTreeNode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CalcMerkleRoot ¶
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 CalcProofRoot ¶
func Checksum ¶
Checksum returns the checksum for a given piece of data using sha256 twice as the hash algorithm.
func DoubleKeccak256 ¶
DoubleSha256 performs sha256 twice on the given data.
func DoubleSha256 ¶
DoubleSha256 performs sha256 twice on the given data.
func Keccak256 ¶
Keccak256Hash calculates and returns the Keccak256 hash of the input data, converting it to an internal Hash data structure.
func NetKeccak256 ¶
NetSha256 calculates network-specific hash of Hashable item that can then be signed/verified.
func NetSha256 ¶
NetSha256 calculates network-specific hash of Hashable item that can then be signed/verified.
Types ¶
type Hashable ¶
Hashable represents an object which can be hashed. Usually these objects are io.Serializable and signable. They tend to cache the hash inside for effectiveness, providing this accessor method. Anything that can be identified with a hash can then be signed and verified.
type KeccakState ¶
type MerkleTree ¶
type MerkleTree struct {
// contains filtered or unexported fields
}
MerkleTree implementation.
func NewMerkleTree ¶
func NewMerkleTree(hashes []common.Hash) (*MerkleTree, error)
NewMerkleTree returns new MerkleTree object.
func (*MerkleTree) Root ¶
func (t *MerkleTree) Root() common.Hash
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.