core: further improved uncle error messages

This commit is contained in:
obscuren 2015-05-16 12:33:55 +02:00
parent c2ef8682fe
commit d98a6f85fc

@ -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))
} }
} }