Skip to content

Commit 0ac30e7

Browse files
refactor: provide a helper for baseapp options (backport #14175) (#14177)
* refactor: provide a helper for baseapp options (#14175) * provide a helper for baseapp options * rename * changelog entry * fix spelling (cherry picked from commit 1b6192f) # Conflicts: # CHANGELOG.md # simapp/simd/cmd/root.go * conflicts Co-authored-by: Marko <marbar3778@yahoo.com>
1 parent abfa535 commit 0ac30e7

File tree

4 files changed

+57
-50
lines changed

4 files changed

+57
-50
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ Ref: https://keepachangelog.com/en/1.0.0/
128128
* [#13802](https://github.com/cosmos/cosmos-sdk/pull/13802) Add --output-document flag to the export CLI command to allow writing genesis state to a file.
129129
* [#13794](https://github.com/cosmos/cosmos-sdk/pull/13794) `types/module.Manager` now supports the
130130
`cosmossdk.io/core/appmodule.AppModule` API via the new `NewManagerFromMap` constructor.
131+
* [#14019](https://github.com/cosmos/cosmos-sdk/issues/14019) Remove the interface casting to allow other implementations of a `CommitMultiStore`.
132+
* [#14175](https://github.com/cosmos/cosmos-sdk/pull/14175) Add `server.DefaultBaseappOptions(appopts)` function to reduce boiler plate in root.go.
131133

132134
### State Machine Breaking
133135

server/mock/app_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ package mock
22

33
import (
44
"math/rand"
5+
"testing"
56
"time"
67

78
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
8-
"testing"
99

1010
"github.com/stretchr/testify/require"
1111
abci "github.com/tendermint/tendermint/abci/types"

server/util.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,15 @@ import (
2525
tmlog "github.com/tendermint/tendermint/libs/log"
2626
dbm "github.com/tendermint/tm-db"
2727

28+
"github.com/cosmos/cosmos-sdk/baseapp"
2829
"github.com/cosmos/cosmos-sdk/client/flags"
2930
"github.com/cosmos/cosmos-sdk/server/config"
3031
"github.com/cosmos/cosmos-sdk/server/types"
32+
"github.com/cosmos/cosmos-sdk/snapshots"
33+
snapshottypes "github.com/cosmos/cosmos-sdk/snapshots/types"
34+
"github.com/cosmos/cosmos-sdk/store"
3135
sdk "github.com/cosmos/cosmos-sdk/types"
36+
"github.com/cosmos/cosmos-sdk/types/mempool"
3237
"github.com/cosmos/cosmos-sdk/version"
3338
)
3439

@@ -408,3 +413,48 @@ func openTraceWriter(traceWriterFile string) (w io.WriteCloser, err error) {
408413
0o666,
409414
)
410415
}
416+
417+
// DefaultBaseappOptions returns the default baseapp options provided by the Cosmos SDK
418+
func DefaultBaseappOptions(appOpts types.AppOptions) []func(*baseapp.BaseApp) {
419+
var cache sdk.MultiStorePersistentCache
420+
421+
if cast.ToBool(appOpts.Get(FlagInterBlockCache)) {
422+
cache = store.NewCommitKVStoreCacheManager()
423+
}
424+
425+
pruningOpts, err := GetPruningOptionsFromFlags(appOpts)
426+
if err != nil {
427+
panic(err)
428+
}
429+
430+
snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots")
431+
snapshotDB, err := dbm.NewDB("metadata", GetAppDBBackend(appOpts), snapshotDir)
432+
if err != nil {
433+
panic(err)
434+
}
435+
snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir)
436+
if err != nil {
437+
panic(err)
438+
}
439+
440+
snapshotOptions := snapshottypes.NewSnapshotOptions(
441+
cast.ToUint64(appOpts.Get(FlagStateSyncSnapshotInterval)),
442+
cast.ToUint32(appOpts.Get(FlagStateSyncSnapshotKeepRecent)),
443+
)
444+
445+
return []func(*baseapp.BaseApp){
446+
baseapp.SetPruning(pruningOpts),
447+
baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(FlagMinGasPrices))),
448+
baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(FlagHaltHeight))),
449+
baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(FlagHaltTime))),
450+
baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(FlagMinRetainBlocks))),
451+
baseapp.SetInterBlockCache(cache),
452+
baseapp.SetTrace(cast.ToBool(appOpts.Get(FlagTrace))),
453+
baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(FlagIndexEvents))),
454+
baseapp.SetSnapshot(snapshotStore, snapshotOptions),
455+
baseapp.SetIAVLCacheSize(cast.ToInt(appOpts.Get(FlagIAVLCacheSize))),
456+
baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(FlagDisableIAVLFastNode))),
457+
baseapp.SetMempool(mempool.NewSenderNonceMempool(
458+
mempool.SenderNonceMaxTxOpt(cast.ToInt(appOpts.Get(FlagMempoolMaxTxs))))),
459+
}
460+
}

