Documentation ¶
Overview ¶
Package genutil contains a variety of genesis utility functionality for usage within a blockchain application. Namely:
- Genesis transactions related (gentx)
- Commands for collection and creation of gentxs
- `InitChain` processing of gentxs
- Genesis file validation
- Genesis file migration
- CometBFT related initialization (Translation of an app genesis to a CometBFT genesis)
Index ¶
- func AddGenesisAccount(cdc codec.Codec, addressCodec address.Codec, accAddr sdk.AccAddress, ...) error
- func CollectTxs(txJSONDecoder sdk.TxDecoder, moniker, genTxsDir string, ...) (appGenTxs []sdk.Tx, persistentPeers string, err error)
- func DeliverGenTxs(ctx context.Context, genTxs []json.RawMessage, ...) ([]module.ValidatorUpdate, error)
- func ExportGenesisFile(genesis *types.AppGenesis, genFile string) error
- func ExportGenesisFileWithTime(genFile, chainID string, validators []cmttypes.GenesisValidator, ...) error
- func GenAppStateFromConfig(cdc codec.JSONCodec, txEncodingConfig client.TxEncodingConfig, ...) (appState json.RawMessage, err error)
- func InitGenesis(ctx context.Context, stakingKeeper types.StakingKeeper, deliverTx TxHandler, ...) (validatorUpdates []module.ValidatorUpdate, err error)
- func InitializeNodeValidatorFiles(config *cfg.Config, keyType string) (nodeID string, valPubKey cryptotypes.PubKey, err error)
- func InitializeNodeValidatorFilesFromMnemonic(config *cfg.Config, mnemonic, keyType string) (nodeID string, valPubKey cryptotypes.PubKey, err error)
- func NewAppModule(cdc codec.Codec, accountKeeper types.AccountKeeper, ...) module.AppModule
- func ProvideModule(in ModuleInputs) appmodule.AppModule
- func SetGenTxsInAppGenesisState(cdc codec.JSONCodec, txJSONEncoder sdk.TxEncoder, ...) (map[string]json.RawMessage, error)
- func ValidateAccountInGenesis(appGenesisState map[string]json.RawMessage, ...) error
- type AppModule
- func (AppModule) ConsensusVersion() uint64
- func (am AppModule) DecodeGenesisJSON(data json.RawMessage) ([]json.RawMessage, error)
- func (am AppModule) DefaultGenesis() json.RawMessage
- func (am AppModule) ExportGenesis(context.Context) (json.RawMessage, error)
- func (am AppModule) GenTxValidator() types.MessageValidator
- func (am AppModule) InitGenesis(ctx context.Context, data json.RawMessage) ([]module.ValidatorUpdate, error)
- func (AppModule) IsAppModule()
- func (am AppModule) IsOnePerModuleType()
- func (AppModule) Name() string
- func (am AppModule) ValidateGenesis(bz json.RawMessage) error
- type ModuleInputs
- type TxHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddGenesisAccount ¶ added in v0.50.0
func AddGenesisAccount( cdc codec.Codec, addressCodec address.Codec, accAddr sdk.AccAddress, appendAcct bool, genesisFileURL, amountStr, vestingAmtStr string, vestingStart, vestingEnd int64, moduleName string, ) error
AddGenesisAccount adds a genesis account to the genesis state. Where `cdc` is client codec, `genesisFileUrl` is the path/url of current genesis file, `accAddr` is the address to be added to the genesis state, `amountStr` is the list of initial coins to be added for the account, `appendAcct` updates the account if already exists. `vestingStart, vestingEnd and vestingAmtStr` respectively are the schedule start time, end time (unix epoch) `moduleName` is the module name for which the account is being created and coins to be appended to the account already in the genesis.json file.
func CollectTxs ¶ added in v0.40.0
func CollectTxs(txJSONDecoder sdk.TxDecoder, moniker, genTxsDir string, genesis *types.AppGenesis, validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, addressCodec address.Codec, ) (appGenTxs []sdk.Tx, persistentPeers string, err error)
CollectTxs processes and validates application's genesis Txs and returns the list of appGenTxs, and persistent peers required to generate genesis.json.
func DeliverGenTxs ¶
func DeliverGenTxs( ctx context.Context, genTxs []json.RawMessage, stakingKeeper types.StakingKeeper, deliverTx TxHandler, txEncodingConfig client.TxEncodingConfig, ) ([]module.ValidatorUpdate, error)
DeliverGenTxs iterates over all genesis txs, decodes each into a Tx and invokes the provided deliverTxfn with the decoded Tx. It returns the result of the staking module's ApplyAndReturnValidatorSetUpdates. NOTE: This isn't used in server/v2 applications.
func ExportGenesisFile ¶
func ExportGenesisFile(genesis *types.AppGenesis, genFile string) error
ExportGenesisFile creates and writes the genesis configuration to disk. An error is returned if building or writing the configuration to file fails.
func ExportGenesisFileWithTime ¶
func ExportGenesisFileWithTime( genFile, chainID string, validators []cmttypes.GenesisValidator, appState json.RawMessage, genTime time.Time, ) error
ExportGenesisFileWithTime creates and writes the genesis configuration to disk. An error is returned if building or writing the configuration to file fails.
func GenAppStateFromConfig ¶
func GenAppStateFromConfig(cdc codec.JSONCodec, txEncodingConfig client.TxEncodingConfig, config *cfg.Config, initCfg types.InitConfig, genesis *types.AppGenesis, validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, addressCodec address.Codec, ) (appState json.RawMessage, err error)
GenAppStateFromConfig gets the genesis app state from the config
func InitGenesis ¶
func InitGenesis( ctx context.Context, stakingKeeper types.StakingKeeper, deliverTx TxHandler, genesisState types.GenesisState, txEncodingConfig client.TxEncodingConfig, ) (validatorUpdates []module.ValidatorUpdate, err error)
InitGenesis - initialize accounts and deliver genesis transactions NOTE: It isn't used in server/v2 applications.
func InitializeNodeValidatorFiles ¶
func InitializeNodeValidatorFiles(config *cfg.Config, keyType string) ( nodeID string, valPubKey cryptotypes.PubKey, err error, )
InitializeNodeValidatorFiles creates private validator and p2p configuration files.
func InitializeNodeValidatorFilesFromMnemonic ¶ added in v0.40.0
func InitializeNodeValidatorFilesFromMnemonic(config *cfg.Config, mnemonic, keyType string) ( nodeID string, valPubKey cryptotypes.PubKey, err error, )
InitializeNodeValidatorFilesFromMnemonic creates private validator and p2p configuration files using the given mnemonic. If no valid mnemonic is given, a random one will be used instead.
func NewAppModule ¶
func NewAppModule( cdc codec.Codec, accountKeeper types.AccountKeeper, stakingKeeper types.StakingKeeper, deliverTx TxHandler, txEncodingConfig client.TxEncodingConfig, genTxValidator types.MessageValidator, ) module.AppModule
NewAppModule creates a new AppModule object
func ProvideModule ¶ added in v0.47.0
func ProvideModule(in ModuleInputs) appmodule.AppModule
func SetGenTxsInAppGenesisState ¶
func SetGenTxsInAppGenesisState( cdc codec.JSONCodec, txJSONEncoder sdk.TxEncoder, appGenesisState map[string]json.RawMessage, genTxs []sdk.Tx, ) (map[string]json.RawMessage, error)
SetGenTxsInAppGenesisState - sets the genesis transactions in the app genesis state
func ValidateAccountInGenesis ¶
func ValidateAccountInGenesis( appGenesisState map[string]json.RawMessage, genBalIterator types.GenesisBalancesIterator, addr string, coins sdk.Coins, cdc codec.JSONCodec, ) error
ValidateAccountInGenesis checks that the provided account has a sufficient balance in the set of genesis accounts.
Types ¶
type AppModule ¶
type AppModule struct {
// contains filtered or unexported fields
}
AppModule implements an application module for the genutil module.
func (AppModule) ConsensusVersion ¶ added in v0.43.0
ConsensusVersion implements HasConsensusVersion
func (AppModule) DecodeGenesisJSON ¶
func (am AppModule) DecodeGenesisJSON(data json.RawMessage) ([]json.RawMessage, error)
DecodeGenesisJSON returns the genesis transactions for the genutil module. It is an alternative to InitGenesis and used in server/v2 applications.
func (AppModule) DefaultGenesis ¶
func (am AppModule) DefaultGenesis() json.RawMessage
DefaultGenesis returns default genesis state as raw bytes for the genutil module.
func (AppModule) ExportGenesis ¶
ExportGenesis returns the exported genesis state as raw bytes for the genutil module.
func (AppModule) GenTxValidator ¶
func (am AppModule) GenTxValidator() types.MessageValidator
GenTxValidator returns the genutil module's genesis transaction validator.
func (AppModule) InitGenesis ¶
func (am AppModule) InitGenesis(ctx context.Context, data json.RawMessage) ([]module.ValidatorUpdate, error)
InitGenesis performs genesis initialization for the genutil module. InitGenesis is skipped in a server/v2 application as DecodeGenesisJSON takes precedence.
func (AppModule) IsAppModule ¶ added in v0.47.0
func (AppModule) IsAppModule()
IsAppModule implements the appmodule.AppModule interface.
func (AppModule) IsOnePerModuleType ¶ added in v0.47.0
func (am AppModule) IsOnePerModuleType()
IsOnePerModuleType implements the depinject.OnePerModuleType interface.
func (AppModule) Name ¶
Name returns the genutil module's name. Deprecated: kept for legacy reasons.
func (AppModule) ValidateGenesis ¶
func (am AppModule) ValidateGenesis(bz json.RawMessage) error
ValidateGenesis performs genesis state validation for the genutil module.
type ModuleInputs ¶ added in v0.50.0
type ModuleInputs struct { depinject.In AccountKeeper types.AccountKeeper StakingKeeper types.StakingKeeper Config client.TxConfig Cdc codec.Codec DeliverTx TxHandler `optional:"true"` // Only used in server v0 applications GenTxValidator types.MessageValidator `optional:"true"` }
ModuleInputs defines the inputs needed for the genutil module.