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  }