github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/eventcheck/all.go (about)

     1  package eventcheck
     2  
     3  import (
     4  	"github.com/unicornultrafoundation/go-u2u/eventcheck/basiccheck"
     5  	"github.com/unicornultrafoundation/go-u2u/eventcheck/epochcheck"
     6  	"github.com/unicornultrafoundation/go-u2u/eventcheck/gaspowercheck"
     7  	"github.com/unicornultrafoundation/go-u2u/eventcheck/heavycheck"
     8  	"github.com/unicornultrafoundation/go-u2u/eventcheck/parentscheck"
     9  	"github.com/unicornultrafoundation/go-u2u/native"
    10  )
    11  
    12  // Checkers is collection of all the checkers
    13  type Checkers struct {
    14  	Basiccheck    *basiccheck.Checker
    15  	Epochcheck    *epochcheck.Checker
    16  	Parentscheck  *parentscheck.Checker
    17  	Gaspowercheck *gaspowercheck.Checker
    18  	Heavycheck    *heavycheck.Checker
    19  }
    20  
    21  // Validate runs all the checks except Poset-related
    22  func (v *Checkers) Validate(e native.EventPayloadI, parents native.EventIs) error {
    23  	if err := v.Basiccheck.Validate(e); err != nil {
    24  		return err
    25  	}
    26  	if err := v.Epochcheck.Validate(e); err != nil {
    27  		return err
    28  	}
    29  	if err := v.Parentscheck.Validate(e, parents); err != nil {
    30  		return err
    31  	}
    32  	var selfParent native.EventI
    33  	if e.SelfParent() != nil {
    34  		selfParent = parents[0]
    35  	}
    36  	if err := v.Gaspowercheck.Validate(e, selfParent); err != nil {
    37  		return err
    38  	}
    39  	if err := v.Heavycheck.ValidateEvent(e); err != nil {
    40  		return err
    41  	}
    42  	return nil
    43  }