github.com/filecoin-project/specs-actors/v4@v4.0.2/actors/builtin/account/testing.go (about) 1 package account 2 3 import ( 4 "github.com/filecoin-project/go-address" 5 6 "github.com/filecoin-project/specs-actors/v4/actors/builtin" 7 ) 8 9 type StateSummary struct { 10 PubKeyAddr address.Address 11 } 12 13 // Checks internal invariants of account state. 14 func CheckStateInvariants(st *State, idAddr address.Address) (*StateSummary, *builtin.MessageAccumulator) { 15 acc := &builtin.MessageAccumulator{} 16 accountSummary := &StateSummary{ 17 PubKeyAddr: st.Address, 18 } 19 20 if id, err := address.IDFromAddress(idAddr); err != nil { 21 acc.Addf("error extracting actor ID from address: %v", err) 22 } else if id >= builtin.FirstNonSingletonActorId { 23 acc.Require(st.Address.Protocol() == address.BLS || st.Address.Protocol() == address.SECP256K1, 24 "actor address %v must be BLS or SECP256K1 protocol", st.Address) 25 } 26 27 return accountSummary, acc 28 }