Commit d98a6f85 authored by obscuren's avatar obscuren

core: further improved uncle error messages

parent c2ef8682
...@@ -343,23 +343,23 @@ func (sm *BlockProcessor) VerifyUncles(statedb *state.StateDB, block, parent *ty ...@@ -343,23 +343,23 @@ func (sm *BlockProcessor) VerifyUncles(statedb *state.StateDB, block, parent *ty
uncles.Add(block.Hash()) uncles.Add(block.Hash())
for i, uncle := range block.Uncles() { for i, uncle := range block.Uncles() {
if uncles.Has(uncle.Hash()) { hash := uncle.Hash()
if uncles.Has(hash) {
// Error not unique // Error not unique
return UncleError("uncle[%d] not unique", i) return UncleError("uncle[%d](%x) not unique", i, hash[:4])
} }
uncles.Add(hash)
uncles.Add(uncle.Hash()) if ancestors.Has(hash) {
return UncleError("uncle[%d](%x) is ancestor", i, hash[:4])
if ancestors.Has(uncle.Hash()) {
return UncleError("uncle[%d] is ancestor", i)
} }
if !ancestors.Has(uncle.ParentHash) { if !ancestors.Has(uncle.ParentHash) {
return UncleError("uncle[%d]'s parent unknown (%x)", i, uncle.ParentHash[0:4]) return UncleError("uncle[%d](%x)'s parent unknown (%x)", i, hash[:4], uncle.ParentHash[0:4])
} }
if err := sm.ValidateHeader(uncle, ancestorHeaders[uncle.ParentHash]); err != nil { if err := sm.ValidateHeader(uncle, ancestorHeaders[uncle.ParentHash]); err != nil {
return ValidationError(fmt.Sprintf("uncle[%d](%x) header invalid: %v", i, uncle.Hash().Bytes()[:4], err)) return ValidationError(fmt.Sprintf("uncle[%d](%x) header invalid: %v", i, hash[:4], err))
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment