Fixed mkdnode & added some tests

This commit is contained in:
obscuren
2015-03-19 10:57:02 +01:00
parent e67d32b467
commit d7ab716eea
8 changed files with 55 additions and 16 deletions

View File

@ -6,8 +6,8 @@ import (
"fmt"
"sync"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
)
func ParanoiaCheck(t1 *Trie, backend Backend) (bool, *Trie) {
@ -305,11 +305,13 @@ func (self *Trie) mknode(value *common.Value) Node {
return NewShortNode(self, CompactDecode(string(value.Get(0).Bytes())), self.mknode(value.Get(1)))
}
case 17:
fnode := NewFullNode(self)
for i := 0; i < l; i++ {
fnode.set(byte(i), self.mknode(value.Get(i)))
if len(value.Bytes()) != 17 {
fnode := NewFullNode(self)
for i := 0; i < l; i++ {
fnode.set(byte(i), self.mknode(value.Get(i)))
}
return fnode
}
return fnode
case 32:
return &HashNode{value.Bytes(), self}
}