diff --git a/consensus/XDPoS/XDPoS.go b/consensus/XDPoS/XDPoS.go index 26cadc3555..7a213f5b65 100644 --- a/consensus/XDPoS/XDPoS.go +++ b/consensus/XDPoS/XDPoS.go @@ -451,6 +451,9 @@ func (x *XDPoS) GetSnapshot(chain consensus.ChainReader, header *types.Header) ( switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { case params.ConsensusEngineVersion2: sp, err := x.EngineV2.GetSnapshot(chain, header) + if err != nil { + return nil, err + } return &utils.PublicApiSnapshot{ Number: sp.Number, Hash: sp.Hash, @@ -458,6 +461,9 @@ func (x *XDPoS) GetSnapshot(chain consensus.ChainReader, header *types.Header) ( }, err default: // Default "v1" sp, err := x.EngineV1.GetSnapshot(chain, header) + if err != nil { + return nil, err + } // Convert to a standard PublicApiSnapshot type, otherwise it's a breaking change to API return &utils.PublicApiSnapshot{ Number: sp.Number, diff --git a/consensus/XDPoS/engines/engine_v2/utils.go b/consensus/XDPoS/engines/engine_v2/utils.go index e54b2b59b0..b15e2917ee 100644 --- a/consensus/XDPoS/engines/engine_v2/utils.go +++ b/consensus/XDPoS/engines/engine_v2/utils.go @@ -161,6 +161,9 @@ func (x *XDPoS_v2) GetRoundNumber(header *types.Header) (types.Round, error) { func (x *XDPoS_v2) GetSignersFromSnapshot(chain consensus.ChainReader, header *types.Header) ([]common.Address, error) { snap, err := x.getSnapshot(chain, header.Number.Uint64(), false) + if err != nil { + return nil, err + } return snap.NextEpochMasterNodes, err }