diff --git a/module/mempool/consensus/exec_fork_suppressor.go b/module/mempool/consensus/exec_fork_suppressor.go index 209b0337c3a..d827d319532 100644 --- a/module/mempool/consensus/exec_fork_suppressor.go +++ b/module/mempool/consensus/exec_fork_suppressor.go @@ -99,6 +99,15 @@ func NewExecStateForkSuppressor( // - engine.InvalidInputError (sentinel error) // In case a seal fails one of the required consistency checks; func (s *ExecForkSuppressor) Add(newSeal *flow.IncorporatedResultSeal) (bool, error) { + // EMERGENCY FIX + blackListedResult, err := flow.HexStringToIdentifier("3a38bfac7ad80fac023649735344e527a4cf7d499929ad17057cce7166b358ea") + if err != nil { + panic("should never happen: failed to parse hardcoded execution result ID") + } + if newSeal.Seal.ResultID == blackListedResult { + log.Warn().Msg("dropped Seal for black-listed result") + } + s.mutex.Lock() defer s.mutex.Unlock() @@ -115,7 +124,7 @@ func (s *ExecForkSuppressor) Add(newSeal *flow.IncorporatedResultSeal) (bool, er // This wrapper is a temporary safety layer; we check all conditions that are // required for its correct functioning locally, to not delegate safety-critical // implementation aspects to external components - err := s.enforceValidChunks(newSeal) + err = s.enforceValidChunks(newSeal) if err != nil { return false, fmt.Errorf("invalid candidate seal: %w", err) }