@@ -10,12 +10,17 @@ import (
1010
1111// Default parameter values for the Params struct.
1212var (
13- DefaultStakingShare = sdkmath .LegacyMustNewDecFromStr ("0.1" ) // Default staking share: 0.1
14- DefaultStatusTimeout = 2 * time .Minute // Default timeout for status change
13+ DefaultMaxAllocations int64 = 8 // Default max allocations per subscription
14+ DefaultStakingShare = sdkmath .LegacyMustNewDecFromStr ("0.1" ) // Default staking share: 0.1
15+ DefaultStatusTimeout = 2 * time .Minute // Default timeout for status change
1516)
1617
1718// Validate checks whether the Params fields are valid according to defined rules.
1819func (m * Params ) Validate () error {
20+ if err := validateMaxAllocations (m .MaxAllocations ); err != nil {
21+ return fmt .Errorf ("invalid max_allocations: %w" , err )
22+ }
23+
1924 if err := validateStakingShare (m .StakingShare ); err != nil {
2025 return fmt .Errorf ("invalid staking_share: %w" , err )
2126 }
@@ -28,21 +33,36 @@ func (m *Params) Validate() error {
2833}
2934
3035// NewParams creates a new Params instance with custom values.
31- func NewParams (stakingShare sdkmath.LegacyDec , statusTimeout time.Duration ) Params {
36+ func NewParams (maxAllocations int64 , stakingShare sdkmath.LegacyDec , statusTimeout time.Duration ) Params {
3237 return Params {
33- StakingShare : stakingShare ,
34- StatusTimeout : statusTimeout ,
38+ MaxAllocations : maxAllocations ,
39+ StakingShare : stakingShare ,
40+ StatusTimeout : statusTimeout ,
3541 }
3642}
3743
3844// DefaultParams returns a Params struct initialized with default values.
3945func DefaultParams () Params {
4046 return NewParams (
47+ DefaultMaxAllocations ,
4148 DefaultStakingShare ,
4249 DefaultStatusTimeout ,
4350 )
4451}
4552
53+ // validateMaxAllocations checks that maxAllocations is positive.
54+ func validateMaxAllocations (v int64 ) error {
55+ if v == 0 {
56+ return errors .New ("value cannot be zero" )
57+ }
58+
59+ if v < 0 {
60+ return errors .New ("value cannot be negative" )
61+ }
62+
63+ return nil
64+ }
65+
4666// validateStakingShare ensures that the staking share is:
4767// - Not nil
4868// - Not negative
0 commit comments