Fantom-foundation/go-lachesis

View on GitHub
eventcheck/all.go

Summary

Maintainability
A
40 mins
Test Coverage
package eventcheck

import (
    "github.com/Fantom-foundation/go-lachesis/eventcheck/basiccheck"
    "github.com/Fantom-foundation/go-lachesis/eventcheck/epochcheck"
    "github.com/Fantom-foundation/go-lachesis/eventcheck/gaspowercheck"
    "github.com/Fantom-foundation/go-lachesis/eventcheck/heavycheck"
    "github.com/Fantom-foundation/go-lachesis/eventcheck/parentscheck"
    "github.com/Fantom-foundation/go-lachesis/inter"
)

// Checkers is collection of all the checkers
type Checkers struct {
    Basiccheck    *basiccheck.Checker
    Epochcheck    *epochcheck.Checker
    Parentscheck  *parentscheck.Checker
    Gaspowercheck *gaspowercheck.Checker
    Heavycheck    *heavycheck.Checker
}

// Validate runs all the checks except Poset-related
func (v *Checkers) Validate(e *inter.Event, parents []*inter.EventHeaderData) error {
    if err := v.Basiccheck.Validate(e); err != nil {
        return err
    }
    if err := v.Epochcheck.Validate(e); err != nil {
        return err
    }
    if err := v.Parentscheck.Validate(e, parents); err != nil {
        return err
    }
    var selfParent *inter.EventHeaderData
    if e.SelfParent() != nil {
        selfParent = parents[0]
    }
    if err := v.Gaspowercheck.Validate(e, selfParent); err != nil {
        return err
    }
    if err := v.Heavycheck.Validate(e); err != nil {
        return err
    }
    return nil
}