types

package
v0.43.0-rc0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2021 License: Apache-2.0 Imports: 5 Imported by: 7

Documentation

Overview

To prevent namespace collision between consumer modules, we define a type Subspace. A Subspace can only be generated by the keeper, and the keeper checks the existence of the Subspace having the same name before generating the Subspace.

Consumer modules must take a Subspace (via Keeper.Subspace), not the keeper itself. This isolates each modules from the others and make them modify their respective parameters safely. Keeper can be treated as master permission for all Subspaces (via Keeper.GetSubspace), so should be passed to proper modules (ex. x/governance).

Index

Constants

View Source
const (
	// ModuleName defines the module name
	ModuleName = "params"

	// QuerierRoute defines the module's query routing key
	QuerierRoute = ModuleName
)
View Source
const (
	QueryParams = "params"
)

Querier path constants

View Source
const (
	// StoreKey is the string store key for the param store
	StoreKey = "params"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type KeyTable added in v0.43.0

type KeyTable struct {
	// contains filtered or unexported fields
}

KeyTable subspaces appropriate type for each parameter key

func NewKeyTable added in v0.43.0

func NewKeyTable(pairs ...ParamSetPair) KeyTable

func (KeyTable) RegisterParamSet added in v0.43.0

func (t KeyTable) RegisterParamSet(ps ParamSet) KeyTable

RegisterParamSet registers multiple ParamSetPairs from a ParamSet in a KeyTable.

func (KeyTable) RegisterType added in v0.43.0

func (t KeyTable) RegisterType(psp ParamSetPair) KeyTable

RegisterType registers a single ParamSetPair (key-type pair) in a KeyTable.

type ParamSet added in v0.43.0

type ParamSet interface {
	ParamSetPairs() ParamSetPairs
}

ParamSet defines an interface for structs containing parameters for a module

type ParamSetPair added in v0.43.0

type ParamSetPair struct {
	Key         []byte
	Value       interface{}
	ValidatorFn ValueValidatorFn
}

ParamSetPair is used for associating paramsubspace key and field of param structs.

func NewParamSetPair added in v0.43.0

func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair

NewParamSetPair creates a new ParamSetPair instance.

type ParamSetPairs added in v0.43.0

type ParamSetPairs []ParamSetPair

ParamSetPairs Slice of KeyFieldPair

type QuerySubspaceParams added in v0.43.0

type QuerySubspaceParams struct {
	Subspace string
	Key      string
}

QuerySubspaceParams defines the params for querying module params by a given subspace and key.

func NewQuerySubspaceParams added in v0.43.0

func NewQuerySubspaceParams(ss, key string) QuerySubspaceParams

type ReadOnlySubspace added in v0.43.0

type ReadOnlySubspace struct {
	// contains filtered or unexported fields
}

Wrapper of Subspace, provides immutable functions only

func (ReadOnlySubspace) Get added in v0.43.0

func (ros ReadOnlySubspace) Get(ctx sdk.Context, key []byte, ptr interface{})

Get delegates a read-only Get call to the Subspace.

func (ReadOnlySubspace) GetRaw added in v0.43.0

func (ros ReadOnlySubspace) GetRaw(ctx sdk.Context, key []byte) []byte

GetRaw delegates a read-only GetRaw call to the Subspace.

func (ReadOnlySubspace) Has added in v0.43.0

func (ros ReadOnlySubspace) Has(ctx sdk.Context, key []byte) bool

Has delegates a read-only Has call to the Subspace.

func (ReadOnlySubspace) Name added in v0.43.0

func (ros ReadOnlySubspace) Name() string

Name delegates a read-only Name call to the Subspace.

type Subspace added in v0.43.0

type Subspace struct {
	// contains filtered or unexported fields
}

Individual parameter store for each keeper

func NewSubspace added in v0.43.0

func NewSubspace(cdc codec.BinaryMarshaler, legacyAmino *codec.LegacyAmino, key sdk.StoreKey, name string) *Subspace

NewSubspace constructs a store with namestore

func (*Subspace) Get added in v0.43.0

func (s *Subspace) Get(ctx sdk.Context, key []byte, ptr interface{})

Get queries for a parameter by key from the Subspace's KVStore and sets the value to the provided pointer. If the value does not exist, it will panic.

func (*Subspace) GetIfExists added in v0.43.0

func (s *Subspace) GetIfExists(ctx sdk.Context, key []byte, ptr interface{})

GetIfExists queries for a parameter by key from the Subspace's KVStore and sets the value to the provided pointer. If the value does not exist, it will perform a no-op.

func (*Subspace) GetParamSet added in v0.43.0

func (s *Subspace) GetParamSet(ctx sdk.Context, ps ParamSet)

GetParamSet iterates through each ParamSetPair where for each pair, it will retrieve the value and set it to the corresponding value pointer provided in the ParamSetPair by calling Subspace#Get.

func (*Subspace) GetRaw added in v0.43.0

func (s *Subspace) GetRaw(ctx sdk.Context, key []byte) []byte

GetRaw queries for the raw values bytes for a parameter by key.

func (*Subspace) Has added in v0.43.0

func (s *Subspace) Has(ctx sdk.Context, key []byte) bool

Has returns if a parameter key exists or not in the Subspace's KVStore.

func (*Subspace) HasKeyTable added in v0.43.0

func (s *Subspace) HasKeyTable() bool

HasKeyTable returns if the Subspace has a KeyTable registered.

func (*Subspace) Name added in v0.43.0

func (s *Subspace) Name() string

Name returns the name of the Subspace.

func (*Subspace) Set added in v0.43.0

func (s *Subspace) Set(ctx sdk.Context, key []byte, value interface{})

Set stores a value for given a parameter key assuming the parameter type has been registered. It will panic if the parameter type has not been registered or if the value cannot be encoded. A change record is also set in the Subspace's transient KVStore to mark the parameter as modified.

func (*Subspace) SetParamSet added in v0.43.0

func (s *Subspace) SetParamSet(ctx sdk.Context, ps ParamSet)

SetParamSet iterates through each ParamSetPair and sets the value with the corresponding parameter key in the Subspace's KVStore.

func (*Subspace) Update added in v0.43.0

func (s *Subspace) Update(ctx sdk.Context, key, value []byte) error

Update stores an updated raw value for a given parameter key assuming the parameter type has been registered. It will panic if the parameter type has not been registered or if the value cannot be encoded. An error is returned if the raw value is not compatible with the registered type for the parameter key or if the new value is invalid as determined by the registered type's validation function.

func (*Subspace) Validate added in v0.43.0

func (s *Subspace) Validate(ctx sdk.Context, key []byte, value interface{}) error

Validate attempts to validate a parameter value by its key. If the key is not registered or if the validation of the value fails, an error is returned.

func (*Subspace) WithKeyTable added in v0.43.0

func (s *Subspace) WithKeyTable(table KeyTable) *Subspace

WithKeyTable initializes KeyTable and returns modified Subspace

type SubspaceParamsResponse added in v0.43.0

type SubspaceParamsResponse struct {
	Subspace string
	Key      string
	Value    string
}

SubspaceParamsResponse defines the response for quering parameters by subspace.

func NewSubspaceParamsResponse added in v0.43.0

func NewSubspaceParamsResponse(ss, key, value string) SubspaceParamsResponse

type ValueValidatorFn added in v0.43.0

type ValueValidatorFn func(value interface{}) error

Directories

Path Synopsis
Package proposal is a reverse proxy.
Package proposal is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL