@@ -10,6 +10,8 @@ import (
1010
1111 autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
1212 reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"
13+ "cosmossdk.io/client/v2/autocli"
14+ "cosmossdk.io/core/appmodule"
1315 "cosmossdk.io/log"
1416 store "cosmossdk.io/store/types"
1517 "cosmossdk.io/x/evidence"
@@ -87,9 +89,12 @@ import (
8789 "github.com/cosmos/cosmos-sdk/x/staking"
8890 stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
8991 stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
90- "github.com/persistenceOne/persistence-sdk/v4/x/epochs"
91- epochskeeper "github.com/persistenceOne/persistence-sdk/v4/x/epochs/keeper"
92- epochstypes "github.com/persistenceOne/persistence-sdk/v4/x/epochs/types"
92+ "github.com/cosmos/gaia/v24/x/liquid"
93+ liquidkeeper "github.com/cosmos/gaia/v24/x/liquid/keeper"
94+ liquidtypes "github.com/cosmos/gaia/v24/x/liquid/types"
95+ "github.com/persistenceOne/persistence-sdk/v5/x/epochs"
96+ epochskeeper "github.com/persistenceOne/persistence-sdk/v5/x/epochs/keeper"
97+ epochstypes "github.com/persistenceOne/persistence-sdk/v5/x/epochs/types"
9398 "github.com/spf13/cast"
9499
95100 pstakeante "github.com/persistenceOne/pstake-native/v5/ante"
@@ -125,6 +130,7 @@ var (
125130 evidence.AppModuleBasic {},
126131 vesting.AppModuleBasic {},
127132 epochs.AppModuleBasic {},
133+ liquid.AppModuleBasic {},
128134 liquidstake.AppModuleBasic {},
129135 consensus.AppModuleBasic {},
130136 wasm.AppModuleBasic {},
@@ -180,10 +186,12 @@ type PstakeApp struct {
180186 ParamsKeeper paramskeeper.Keeper
181187 ConsensusParamsKeeper consensusparamkeeper.Keeper
182188
183- EvidenceKeeper evidencekeeper.Keeper
184- FeeGrantKeeper feegrantkeeper.Keeper
185- AuthzKeeper authzkeeper.Keeper
186- EpochsKeeper * epochskeeper.Keeper
189+ EvidenceKeeper evidencekeeper.Keeper
190+ FeeGrantKeeper feegrantkeeper.Keeper
191+ AuthzKeeper authzkeeper.Keeper
192+ EpochsKeeper * epochskeeper.Keeper
193+
194+ LiquidKeeper liquidkeeper.Keeper
187195 LiquidStakeKeeper liquidstakekeeper.Keeper
188196
189197 // the module manager
@@ -231,7 +239,7 @@ func NewpStakeApp(
231239 govtypes .StoreKey , paramstypes .StoreKey , upgradetypes .StoreKey ,
232240 evidencetypes .StoreKey ,
233241 feegrant .StoreKey , authzkeeper .StoreKey ,
234- epochstypes .StoreKey , liquidstaketypes .StoreKey , consensusparamtypes .StoreKey ,
242+ epochstypes .StoreKey , liquidtypes . StoreKey , liquidstaketypes .StoreKey , consensusparamtypes .StoreKey ,
235243 )
236244 tkeys := store .NewTransientStoreKeys (paramstypes .TStoreKey )
237245
@@ -337,10 +345,19 @@ func NewpStakeApp(
337345 authtypes .NewModuleAddress (govtypes .ModuleName ).String (),
338346 )
339347
348+ app .LiquidKeeper = * liquidkeeper .NewKeeper (appCodec ,
349+ runtime .NewKVStoreService (keys [liquidtypes .StoreKey ]),
350+ app .AccountKeeper ,
351+ app .BankKeeper ,
352+ app .StakingKeeper ,
353+ app .DistrKeeper ,
354+ authtypes .NewModuleAddress (govtypes .ModuleName ).String (),
355+ )
356+
340357 // register the staking hooks
341358 // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
342359 app .StakingKeeper .SetHooks (
343- stakingtypes .NewMultiStakingHooks (app .DistrKeeper .Hooks (), app .SlashingKeeper .Hooks ()),
360+ stakingtypes .NewMultiStakingHooks (app .DistrKeeper .Hooks (), app .SlashingKeeper .Hooks (), app . LiquidKeeper . Hooks () ),
344361 )
345362
346363 app .LiquidStakeKeeper = liquidstakekeeper .NewKeeper (
@@ -352,6 +369,7 @@ func NewpStakeApp(
352369 app .MintKeeper ,
353370 app .DistrKeeper ,
354371 app .SlashingKeeper ,
372+ app .LiquidKeeper ,
355373 app .MsgServiceRouter (),
356374 authtypes .NewModuleAddress (govtypes .ModuleName ).String (),
357375 )
@@ -427,6 +445,7 @@ func NewpStakeApp(
427445 authzmodule .NewAppModule (appCodec , app .AuthzKeeper , app .AccountKeeper , app .BankKeeper , app .interfaceRegistry ),
428446 params .NewAppModule (app .ParamsKeeper ),
429447 epochs .NewAppModule (* app .EpochsKeeper ),
448+ liquid .NewAppModule (appCodec , & app .LiquidKeeper , app .AccountKeeper , app .BankKeeper , app .StakingKeeper ),
430449 liquidstake .NewAppModule (app .LiquidStakeKeeper ),
431450 consensus .NewAppModule (appCodec , app .ConsensusParamsKeeper ),
432451 )
@@ -454,6 +473,7 @@ func NewpStakeApp(
454473 feegrant .ModuleName ,
455474 paramstypes .ModuleName ,
456475 vestingtypes .ModuleName ,
476+ liquidtypes .ModuleName ,
457477 liquidstaketypes .ModuleName ,
458478 consensusparamtypes .ModuleName ,
459479 )
@@ -474,6 +494,7 @@ func NewpStakeApp(
474494 paramstypes .ModuleName ,
475495 upgradetypes .ModuleName ,
476496 vestingtypes .ModuleName ,
497+ liquidtypes .ModuleName ,
477498 liquidstaketypes .ModuleName ,
478499 consensusparamtypes .ModuleName ,
479500 )
@@ -501,13 +522,17 @@ func NewpStakeApp(
501522 paramstypes .ModuleName ,
502523 upgradetypes .ModuleName ,
503524 vestingtypes .ModuleName ,
525+ liquidtypes .ModuleName ,
504526 liquidstaketypes .ModuleName ,
505527 consensusparamtypes .ModuleName ,
506528 )
507529
508530 app .mm .RegisterInvariants (app .CrisisKeeper )
509531 app .configurator = module .NewConfigurator (app .appCodec , app .MsgServiceRouter (), app .GRPCQueryRouter ())
510- app .mm .RegisterServices (app .configurator )
532+ err := app .mm .RegisterServices (app .configurator )
533+ if err != nil {
534+ panic (err )
535+ }
511536
512537 autocliv1 .RegisterQueryServer (app .GRPCQueryRouter (), runtimeservices .NewAutoCLIQueryService (app .mm .Modules ))
513538
@@ -773,3 +798,24 @@ func (app *PstakeApp) RegisterUpgradeHandler() {
773798 app .SetStoreLoader (upgradetypes .UpgradeStoreLoader (upgradeInfo .Height , & storeUpgrades ))
774799 }
775800}
801+
802+ // AutoCliOpts returns the autocli options for the app.
803+ func (app * PstakeApp ) AutoCliOpts () autocli.AppOptions {
804+ modules := make (map [string ]appmodule.AppModule , 0 )
805+ for _ , m := range app .mm .Modules {
806+ if moduleWithName , ok := m .(module.HasName ); ok {
807+ moduleName := moduleWithName .Name ()
808+ if appModule , ok := moduleWithName .(appmodule.AppModule ); ok {
809+ modules [moduleName ] = appModule
810+ }
811+ }
812+ }
813+
814+ return autocli.AppOptions {
815+ Modules : modules ,
816+ ModuleOptions : runtimeservices .ExtractAutoCLIOptions (app .mm .Modules ),
817+ AddressCodec : addresscodec .NewBech32Codec (Bech32PrefixAccAddr ),
818+ ValidatorAddressCodec : addresscodec .NewBech32Codec (Bech32PrefixValAddr ),
819+ ConsensusAddressCodec : addresscodec .NewBech32Codec (Bech32PrefixConsAddr ),
820+ }
821+ }
0 commit comments