@@ -2,18 +2,22 @@ package simapp
2
2
3
3
import (
4
4
"encoding/json"
5
+ "fmt"
5
6
"io"
6
7
"net/http"
7
8
"os"
8
9
"path/filepath"
9
10
11
+ autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
12
+ reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"
10
13
"github.com/cosmos/cosmos-sdk/baseapp"
11
14
"github.com/cosmos/cosmos-sdk/client"
12
15
_ "github.com/cosmos/cosmos-sdk/client/docs/statik" // this is used for serving docs
13
16
nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
14
17
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
15
18
"github.com/cosmos/cosmos-sdk/codec"
16
19
"github.com/cosmos/cosmos-sdk/codec/types"
20
+ runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services"
17
21
"github.com/cosmos/cosmos-sdk/server/api"
18
22
"github.com/cosmos/cosmos-sdk/server/config"
19
23
servertypes "github.com/cosmos/cosmos-sdk/server/types"
@@ -305,7 +309,7 @@ func NewSimApp(
305
309
app .ParamsKeeper = initParamsKeeper (appCodec , legacyAmino , keys [paramstypes .StoreKey ], tkeys [paramstypes .TStoreKey ])
306
310
307
311
// set the BaseApp's parameter store
308
- app .ConsensusParamsKeeper = consensusparamkeeper .NewKeeper (appCodec , keys [upgradetypes .StoreKey ], authtypes .NewModuleAddress (govtypes .ModuleName ).String ())
312
+ app .ConsensusParamsKeeper = consensusparamkeeper .NewKeeper (appCodec , keys [consensusparamtypes .StoreKey ], authtypes .NewModuleAddress (govtypes .ModuleName ).String ())
309
313
bApp .SetParamStore (& app .ConsensusParamsKeeper )
310
314
311
315
// add capability keeper and ScopeToModule for ibc module
@@ -602,6 +606,14 @@ func NewSimApp(
602
606
app .configurator = module .NewConfigurator (app .appCodec , app .MsgServiceRouter (), app .GRPCQueryRouter ())
603
607
app .mm .RegisterServices (app .configurator )
604
608
609
+ autocliv1 .RegisterQueryServer (app .GRPCQueryRouter (), runtimeservices .NewAutoCLIQueryService (app .mm .Modules ))
610
+
611
+ reflectionSvc , err := runtimeservices .NewReflectionService ()
612
+ if err != nil {
613
+ panic (err )
614
+ }
615
+ reflectionv1 .RegisterReflectionServiceServer (app .GRPCQueryRouter (), reflectionSvc )
616
+
605
617
// add test gRPC service for testing gRPC queries in isolation
606
618
testdata .RegisterQueryServer (app .GRPCQueryRouter (), testdata.QueryImpl {})
607
619
@@ -658,6 +670,7 @@ func NewSimApp(
658
670
app .SetEndBlocker (app .EndBlocker )
659
671
660
672
app .setupUpgradeHandlers ()
673
+ app .setupUpgradeStoreLoaders ()
661
674
662
675
if loadLatest {
663
676
if err := app .LoadLatestVersion (); err != nil {
@@ -823,6 +836,9 @@ func (app *SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APICon
823
836
// Register legacy and grpc-gateway routes for all modules.
824
837
ModuleBasics .RegisterGRPCGatewayRoutes (clientCtx , apiSvr .GRPCGatewayRouter )
825
838
839
+ // Register nodeservice grpc-gateway routes.
840
+ nodeservice .RegisterGRPCGatewayRoutes (clientCtx , apiSvr .GRPCGatewayRouter )
841
+
826
842
// register swagger API from root so that other applications can override easily
827
843
if apiConfig .Swagger {
828
844
RegisterSwaggerAPI (clientCtx , apiSvr .Router )
@@ -892,14 +908,14 @@ func BlockedAddresses() map[string]bool {
892
908
func initParamsKeeper (appCodec codec.BinaryCodec , legacyAmino * codec.LegacyAmino , key , tkey storetypes.StoreKey ) paramskeeper.Keeper {
893
909
paramsKeeper := paramskeeper .NewKeeper (appCodec , legacyAmino , key , tkey )
894
910
895
- paramsKeeper .Subspace (authtypes .ModuleName )
896
- paramsKeeper .Subspace (banktypes .ModuleName )
897
- paramsKeeper .Subspace (stakingtypes .ModuleName )
898
- paramsKeeper .Subspace (minttypes .ModuleName )
899
- paramsKeeper .Subspace (distrtypes .ModuleName )
900
- paramsKeeper .Subspace (slashingtypes .ModuleName )
911
+ paramsKeeper .Subspace (authtypes .ModuleName ). WithKeyTable ( authtypes . ParamKeyTable ())
912
+ paramsKeeper .Subspace (banktypes .ModuleName ). WithKeyTable ( banktypes . ParamKeyTable ())
913
+ paramsKeeper .Subspace (stakingtypes .ModuleName ). WithKeyTable ( stakingtypes . ParamKeyTable ())
914
+ paramsKeeper .Subspace (minttypes .ModuleName ). WithKeyTable ( minttypes . ParamKeyTable ())
915
+ paramsKeeper .Subspace (distrtypes .ModuleName ). WithKeyTable ( distrtypes . ParamKeyTable ())
916
+ paramsKeeper .Subspace (slashingtypes .ModuleName ). WithKeyTable ( slashingtypes . ParamKeyTable ())
901
917
paramsKeeper .Subspace (govtypes .ModuleName ).WithKeyTable (govv1 .ParamKeyTable ())
902
- paramsKeeper .Subspace (crisistypes .ModuleName )
918
+ paramsKeeper .Subspace (crisistypes .ModuleName ). WithKeyTable ( crisistypes . ParamKeyTable ())
903
919
paramsKeeper .Subspace (ibctransfertypes .ModuleName )
904
920
paramsKeeper .Subspace (ibcexported .ModuleName )
905
921
paramsKeeper .Subspace (icacontrollertypes .SubModuleName )
@@ -938,6 +954,28 @@ func (app *SimApp) setupUpgradeHandlers() {
938
954
app .configurator ,
939
955
app .appCodec ,
940
956
app .IBCKeeper .ClientKeeper ,
957
+ app .ConsensusParamsKeeper ,
958
+ app .ParamsKeeper ,
941
959
),
942
960
)
943
961
}
962
+
963
+ // setupUpgradeStoreLoaders sets all necessary store loaders required by upgrades.
964
+ func (app * SimApp ) setupUpgradeStoreLoaders () {
965
+ upgradeInfo , err := app .UpgradeKeeper .ReadUpgradeInfoFromDisk ()
966
+ if err != nil {
967
+ tmos .Exit (fmt .Sprintf ("failed to read upgrade info from disk %s" , err ))
968
+ }
969
+
970
+ if upgradeInfo .Name == v7 .UpgradeName && ! app .UpgradeKeeper .IsSkipHeight (upgradeInfo .Height ) {
971
+ storeUpgrades := storetypes.StoreUpgrades {
972
+ Added : []string {
973
+ consensusparamtypes .StoreKey ,
974
+ crisistypes .StoreKey ,
975
+ },
976
+ }
977
+
978
+ // configure store loader that checks if version == upgradeHeight and applies store upgrades
979
+ app .SetStoreLoader (upgradetypes .UpgradeStoreLoader (upgradeInfo .Height , & storeUpgrades ))
980
+ }
981
+ }
0 commit comments