|
|
@ -29,6 +29,7 @@ import ( |
|
|
|
"github.com/ethereum/go-ethereum/common" |
|
|
|
"github.com/ethereum/go-ethereum/common" |
|
|
|
"github.com/ethereum/go-ethereum/common/hexutil" |
|
|
|
"github.com/ethereum/go-ethereum/common/hexutil" |
|
|
|
"github.com/ethereum/go-ethereum/consensus" |
|
|
|
"github.com/ethereum/go-ethereum/consensus" |
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/consensus/misc" |
|
|
|
"github.com/ethereum/go-ethereum/core/state" |
|
|
|
"github.com/ethereum/go-ethereum/core/state" |
|
|
|
"github.com/ethereum/go-ethereum/core/types" |
|
|
|
"github.com/ethereum/go-ethereum/core/types" |
|
|
|
"github.com/ethereum/go-ethereum/crypto" |
|
|
|
"github.com/ethereum/go-ethereum/crypto" |
|
|
@ -313,6 +314,10 @@ func (c *Clique) verifyHeader(chain consensus.ChainReader, header *types.Header, |
|
|
|
return errInvalidDifficulty |
|
|
|
return errInvalidDifficulty |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// If all checks passed, validate any special fields for hard forks
|
|
|
|
|
|
|
|
if err := misc.VerifyForkHashes(chain.Config(), header, false); err != nil { |
|
|
|
|
|
|
|
return err |
|
|
|
|
|
|
|
} |
|
|
|
// All basic checks passed, verify cascading fields
|
|
|
|
// All basic checks passed, verify cascading fields
|
|
|
|
return c.verifyCascadingFields(chain, header, parents) |
|
|
|
return c.verifyCascadingFields(chain, header, parents) |
|
|
|
} |
|
|
|
} |
|
|
|