cosmos-sdk/x/genutil/genesis.go
mergify[bot] a24c76fcca
refactor: clarify usage of genesis.TxHandler in v1 vs v2 (backport #21213) (#21218)
Co-authored-by: Julien Robert <julien@rbrt.fr>
2024-08-08 11:48:30 +00:00

33 lines
928 B
Go

package genutil
import (
"context"
"fmt"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/x/genutil/types"
)
// TxHandler is an interface that defines how genesis txs are handled.
type TxHandler interface {
ExecuteGenesisTx([]byte) error
}
// InitGenesis - initialize accounts and deliver genesis transactions
// NOTE: It isn't used in server/v2 applications.
func InitGenesis(
ctx context.Context, stakingKeeper types.StakingKeeper,
deliverTx TxHandler, genesisState types.GenesisState,
txEncodingConfig client.TxEncodingConfig,
) (validatorUpdates []module.ValidatorUpdate, err error) {
if deliverTx == nil {
return nil, fmt.Errorf("deliverTx (genesis.TxHandler) not defined, verify x/genutil wiring")
}
if len(genesisState.GenTxs) > 0 {
return DeliverGenTxs(ctx, genesisState.GenTxs, stakingKeeper, deliverTx, txEncodingConfig)
}
return
}