refactor: use app config configurator for removing boilerplate (#15499)

This commit is contained in:
Julien Robert
2023-03-22 07:29:33 +01:00
committed by GitHub
parent 3a7a2645f0
commit c77bcc22c3
36 changed files with 221 additions and 1092 deletions
+41
View File
@@ -4,13 +4,17 @@ import (
runtimev1alpha1 "cosmossdk.io/api/cosmos/app/runtime/v1alpha1"
appv1alpha1 "cosmossdk.io/api/cosmos/app/v1alpha1"
authmodulev1 "cosmossdk.io/api/cosmos/auth/module/v1"
authzmodulev1 "cosmossdk.io/api/cosmos/authz/module/v1"
bankmodulev1 "cosmossdk.io/api/cosmos/bank/module/v1"
consensusmodulev1 "cosmossdk.io/api/cosmos/consensus/module/v1"
distrmodulev1 "cosmossdk.io/api/cosmos/distribution/module/v1"
evidencemodulev1 "cosmossdk.io/api/cosmos/evidence/module/v1"
feegrantmodulev1 "cosmossdk.io/api/cosmos/feegrant/module/v1"
genutilmodulev1 "cosmossdk.io/api/cosmos/genutil/module/v1"
govmodulev1 "cosmossdk.io/api/cosmos/gov/module/v1"
groupmodulev1 "cosmossdk.io/api/cosmos/group/module/v1"
mintmodulev1 "cosmossdk.io/api/cosmos/mint/module/v1"
nftmodulev1 "cosmossdk.io/api/cosmos/nft/module/v1"
paramsmodulev1 "cosmossdk.io/api/cosmos/params/module/v1"
slashingmodulev1 "cosmossdk.io/api/cosmos/slashing/module/v1"
stakingmodulev1 "cosmossdk.io/api/cosmos/staking/module/v1"
@@ -112,6 +116,7 @@ func AuthModule() ModuleOption {
{Account: "bonded_tokens_pool", Permissions: []string{"burner", "staking"}},
{Account: "not_bonded_tokens_pool", Permissions: []string{"burner", "staking"}},
{Account: "gov", Permissions: []string{"burner"}},
{Account: "nft"},
},
}),
}
@@ -223,6 +228,42 @@ func MintModule() ModuleOption {
}
}
func EvidenceModule() ModuleOption {
return func(config *appConfig) {
config.moduleConfigs["evidence"] = &appv1alpha1.ModuleConfig{
Name: "evidence",
Config: appconfig.WrapAny(&evidencemodulev1.Module{}),
}
}
}
func AuthzModule() ModuleOption {
return func(config *appConfig) {
config.moduleConfigs["authz"] = &appv1alpha1.ModuleConfig{
Name: "authz",
Config: appconfig.WrapAny(&authzmodulev1.Module{}),
}
}
}
func GroupModule() ModuleOption {
return func(config *appConfig) {
config.moduleConfigs["group"] = &appv1alpha1.ModuleConfig{
Name: "group",
Config: appconfig.WrapAny(&groupmodulev1.Module{}),
}
}
}
func NFTModule() ModuleOption {
return func(config *appConfig) {
config.moduleConfigs["nft"] = &appv1alpha1.ModuleConfig{
Name: "nft",
Config: appconfig.WrapAny(&nftmodulev1.Module{}),
}
}
}
func OmitInitGenesis() ModuleOption {
return func(config *appConfig) {
config.setInitGenesis = false
+4 -2
View File
@@ -78,6 +78,7 @@ type StartupConfig struct {
BaseAppOption runtime.BaseAppOption
AtGenesis bool
GenesisAccounts []GenesisAccount
DB dbm.DB
}
func DefaultStartUpConfig() StartupConfig {
@@ -88,6 +89,7 @@ func DefaultStartUpConfig() StartupConfig {
ValidatorSet: CreateRandomValidatorSet,
AtGenesis: false,
GenesisAccounts: []GenesisAccount{ga},
DB: dbm.NewMemDB(),
}
}
@@ -124,9 +126,9 @@ func SetupWithConfiguration(appConfig depinject.Config, startupConfig StartupCon
}
if startupConfig.BaseAppOption != nil {
app = appBuilder.Build(log.NewNopLogger(), dbm.NewMemDB(), nil, startupConfig.BaseAppOption)
app = appBuilder.Build(log.NewNopLogger(), startupConfig.DB, nil, startupConfig.BaseAppOption)
} else {
app = appBuilder.Build(log.NewNopLogger(), dbm.NewMemDB(), nil)
app = appBuilder.Build(log.NewNopLogger(), startupConfig.DB, nil)
}
if err := app.Load(true); err != nil {
return nil, fmt.Errorf("failed to load app: %w", err)