simapp/simd/cmd/root.go

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package cmd
22

33
import (
4-
rosettaCmd "cosmossdk.io/tools/rosetta/cmd"
54
"errors"
65
"io"
76
"os"
8-
"path/filepath"
97

10-
"github.com/spf13/cast"
8+
rosettaCmd "cosmossdk.io/tools/rosetta/cmd"
9+
1110
"github.com/spf13/cobra"
1211
"github.com/spf13/viper"
1312
tmcfg "github.com/tendermint/tendermint/config"
@@ -17,7 +16,6 @@ import (
1716
"cosmossdk.io/simapp"
1817
"cosmossdk.io/simapp/params"
1918

20-
"github.com/cosmos/cosmos-sdk/baseapp"
2119
"github.com/cosmos/cosmos-sdk/client"
2220
"github.com/cosmos/cosmos-sdk/client/config"
2321
"github.com/cosmos/cosmos-sdk/client/debug"
@@ -28,12 +26,8 @@ import (
2826
"github.com/cosmos/cosmos-sdk/server"
2927
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
3028
servertypes "github.com/cosmos/cosmos-sdk/server/types"
31-
"github.com/cosmos/cosmos-sdk/snapshots"
32-
snapshottypes "github.com/cosmos/cosmos-sdk/snapshots/types"
33-
"github.com/cosmos/cosmos-sdk/store"
3429
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
3530
sdk "github.com/cosmos/cosmos-sdk/types"
36-
"github.com/cosmos/cosmos-sdk/types/mempool"
3731
authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli"
3832
"github.com/cosmos/cosmos-sdk/x/auth/types"
3933
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
@@ -262,52 +256,13 @@ func newApp(
262256
traceStore io.Writer,
263257
appOpts servertypes.AppOptions,
264258
) servertypes.Application {
265-
var cache sdk.MultiStorePersistentCache
266-
267-
if cast.ToBool(appOpts.Get(server.FlagInterBlockCache)) {
268-
cache = store.NewCommitKVStoreCacheManager()
269-
}
270-
271-
skipUpgradeHeights := make(map[int64]bool)
272-
for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) {
273-
skipUpgradeHeights[int64(h)] = true
274-
}
275259

276-
pruningOpts, err := server.GetPruningOptionsFromFlags(appOpts)
277-
if err != nil {
278-
panic(err)
279-
}
280-
281-
snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots")
282-
snapshotDB, err := dbm.NewDB("metadata", server.GetAppDBBackend(appOpts), snapshotDir)
283-
if err != nil {
284-
panic(err)
285-
}
286-
snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir)
287-
if err != nil {
288-
panic(err)
289-
}
290-
291-
snapshotOptions := snapshottypes.NewSnapshotOptions(
292-
cast.ToUint64(appOpts.Get(server.FlagStateSyncSnapshotInterval)),
293-
cast.ToUint32(appOpts.Get(server.FlagStateSyncSnapshotKeepRecent)),
294-
)
260+
baseappOptions := server.DefaultBaseappOptions(appOpts)
295261

296262
return simapp.NewSimApp(
297263
logger, db, traceStore, true,
298264
appOpts,
299-
baseapp.SetPruning(pruningOpts),
300-
baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))),
301-
baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))),
302-
baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(server.FlagHaltTime))),
303-
baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(server.FlagMinRetainBlocks))),
304-
baseapp.SetInterBlockCache(cache),
305-
baseapp.SetTrace(cast.ToBool(appOpts.Get(server.FlagTrace))),
306-
baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(server.FlagIndexEvents))),
307-
baseapp.SetSnapshot(snapshotStore, snapshotOptions),
308-
baseapp.SetIAVLCacheSize(cast.ToInt(appOpts.Get(server.FlagIAVLCacheSize))),
309-
baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(server.FlagDisableIAVLFastNode))),
310-
baseapp.SetMempool(mempool.NewSenderNonceMempool(mempool.SenderNonceMaxTxOpt(cast.ToInt(appOpts.Get(server.FlagMempoolMaxTxs))))),
265+
baseappOptions...,
311266
)
312267
}
313268

0 commit comments

Comments
 (0)