types

package
v0.46.2 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

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 (
	// StoreKey is the string store key for the param store
	StoreKey = "params"

	// TStoreKey is the string store key for the param transient store
	TStoreKey = "transient_params"
)
View Source
const (
	QueryParams = "params"
)

Querier path constants

Variables

This section is empty.

Functions

This section is empty.

Types

type KeyTable

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

KeyTable subspaces appropriate type for each parameter key

func ConsensusParamsKeyTable

func ConsensusParamsKeyTable() KeyTable

ConsensusParamsKeyTable returns an x/params module keyTable to be used in the BaseApp's ParamStore. The KeyTable registers the types along with the standard validation functions. Applications can choose to adopt this KeyTable or provider their own when the existing validation functions do not suite their needs.

func NewKeyTable

func NewKeyTable(pairs ...ParamSetPair) KeyTable

func (KeyTable) RegisterParamSet

func (t KeyTable) RegisterParamSet(ps ParamSet) KeyTable

RegisterParamSet registers multiple ParamSetPairs from a ParamSet in a KeyTable.

func (KeyTable) RegisterType

func (t KeyTable) RegisterType(psp ParamSetPair) KeyTable

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

type ParamSet

type ParamSet interface {
	ParamSetPairs() ParamSetPairs
}

ParamSet defines an interface for structs containing parameters for a module

type ParamSetPair

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

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

func NewParamSetPair

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

NewParamSetPair creates a new ParamSetPair instance.

type ParamSetPairs

type ParamSetPairs []ParamSetPair

ParamSetPairs Slice of KeyFieldPair

type QuerySubspaceParams

type QuerySubspaceParams struct {
	Subspace string
	Key      string
}

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

func NewQuerySubspaceParams

func NewQuerySubspaceParams(ss, key string) QuerySubspaceParams

type ReadOnlySubspace

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

Wrapper of Subspace, provides immutable functions only

func (ReadOnlySubspace) Get

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

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

func (ReadOnlySubspace) GetRaw

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

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

func (ReadOnlySubspace) Has

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

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

func (ReadOnlySubspace) Modified

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

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

func (ReadOnlySubspace) Name

func (ros ReadOnlySubspace) Name() string

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

type Subspace

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

Individual parameter store for each keeper Transient store persists for a block, so we use it for recording whether the parameter has been changed or not

func NewSubspace

func NewSubspace(cdc codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key storetypes.StoreKey, tkey storetypes.StoreKey, name string) Subspace

NewSubspace constructs a store with namestore

func (Subspace) Get

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

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

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

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

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

func (s Subspace) HasKeyTable() bool

HasKeyTable returns if the Subspace has a KeyTable registered.

func (Subspace) IterateKeys

func (s Subspace) IterateKeys(ctx sdk.Context, cb func(key []byte) bool)

IterateKeys iterates over all the keys in the subspace and executes the provided callback. If the callback returns true for a given key, iteration will halt.

func (Subspace) Modified

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

Modified returns true if the parameter key is set in the Subspace's transient KVStore.

func (Subspace) Name

func (s Subspace) Name() string

Name returns the name of the Subspace.

func (Subspace) Set

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

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

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

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

func (s Subspace) WithKeyTable(table KeyTable) Subspace

WithKeyTable initializes KeyTable and returns modified Subspace

type SubspaceParamsResponse

type SubspaceParamsResponse struct {
	Subspace string
	Key      string
	Value    string
}

SubspaceParamsResponse defines the response for quering parameters by subspace.

func NewSubspaceParamsResponse

func NewSubspaceParamsResponse(ss, key, value string) SubspaceParamsResponse

type ValueValidatorFn

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