aboutsummaryrefslogtreecommitdiffstats
path: root/core/block_validator.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/block_validator.go')
-rw-r--r--core/block_validator.go12
1 files changed, 3 insertions, 9 deletions
diff --git a/core/block_validator.go b/core/block_validator.go
index 4f85df007..e9cfd0482 100644
--- a/core/block_validator.go
+++ b/core/block_validator.go
@@ -52,16 +52,10 @@ func NewBlockValidator(config *params.ChainConfig, blockchain *BlockChain, engin
// validated at this point.
func (v *BlockValidator) ValidateBody(block *types.Block) error {
// Check whether the block's known, and if not, that it's linkable
- if v.bc.HasBlock(block.Hash()) {
- if _, err := state.New(block.Root(), v.bc.chainDb); err == nil {
- return ErrKnownBlock
- }
+ if v.bc.HasBlockAndState(block.Hash()) {
+ return ErrKnownBlock
}
- parent := v.bc.GetBlock(block.ParentHash(), block.NumberU64()-1)
- if parent == nil {
- return consensus.ErrUnknownAncestor
- }
- if _, err := state.New(parent.Root(), v.bc.chainDb); err != nil {
+ if !v.bc.HasBlockAndState(block.ParentHash()) {
return consensus.ErrUnknownAncestor
}
// Header validity is known at this point, check the uncles and transactions