github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/evidence/internal/types/params.go (about) 1 package types 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/fibonacci-chain/fbc/x/params" 8 9 "gopkg.in/yaml.v2" 10 ) 11 12 // DONTCOVER 13 14 // Default parameter values 15 const ( 16 DefaultParamspace = ModuleName 17 DefaultMaxEvidenceAge = 60 * 2 * time.Second 18 ) 19 20 // Parameter store keys 21 var ( 22 KeyMaxEvidenceAge = []byte("MaxEvidenceAge") 23 24 // The Double Sign Jail period ends at Max Time supported by Amino 25 // (Dec 31, 9999 - 23:59:59 GMT). 26 DoubleSignJailEndTime = time.Unix(253402300799, 0) 27 ) 28 29 // Params defines the total set of parameters for the evidence module 30 type Params struct { 31 MaxEvidenceAge time.Duration `json:"max_evidence_age" yaml:"max_evidence_age"` 32 } 33 34 // ParamKeyTable returns the parameter key table. 35 func ParamKeyTable() params.KeyTable { 36 return params.NewKeyTable().RegisterParamSet(&Params{}) 37 } 38 39 func (p Params) String() string { 40 out, _ := yaml.Marshal(p) 41 return string(out) 42 } 43 44 // ParamSetPairs returns the parameter set pairs. 45 func (p *Params) ParamSetPairs() params.ParamSetPairs { 46 return params.ParamSetPairs{ 47 params.NewParamSetPair(KeyMaxEvidenceAge, &p.MaxEvidenceAge, validateMaxEvidenceAge), 48 } 49 } 50 51 // DefaultParams returns the default parameters for the evidence module. 52 func DefaultParams() Params { 53 return Params{ 54 MaxEvidenceAge: DefaultMaxEvidenceAge, 55 } 56 } 57 58 func validateMaxEvidenceAge(i interface{}) error { 59 v, ok := i.(time.Duration) 60 if !ok { 61 return fmt.Errorf("invalid parameter type: %T", i) 62 } 63 64 if v <= 0 { 65 return fmt.Errorf("max evidence age must be positive: %s", v) 66 } 67 68 return nil 69 }