github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/evidence/internal/types/genesis.go (about) 1 package types 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/fibonacci-chain/fbc/x/evidence/exported" 8 ) 9 10 // DONTCOVER 11 12 // GenesisState defines the evidence module's genesis state. 13 type GenesisState struct { 14 Params Params `json:"params" yaml:"params"` 15 Evidence []exported.Evidence `json:"evidence" yaml:"evidence"` 16 } 17 18 func NewGenesisState(p Params, e []exported.Evidence) GenesisState { 19 return GenesisState{ 20 Params: p, 21 Evidence: e, 22 } 23 } 24 25 // DefaultGenesisState returns the evidence module's default genesis state. 26 func DefaultGenesisState() GenesisState { 27 return GenesisState{ 28 Params: DefaultParams(), 29 Evidence: []exported.Evidence{}, 30 } 31 } 32 33 // Validate performs basic gensis state validation returning an error upon any 34 // failure. 35 func (gs GenesisState) Validate() error { 36 for _, e := range gs.Evidence { 37 if err := e.ValidateBasic(); err != nil { 38 return err 39 } 40 } 41 42 maxEvidence := gs.Params.MaxEvidenceAge 43 if maxEvidence < 1*time.Minute { 44 return fmt.Errorf("max evidence age must be at least 1 minute, is %s", maxEvidence.String()) 45 } 46 47 return nil 48 }