Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package params provides a namespaced module parameter store.
There are two core components, Keeper and Subspace. Subspace is an isolated namespace for a parameter store, where keys are prefixed by pre-configured subspace names which modules provide. The Keeper has a permission to access all existing subspaces.
Subspace can be used by the individual keepers, which need a private parameter store that the other keepers cannot modify.
Basic Usage:
1. Declare constant module parameter keys and the globally unique Subspace name:
const ( ModuleSubspace = "mymodule" ) const ( KeyParameter1 = "myparameter1" KeyParameter2 = "myparameter2" )
2. Define parameters as proto message and define the validation functions:
message MyParams {
	int64 my_param1 = 1;
	bool my_param2 = 2;
}
func validateMyParam1(i interface{}) error {
	_, ok := i.(int64)
	if !ok {
		return fmt.Errorf("invalid parameter type: %T", i)
	}
	// validate (if necessary)...
	return nil
}
func validateMyParam2(i interface{}) error {
	_, ok := i.(bool)
	if !ok {
		return fmt.Errorf("invalid parameter type: %T", i)
	}
	// validate (if necessary)...
	return nil
}
3. Implement the params.ParamSet interface:
func (p *MyParams) ParamSetPairs() params.ParamSetPairs {
	return params.ParamSetPairs{
		params.NewParamSetPair(KeyParameter1, &p.MyParam1, validateMyParam1),
		params.NewParamSetPair(KeyParameter2, &p.MyParam2, validateMyParam2),
	}
}
func ParamKeyTable() params.KeyTable {
	return params.NewKeyTable().RegisterParamSet(&MyParams{})
}
4. Have the module accept a Subspace in the constructor and set the KeyTable (if necessary):
func NewKeeper(..., paramSpace params.Subspace, ...) Keeper {
	// set KeyTable if it has not already been set
	if !paramSpace.HasKeyTable() {
		paramSpace = paramSpace.WithKeyTable(ParamKeyTable())
	}
	return Keeper {
		// ...
		paramSpace: paramSpace,
	}
}
Now we have access to the module's parameters that are namespaced using the keys defined:
func InitGenesis(ctx sdk.Context, k Keeper, gs GenesisState) {
	// ...
	k.SetParams(ctx, gs.Params)
}
func (k Keeper) SetParams(ctx sdk.Context, params Params) {
	k.paramSpace.SetParamSet(ctx, ¶ms)
}
func (k Keeper) GetParams(ctx sdk.Context) (params Params) {
	k.paramSpace.GetParamSet(ctx, ¶ms)
	return params
}
func (k Keeper) MyParam1(ctx sdk.Context) (res int64) {
	k.paramSpace.Get(ctx, KeyParameter1, &res)
	return res
}
func (k Keeper) MyParam2(ctx sdk.Context) (res bool) {
	k.paramSpace.Get(ctx, KeyParameter2, &res)
	return res
}
NOTE: Any call to SetParamSet will panic or any call to Update will error if any given parameter value is invalid based on the registered value validation function.
Index ¶
- func NewParamChangeProposalHandler(k keeper.Keeper) govtypes.Handler
 - type AppModule
 - func (AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock)
 - func (AppModule) ConsensusVersion() uint64
 - func (AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate
 - func (am AppModule) ExportGenesis(_ sdk.Context, _ codec.JSONCodec) json.RawMessage
 - func (AppModule) GenerateGenesisState(simState *module.SimulationState)
 - func (am AppModule) InitGenesis(_ sdk.Context, _ codec.JSONCodec, _ json.RawMessage) []abci.ValidatorUpdate
 - func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier
 - func (am AppModule) ProposalContents(simState module.SimulationState) []simtypes.WeightedProposalContent
 - func (AppModule) QuerierRoute() string
 - func (AppModule) RandomizedParams(r *rand.Rand) []simtypes.ParamChange
 - func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry)
 - func (am AppModule) RegisterServices(cfg module.Configurator)
 - func (AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry)
 - func (AppModule) Route() sdk.Route
 - func (am AppModule) WeightedOperations(_ module.SimulationState) []simtypes.WeightedOperation
 
- type AppModuleBasic
 - func (AppModuleBasic) DefaultGenesis(_ codec.JSONCodec) json.RawMessage
 - func (AppModuleBasic) GetQueryCmd() *cobra.Command
 - func (AppModuleBasic) GetTxCmd() *cobra.Command
 - func (AppModuleBasic) Name() string
 - func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux)
 - func (am AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry)
 - func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino)
 - func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Router)
 - func (AppModuleBasic) ValidateGenesis(_ codec.JSONCodec, config client.TxEncodingConfig, _ json.RawMessage) error
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AppModule ¶ added in v0.43.1
type AppModule struct {
	AppModuleBasic
	// contains filtered or unexported fields
}
    AppModule implements an application module for the distribution module.
