go-cyber/x/dmn/types/params.go

package types

import (
	"fmt"
)

const (
	DefaultMaxSlots uint32 = 4
	DefaultMaxGas   uint32 = 2000000
	DefaultFeeTTL   uint32 = 50
)

func DefaultParams() Params {
	return Params{
		DefaultMaxSlots,
		DefaultMaxGas,
		DefaultFeeTTL,
	}
}

func NewParams(
	maxSlots uint32,
	maxGas uint32,
	feeTtl uint32,
) Params {
	return Params{
		maxSlots,
		maxGas,
		feeTtl,
	}
}

func (p Params) Validate() error {
	if err := validateMaxSlots(p.MaxSlots); err != nil {
		return err
	}
	if err := validateMaxGas(p.MaxGas); err != nil {
		return err
	}
	if err := validateFeeTTL(p.FeeTtl); err != nil {
		return err
	}

	return nil
}

func validateMaxSlots(i interface{}) error {
	v, ok := i.(uint32)
	if !ok {
		return fmt.Errorf("invalid parameter type: %T", i)
	}

	if v < 4 {
		return fmt.Errorf("max slots must be equal or more than 4: %d", v)
	}

	return nil
}

func validateMaxGas(i interface{}) error {
	v, ok := i.(uint32)
	if !ok {
		return fmt.Errorf("invalid parameter type: %T", i)
	}

	if v < 2000000 {
		return fmt.Errorf("max gas must be equal or more than 2000000: %d", v)
	}

	return nil
}

func validateFeeTTL(i interface{}) error {
	v, ok := i.(uint32)
	if !ok {
		return fmt.Errorf("invalid parameter type: %T", i)
	}

	if v == 0 {
		return fmt.Errorf("fee ttl must be positive: %d", v)
	}

	return nil
}

Synonyms

space-pussy/x/bandwidth/types/params.go
go-cyber/x/liquidity/types/params.go
go-cyber/x/resources/types/params.go
go-cyber/x/tokenfactory/keeper/params.go
go-cyber/x/grid/types/params.go
space-pussy/x/dmn/types/params.go
space-pussy/x/rank/types/params.go
go-cyber/x/tokenfactory/types/params.go
space-pussy/x/grid/types/params.go
space-pussy/x/resources/types/params.go
go-cyber/x/clock/types/params.go
go-cyber/x/rank/types/params.go
go-cyber/x/bandwidth/types/params.go

Neighbours