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 AddGenesisAccounts(cdc codec.Codec, addressCodec address.Codec, accounts []GenesisAccount, ...) 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 GenesisAccount
- type ModuleInputs
- type TxHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddGenesisAccounts ¶ added in v0.50.10
func AddGenesisAccounts( cdc codec.Codec, addressCodec address.Codec, accounts []GenesisAccount, appendAcct bool, genesisFileURL string, ) error
AddGenesisAccounts adds genesis accounts to the genesis state. Where `cdc` is the client codec, `addressCodec` is the address codec, `accounts` are the genesis accounts to add, `appendAcct` updates the account if already exists, and `genesisFileURL` is the path/url of the current genesis 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 GenesisAccount ¶ added in v0.50.10
type GenesisAccount struct { // Base Address string `json:"address"` Coins sdk.Coins `json:"coins"` // Vesting VestingAmt sdk.Coins `json:"vesting_amt,omitempty"` VestingStart int64 `json:"vesting_start,omitempty"` VestingEnd int64 `json:"vesting_end,omitempty"` // Module ModuleName string `json:"module_name,omitempty"` }
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.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
client
|
|
Package testutil is a generated GoMock package.
|
Package testutil is a generated GoMock package. |
v2 contains logic and CLI used for genutil by server/v2 / runtime/v2 applications.
|
v2 contains logic and CLI used for genutil by server/v2 / runtime/v2 applications. |