func NewAppModule ¶ added in v0.43.1
NewAppModule creates a new AppModule object
func (AppModule) BeginBlock ¶ added in v0.43.1
func (AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock)
BeginBlock performs a no-op.
func (AppModule) ConsensusVersion ¶ added in v0.43.1
ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) EndBlock ¶ added in v0.43.1
func (AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate
EndBlock performs a no-op.
func (AppModule) ExportGenesis ¶ added in v0.43.1
ExportGenesis performs a no-op.
func (AppModule) GenerateGenesisState ¶ added in v0.43.1
func (AppModule) GenerateGenesisState(simState *module.SimulationState)
GenerateGenesisState performs a no-op.
func (AppModule) InitGenesis ¶ added in v0.43.1
func (am AppModule) InitGenesis(_ sdk.Context, _ codec.JSONCodec, _ json.RawMessage) []abci.ValidatorUpdate
InitGenesis performs a no-op.
func (AppModule) LegacyQuerierHandler ¶ added in v0.43.1
func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier
LegacyQuerierHandler returns the x/params querier handler.
func (AppModule) ProposalContents ¶ added in v0.43.1
func (am AppModule) ProposalContents(simState module.SimulationState) []simtypes.WeightedProposalContent
ProposalContents returns all the params content functions used to simulate governance proposals.
func (AppModule) QuerierRoute ¶ added in v0.43.1
QuerierRoute returns the x/param module's querier route name.
func (AppModule) RandomizedParams ¶ added in v0.43.1
func (AppModule) RandomizedParams(r *rand.Rand) []simtypes.ParamChange
RandomizedParams creates randomized distribution param changes for the simulator.
func (AppModule) RegisterInvariants ¶ added in v0.43.1
func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry)
func (AppModule) RegisterServices ¶ added in v0.43.1
func (am AppModule) RegisterServices(cfg module.Configurator)
RegisterServices registers a gRPC query service to respond to the module-specific gRPC queries.
func (AppModule) RegisterStoreDecoder ¶ added in v0.43.1
func (AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry)
RegisterStoreDecoder doesn't register any type.
func (AppModule) WeightedOperations ¶ added in v0.43.1
func (am AppModule) WeightedOperations(_ module.SimulationState) []simtypes.WeightedOperation
WeightedOperations returns the all the gov module operations with their respective weights.
type AppModuleBasic ¶ added in v0.43.1
type AppModuleBasic struct{}
    AppModuleBasic defines the basic application module used by the params module.
func (AppModuleBasic) DefaultGenesis ¶ added in v0.43.1
func (AppModuleBasic) DefaultGenesis(_ codec.JSONCodec) json.RawMessage
DefaultGenesis returns default genesis state as raw bytes for the params module.
func (AppModuleBasic) GetQueryCmd ¶ added in v0.43.1
func (AppModuleBasic) GetQueryCmd() *cobra.Command
GetQueryCmd returns no root query command for the params module.
func (AppModuleBasic) GetTxCmd ¶ added in v0.43.1
func (AppModuleBasic) GetTxCmd() *cobra.Command
GetTxCmd returns no root tx command for the params module.
func (AppModuleBasic) Name ¶ added in v0.43.1
func (AppModuleBasic) Name() string
Name returns the params module's name.
func (AppModuleBasic) RegisterGRPCGatewayRoutes ¶ added in v0.43.1
func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux)
RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the params module.
func (AppModuleBasic) RegisterInterfaces ¶ added in v0.43.1
func (am AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry)
func (AppModuleBasic) RegisterLegacyAminoCodec ¶ added in v0.43.1
func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino)
RegisterLegacyAminoCodec registers the params module's types on the given LegacyAmino codec.
func (AppModuleBasic) RegisterRESTRoutes ¶ added in v0.43.1
func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Router)
RegisterRESTRoutes registers the REST routes for the params module.
func (AppModuleBasic) ValidateGenesis ¶ added in v0.43.1
func (AppModuleBasic) ValidateGenesis(_ codec.JSONCodec, config client.TxEncodingConfig, _ json.RawMessage) error
ValidateGenesis performs genesis state validation for the params module.
      
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| 
       legacy
        | 
      |
| 
         
          
            v036
            
            
          
           
      Package v036 is used for legacy migration scripts. 
         | 
      Package v036 is used for legacy migration scripts. | 
| 
       To prevent namespace collision between consumer modules, we define a type Subspace. 
         | 
      To prevent namespace collision between consumer modules, we define a type Subspace. | 
| 
         
          
            proposal
            
            
          
           
      Package proposal is a reverse proxy. 
         | 
      Package proposal is a reverse proxy. |