github.com/filecoin-project/specs-actors/v4@v4.0.2/actors/builtin/cron/testing.go (about)

     1  package cron
     2  
     3  import (
     4  	"github.com/filecoin-project/go-address"
     5  	"github.com/filecoin-project/specs-actors/v4/actors/builtin"
     6  	"github.com/filecoin-project/specs-actors/v4/actors/util/adt"
     7  )
     8  
     9  type StateSummary struct {
    10  	EntryCount int
    11  }
    12  
    13  // Checks internal invariants of cron state.
    14  func CheckStateInvariants(st *State, store adt.Store) (*StateSummary, *builtin.MessageAccumulator) {
    15  	acc := &builtin.MessageAccumulator{}
    16  	cronSummary := &StateSummary{
    17  		EntryCount: len(st.Entries),
    18  	}
    19  	for i, e := range st.Entries {
    20  		acc.Require(e.Receiver.Protocol() == address.ID, "entry %d receiver address %v must be ID protocol", i, e.Receiver)
    21  		acc.Require(e.MethodNum > 0, "entry %d has invalid method number %d", i, e.MethodNum)
    22  	}
    23  	return cronSummary, acc
    24  }