From 3eec34a75963a660122b2a922871f63b3b0f1391 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 14 Jan 2025 16:42:21 +0100 Subject: [PATCH] attempt --- runtime/v2/app.go | 13 +++++++++++++ runtime/v2/go.mod | 8 +++++++- runtime/v2/go.sum | 22 ++++++++++++++++++---- runtime/v2/module.go | 2 ++ server/v2/commands.go | 1 + server/v2/server_test.go | 2 +- server/v2/store/commands.go | 12 +++++++++--- server/v2/store/server.go | 13 ++++++++----- server/v2/store/snapshot.go | 6 ++++-- simapp/v2/go.mod | 16 ++++++---------- simapp/v2/simdv2/cmd/commands.go | 5 ++++- store/v2/root/builder.go | 10 ++++++++++ 12 files changed, 83 insertions(+), 27 deletions(-) diff --git a/runtime/v2/app.go b/runtime/v2/app.go index b89febe8117e..015bbd292120 100644 --- a/runtime/v2/app.go +++ b/runtime/v2/app.go @@ -41,6 +41,9 @@ type App[T transaction.Tx] struct { amino registry.AminoRegistrar moduleManager *MM[T] queryHandlers map[string]appmodulev2.Handler // queryHandlers defines the query handlers + + // storeKeys + storeKeys []string } // Name returns the app name. @@ -111,3 +114,13 @@ func (a *App[T]) Close() error { func (a *App[T]) GetApp() *App[T] { return a } + +// SetStoreKeys sets the store keys. +func (a *App[T]) SetStoreKeys(keys []string) { + a.storeKeys = keys +} + +// GetStoreKeys returns the store keys that have been registered. +func (a *App[T]) GetStoreKeys() []string { + return a.storeKeys +} diff --git a/runtime/v2/go.mod b/runtime/v2/go.mod index 35397f24e7eb..c86e6d7d6e11 100644 --- a/runtime/v2/go.mod +++ b/runtime/v2/go.mod @@ -25,13 +25,17 @@ require ( google.golang.org/protobuf v1.36.2 ) +replace cosmossdk.io/store/v2 => ../../store/v2 + require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.1-20241120201313-68e42a58b301.1 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.1-20240130113600-88ef6483f90f.1 // indirect cosmossdk.io/core/testing v0.0.1 // indirect cosmossdk.io/errors/v2 v2.0.0 // indirect github.com/DataDog/zstd v1.5.5 // indirect + github.com/aybabtme/uniplot v0.0.0-20151203143629-039c559e5e7e // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bvinc/go-sqlite-lite v0.6.1 // indirect github.com/bytedance/sonic v1.12.6 // indirect github.com/bytedance/sonic/loader v0.2.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect @@ -44,8 +48,10 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/iavl v1.3.4 // indirect + github.com/cosmos/iavl/v2 v2.0.0-alpha.4 // indirect github.com/cosmos/ics23/go v0.11.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/dustin/go-humanize v1.0.1 // indirect github.com/emicklei/dot v1.6.2 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -57,9 +63,9 @@ require ( github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/cpuid/v2 v2.2.9 // indirect + github.com/kocubinski/costor-api v1.1.1 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect - github.com/linxGnu/grocksdb v1.9.3 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect diff --git a/runtime/v2/go.sum b/runtime/v2/go.sum index 210228ac2ed5..ed456c19c991 100644 --- a/runtime/v2/go.sum +++ b/runtime/v2/go.sum @@ -21,8 +21,6 @@ cosmossdk.io/server/v2/appmanager v1.0.0-beta.1 h1:EISWki+z9SDAt3OJnUl2y5Ow4qjOb cosmossdk.io/server/v2/appmanager v1.0.0-beta.1/go.mod h1:RVYxIaEdIT10nWSRqbwKDLFWfvCVx+cwAorCyPAQg9A= cosmossdk.io/server/v2/stf v1.0.0-beta.1 h1:s+nRgjhKVC08/qpr51eFVodLhyyQ9ASvJBanLBfQVNI= cosmossdk.io/server/v2/stf v1.0.0-beta.1/go.mod h1:nfjihbofEF2GGadkYSFmgy5tqrAnSrmGcXUDZmmWyi8= -cosmossdk.io/store/v2 v2.0.0-beta.1 h1:p1fdZ9uNijhpXZXdqs0QS6NmXNDVPNyT4DHV4yQnF64= -cosmossdk.io/store/v2 v2.0.0-beta.1/go.mod h1:qHQmf/9mnsXwo/Ypp2u2Zs6BmkYcx1R/Jrpyn9Ro13A= cosmossdk.io/x/tx v1.0.0-alpha.3 h1:+55/JFH5QRqnFhOI2heH3DKsaNL0RpXcJOQNzUvHiaQ= cosmossdk.io/x/tx v1.0.0-alpha.3/go.mod h1:h4pQ/j6Gfu8goB1R3Jbl4qY4RjYVNAsoylcleTXdSRg= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -34,10 +32,14 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/aybabtme/uniplot v0.0.0-20151203143629-039c559e5e7e h1:dSeuFcs4WAJJnswS8vXy7YY1+fdlbVPuEVmDAfqvFOQ= +github.com/aybabtme/uniplot v0.0.0-20151203143629-039c559e5e7e/go.mod h1:uh71c5Vc3VNIplXOFXsnDy21T1BepgT32c5X/YPrOyc= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bvinc/go-sqlite-lite v0.6.1 h1:JU8Rz5YAOZQiU3WEulKF084wfXpytRiqD2IaW2QjPz4= +github.com/bvinc/go-sqlite-lite v0.6.1/go.mod h1:2GiE60NUdb0aNhDdY+LXgrqAVDpi2Ijc6dB6ZMp9x6s= github.com/bytedance/sonic v1.12.6 h1:/isNmCUF2x3Sh8RAp/4mh4ZGkcFAX/hLrzrK3AvpRzk= github.com/bytedance/sonic v1.12.6/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= @@ -74,6 +76,10 @@ github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fr github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= github.com/cosmos/iavl v1.3.4 h1:A0RUAms7TZ0L6EFrrBIPg4Dy7qD9vvD5lJKUxEXURLM= github.com/cosmos/iavl v1.3.4/go.mod h1:T6SfBcyhulVIY2G/ZtAtQm/QiJvsuhIos52V4dWYk88= +github.com/cosmos/iavl-bench/bench v0.0.4 h1:J6zQPiBqF4CXMM3QBsLqZgQEBGY0taX85vLIZMhmAfQ= +github.com/cosmos/iavl-bench/bench v0.0.4/go.mod h1:j2rLae77EffacWcp7mmj3Uaa4AOAmZA7ymvhsuBQKKI= +github.com/cosmos/iavl/v2 v2.0.0-alpha.4 h1:PfpQt7xl4hojw2UFS2JdJppJnx8sjlmcxRQ7Hxk7Cl0= +github.com/cosmos/iavl/v2 v2.0.0-alpha.4/go.mod h1:7RSm0aeApe3S1x4TrLffvUL6pjOtMYV4glYnpAhr2lw= github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -81,6 +87,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A= github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -155,6 +163,8 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -170,6 +180,8 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/kocubinski/costor-api v1.1.1 h1:sgfJA7T/8IfZ59zxiMrED0xdjerAFuPNBTqyO90GiEE= +github.com/kocubinski/costor-api v1.1.1/go.mod h1:ESMBMDkKfN+9vvvhhNVdKLhbOmzI3O/i16iXvRM9Tuc= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -180,8 +192,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/linxGnu/grocksdb v1.9.3 h1:s1cbPcOd0cU2SKXRG1nEqCOWYAELQjdqg3RVI2MH9ik= -github.com/linxGnu/grocksdb v1.9.3/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -260,6 +270,10 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= diff --git a/runtime/v2/module.go b/runtime/v2/module.go index 9f638bb9c07c..96a78a8520a7 100644 --- a/runtime/v2/module.go +++ b/runtime/v2/module.go @@ -142,6 +142,8 @@ func ProvideAppBuilder[T transaction.Tx]( } appBuilder := &AppBuilder[T]{app: app, storeBuilder: storeBuilder, storeConfig: storeConfig} + appBuilder.app.SetStoreKeys(storeBuilder.GetStoreKeys()) + return appBuilder, msgRouterBuilder, appModule[T]{app}, protoFiles, protoTypes } diff --git a/server/v2/commands.go b/server/v2/commands.go index 082e78243f33..e0f848adf60a 100644 --- a/server/v2/commands.go +++ b/server/v2/commands.go @@ -184,6 +184,7 @@ func topLevelCmd(ctx context.Context, use, short string) *cobra.Command { var appBuildingCommands = [][]string{ {"start"}, {"genesis", "export"}, + {"snapshot", "restore"}, } // IsAppRequired determines if a command requires a full application to be built by diff --git a/server/v2/server_test.go b/server/v2/server_test.go index d3cd5aaa8edf..eee4444231e3 100644 --- a/server/v2/server_test.go +++ b/server/v2/server_test.go @@ -56,7 +56,7 @@ func TestServer(t *testing.T) { grpcServer, err := grpc.New[transaction.Tx](logger, &mockInterfaceRegistry{}, map[string]appmodulev2.Handler{}, nil, cfg) require.NoError(t, err) - storeServer, err := store.New[transaction.Tx](&mockStore{}, cfg) + storeServer, err := store.New[transaction.Tx](&mockStore{}, cfg, []string{"mock-store-key"}) require.NoError(t, err) mockServer := &mockServer{name: "mock-server-1", ch: make(chan string, 100)} diff --git a/server/v2/store/commands.go b/server/v2/store/commands.go index 3ebe6e6ecba6..2ae577d6567e 100644 --- a/server/v2/store/commands.go +++ b/server/v2/store/commands.go @@ -40,7 +40,7 @@ Supported app-db-backend types include 'goleveldb', 'pebbledb'.`, } logger := serverv2.GetLoggerFromCmd(cmd) - rootStore, opts, err := createRootStore(vp, logger) + rootStore, opts, err := createRootStore(vp, logger, s.storeKeys) if err != nil { return fmt.Errorf("can not create root store %w", err) } @@ -74,12 +74,18 @@ Supported app-db-backend types include 'goleveldb', 'pebbledb'.`, return cmd } -func createRootStore(v *viper.Viper, logger log.Logger) (storev2.RootStore, root.Options, error) { +func createRootStore(v *viper.Viper, logger log.Logger, storeKeys []string) (storev2.RootStore, root.Options, error) { storeConfig, err := UnmarshalConfig(v.AllSettings()) if err != nil { return nil, root.Options{}, fmt.Errorf("failed to unmarshal config: %w", err) } - store, err := root.NewBuilder().Build(logger, storeConfig) + + builder := root.NewBuilder() + for _, key := range storeKeys { + builder.RegisterKey(key) + } + + store, err := builder.Build(logger, storeConfig) if err != nil { return nil, root.Options{}, fmt.Errorf("failed to create store backend: %w", err) } diff --git a/server/v2/store/server.go b/server/v2/store/server.go index ec6d2d14e133..5bb61cb449e4 100644 --- a/server/v2/store/server.go +++ b/server/v2/store/server.go @@ -23,18 +23,21 @@ const ServerName = "store" // Server manages store config and contains prune & snapshot commands type Server[T transaction.Tx] struct { - config *root.Config - store storev2.Backend + config *root.Config + store storev2.Backend + storeKeys []string } -func New[T transaction.Tx](store storev2.Backend, cfg server.ConfigMap) (*Server[T], error) { +func New[T transaction.Tx](store storev2.Backend, cfg server.ConfigMap, storeKeys []string) (*Server[T], error) { config, err := UnmarshalConfig(cfg) if err != nil { return nil, err } + fmt.Println("123", storeKeys) return &Server[T]{ - store: store, - config: config, + store: store, + config: config, + storeKeys: storeKeys, }, nil } diff --git a/server/v2/store/snapshot.go b/server/v2/store/snapshot.go index a86fb355e406..9dff42a7c682 100644 --- a/server/v2/store/snapshot.go +++ b/server/v2/store/snapshot.go @@ -39,7 +39,7 @@ func (s *Server[T]) ExportSnapshotCmd() *cobra.Command { } logger := serverv2.GetLoggerFromCmd(cmd) - rootStore, _, err := createRootStore(v, logger) + rootStore, _, err := createRootStore(v, logger, s.storeKeys) if err != nil { return err } @@ -94,7 +94,9 @@ func (s *Server[T]) RestoreSnapshotCmd() *cobra.Command { return err } - rootStore, _, err := createRootStore(v, logger) + fmt.Println("storeKeys", s.storeKeys) + + rootStore, _, err := createRootStore(v, logger, s.storeKeys) if err != nil { return fmt.Errorf("failed to create root store: %w", err) } diff --git a/simapp/v2/go.mod b/simapp/v2/go.mod index a3a655c5ed9c..d834695aae1d 100644 --- a/simapp/v2/go.mod +++ b/simapp/v2/go.mod @@ -12,11 +12,14 @@ require ( cosmossdk.io/math v1.5.0 cosmossdk.io/runtime/v2 v2.0.0-00010101000000-000000000000 cosmossdk.io/server/v2 v2.0.0-beta.1 + cosmossdk.io/server/v2/appmanager v1.0.0-beta.1 cosmossdk.io/server/v2/cometbft v0.0.0-20241015140036-ee3d320eaa55 cosmossdk.io/store/v2 v2.0.0 cosmossdk.io/tools/benchmark v0.2.0-rc.1 + cosmossdk.io/tools/confix v0.0.0-00010101000000-000000000000 cosmossdk.io/x/accounts v0.0.0-20240913065641-0064ccbce64e cosmossdk.io/x/accounts/defaults/base v0.0.0-00010101000000-000000000000 + cosmossdk.io/x/accounts/defaults/lockup v0.0.0-00010101000000-000000000000 cosmossdk.io/x/accounts/defaults/multisig v0.0.0-00010101000000-000000000000 cosmossdk.io/x/authz v0.0.0-00010101000000-000000000000 cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 @@ -35,10 +38,10 @@ require ( cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f github.com/cometbft/cometbft v1.0.0 + github.com/cometbft/cometbft/api v1.0.0 // this version is not used as it is always replaced by the latest Cosmos SDK version github.com/cosmos/cosmos-sdk v0.53.0 github.com/jackc/pgx/v5 v5.7.2 - github.com/spf13/cast v1.7.1 // indirect github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.19.0 @@ -46,15 +49,6 @@ require ( google.golang.org/protobuf v1.36.2 ) -require github.com/cosmos/iavl/v2 v2.0.0-alpha.4 // indirect - -require ( - cosmossdk.io/server/v2/appmanager v1.0.0-beta.1 - cosmossdk.io/tools/confix v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/accounts/defaults/lockup v0.0.0-00010101000000-000000000000 - github.com/cometbft/cometbft/api v1.0.0 -) - require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.1-20241120201313-68e42a58b301.1 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.1-20240130113600-88ef6483f90f.1 // indirect @@ -107,6 +101,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/gogoproto v1.7.0 // indirect github.com/cosmos/iavl v1.3.4 // indirect + github.com/cosmos/iavl/v2 v2.0.0-alpha.4 // indirect github.com/cosmos/ics23/go v0.11.0 // indirect github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect github.com/creachadair/atomicfile v0.3.7 // indirect @@ -207,6 +202,7 @@ require ( github.com/sasha-s/go-deadlock v0.3.5 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.7.1 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect diff --git a/simapp/v2/simdv2/cmd/commands.go b/simapp/v2/simdv2/cmd/commands.go index f9b9e6ebfc09..6a03af87cb38 100644 --- a/simapp/v2/simdv2/cmd/commands.go +++ b/simapp/v2/simdv2/cmd/commands.go @@ -2,6 +2,7 @@ package cmd import ( "context" + "fmt" "io" "github.com/spf13/cobra" @@ -97,8 +98,10 @@ func InitRootCmd[T transaction.Tx]( // build full app! simApp := deps.SimApp + fmt.Println("simApp.App.GetStoreKeys()", simApp.App.GetStoreKeys()) + // store component (not a server) - storeComponent, err := serverstore.New[T](simApp.Store(), deps.GlobalConfig) + storeComponent, err := serverstore.New[T](simApp.Store(), deps.GlobalConfig, simApp.App.GetStoreKeys()) if err != nil { return nil, err } diff --git a/store/v2/root/builder.go b/store/v2/root/builder.go index a282c9fe3328..3091034edf09 100644 --- a/store/v2/root/builder.go +++ b/store/v2/root/builder.go @@ -25,6 +25,8 @@ type Builder interface { RegisterKey(string) // Get returns the Store. Build should be called before calling Get or the result will be nil. Get() store.RootStore + // GetStoreKeys returns the store keys that have been registered. + GetStoreKeys() []string } var _ Builder = (*builder)(nil) @@ -98,3 +100,11 @@ func (sb *builder) Get() store.RootStore { func (sb *builder) RegisterKey(key string) { sb.storeKeys[key] = struct{}{} } + +func (sb *builder) GetStoreKeys() []string { + keys := make([]string, 0, len(sb.storeKeys)) + for key := range sb.storeKeys { + keys = append(keys, key) + } + return keys +}