package merkle import ( "fmt" ) type Db interface { Get([]byte) []byte Set([]byte, []byte) } type Tree interface { Size() uint64 Height() uint8 Has(key []byte) bool Get(key []byte) []byte HashWithCount() ([]byte, uint64) Hash() []byte Save() SaveKey(string) Set(key []byte, vlaue []byte) bool Remove(key []byte) ([]byte, error) Copy() Tree } func NotFound(key []byte) error { return fmt.Errorf("Key was not found.") }