@@ -79,7 +79,10 @@ func (beacon *Beacon) Author(header *types.Header) (common.Address, error) {
7979// VerifyHeader checks whether a header conforms to the consensus rules of the 
8080// stock Ethereum consensus engine. 
8181func  (beacon  * Beacon ) VerifyHeader (chain  consensus.ChainHeaderReader , header  * types.Header , seal  bool ) error  {
82- 	reached , _  :=  IsTTDReached (chain , header .ParentHash , header .Number .Uint64 ()- 1 )
82+ 	reached , err  :=  IsTTDReached (chain , header .ParentHash , header .Number .Uint64 ()- 1 )
83+ 	if  err  !=  nil  {
84+ 		return  err 
85+ 	}
8386	if  ! reached  {
8487		return  beacon .ethone .VerifyHeader (chain , header , seal )
8588	}
@@ -116,11 +119,14 @@ func (beacon *Beacon) VerifyHeaders(chain consensus.ChainHeaderReader, headers [
116119
117120	if  len (preHeaders ) ==  0  {
118121		// All the headers are pos headers. Verify that the parent block reached total terminal difficulty. 
119- 		if  reached , _  :=  IsTTDReached (chain , headers [0 ].ParentHash , headers [0 ].Number .Uint64 ()- 1 ); ! reached  {
122+ 		if  reached , err  :=  IsTTDReached (chain , headers [0 ].ParentHash , headers [0 ].Number .Uint64 ()- 1 ); ! reached  {
120123			// TTD not reached for the first block, mark subsequent with invalid terminal block 
124+ 			if  err  ==  nil  {
125+ 				err  =  consensus .ErrInvalidTerminalBlock 
126+ 			}
121127			results  :=  make (chan  error , len (headers ))
122128			for  i  :=  0 ; i  <  len (headers ); i ++  {
123- 				results  <-  consensus . ErrInvalidTerminalBlock 
129+ 				results  <-  err 
124130			}
125131			return  make (chan  struct {}), results 
126132		}
0 commit comments