github.com/karalabe/go-ethereum@v0.8.5/trie/hashnode.go (about)

     1  package trie
     2  
     3  import "github.com/ethereum/go-ethereum/ethutil"
     4  
     5  type HashNode struct {
     6  	key  []byte
     7  	trie *Trie
     8  }
     9  
    10  func NewHash(key []byte, trie *Trie) *HashNode {
    11  	return &HashNode{key, trie}
    12  }
    13  
    14  func (self *HashNode) RlpData() interface{} {
    15  	return self.key
    16  }
    17  
    18  func (self *HashNode) Hash() interface{} {
    19  	return self.key
    20  }
    21  
    22  // These methods will never be called but we have to satisfy Node interface
    23  func (self *HashNode) Value() Node       { return nil }
    24  func (self *HashNode) Dirty() bool       { return true }
    25  func (self *HashNode) Copy(t *Trie) Node { return NewHash(ethutil.CopyBytes(self.key), t) }