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
- type KeyTable
- type ParamSet
- type ParamSetPair
- type ParamSetPairs
- type QuerySubspaceParams
- type ReadOnlySubspace
- type Subspace
- func (s *Subspace) Get(ctx sdk.Context, key []byte, ptr interface{})
- func (s *Subspace) GetIfExists(ctx sdk.Context, key []byte, ptr interface{})
- func (s *Subspace) GetParamSet(ctx sdk.Context, ps ParamSet)
- func (s *Subspace) GetRaw(ctx sdk.Context, key []byte) []byte
- func (s *Subspace) Has(ctx sdk.Context, key []byte) bool
- func (s *Subspace) HasKeyTable() bool
- func (s *Subspace) Name() string
- func (s *Subspace) Set(ctx sdk.Context, key []byte, value interface{})
- func (s *Subspace) SetParamSet(ctx sdk.Context, ps ParamSet)
- func (s *Subspace) Update(ctx sdk.Context, key, value []byte) error
- func (s *Subspace) Validate(ctx sdk.Context, key []byte, value interface{}) error
- func (s *Subspace) WithKeyTable(table KeyTable) *Subspace
- type SubspaceParamsResponse
- type ValueValidatorFn
Constants ¶
const ( // ModuleName defines the module name ModuleName = "params" // QuerierRoute defines the module's query routing key QuerierRoute = ModuleName )
const (
QueryParams = "params"
)
Querier path constants
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
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
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
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
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
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
GetRaw queries for the raw values bytes for a parameter by key.
func (*Subspace) Has ¶ added in v0.43.0
Has returns if a parameter key exists or not in the Subspace's KVStore.
func (*Subspace) HasKeyTable ¶ added in v0.43.0
HasKeyTable returns if the Subspace has a KeyTable registered.
func (*Subspace) Set ¶ added in v0.43.0
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
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
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
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
WithKeyTable initializes KeyTable and returns modified Subspace
type SubspaceParamsResponse ¶ added in v0.43.0
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