@@ -103,13 +103,15 @@ import (
103103 paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper"
104104 paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
105105 paramproposal "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
106+ "github.com/cosmos/cosmos-sdk/x/protocolpool"
107+ poolkeeper "github.com/cosmos/cosmos-sdk/x/protocolpool/keeper"
108+ pooltypes "github.com/cosmos/cosmos-sdk/x/protocolpool/types"
106109 "github.com/cosmos/cosmos-sdk/x/slashing"
107110 slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper"
108111 slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
109112 "github.com/cosmos/cosmos-sdk/x/staking"
110113 stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
111114 stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
112-
113115 ibccallbacks "github.com/cosmos/ibc-go/modules/apps/callbacks"
114116 "github.com/cosmos/ibc-go/modules/capability"
115117 capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
@@ -214,17 +216,19 @@ var (
214216
215217 // module account permissions
216218 maccPerms = map [string ][]string {
217- authtypes .FeeCollectorName : nil ,
218- distrtypes .ModuleName : nil ,
219- minttypes .ModuleName : {authtypes .Minter },
220- stakingtypes .BondedPoolName : {authtypes .Burner , authtypes .Staking },
221- stakingtypes .NotBondedPoolName : {authtypes .Burner , authtypes .Staking },
222- govtypes .ModuleName : {authtypes .Burner },
223- ibctransfertypes .ModuleName : {authtypes .Minter , authtypes .Burner },
224- ibcfeetypes .ModuleName : nil ,
225- icatypes .ModuleName : nil ,
226- evmtypes .ModuleName : {authtypes .Minter , authtypes .Burner }, // used for secure addition and subtraction of balance using module account
227- cronostypes .ModuleName : {authtypes .Minter , authtypes .Burner },
219+ authtypes .FeeCollectorName : nil ,
220+ distrtypes .ModuleName : nil ,
221+ pooltypes .ModuleName : nil ,
222+ pooltypes .ProtocolPoolEscrowAccount : nil ,
223+ minttypes .ModuleName : {authtypes .Minter },
224+ stakingtypes .BondedPoolName : {authtypes .Burner , authtypes .Staking },
225+ stakingtypes .NotBondedPoolName : {authtypes .Burner , authtypes .Staking },
226+ govtypes .ModuleName : {authtypes .Burner },
227+ ibctransfertypes .ModuleName : {authtypes .Minter , authtypes .Burner },
228+ ibcfeetypes .ModuleName : nil ,
229+ icatypes .ModuleName : nil ,
230+ evmtypes .ModuleName : {authtypes .Minter , authtypes .Burner }, // used for secure addition and subtraction of balance using module account
231+ cronostypes .ModuleName : {authtypes .Minter , authtypes .Burner },
228232 }
229233 // Module configurator
230234
@@ -252,6 +256,7 @@ func StoreKeys() (
252256 minttypes .StoreKey , distrtypes .StoreKey , slashingtypes .StoreKey ,
253257 govtypes .StoreKey , paramstypes .StoreKey , upgradetypes .StoreKey ,
254258 evidencetypes .StoreKey , capabilitytypes .StoreKey , consensusparamtypes .StoreKey ,
259+ pooltypes .StoreKey ,
255260 feegrant .StoreKey , crisistypes .StoreKey ,
256261 // ibc keys
257262 ibcexported .StoreKey , ibctransfertypes .StoreKey ,
@@ -306,15 +311,15 @@ type App struct {
306311
307312 // keepers
308313 AccountKeeper authkeeper.AccountKeeper
309- BankKeeper bankkeeper.Keeper
314+ BankKeeper bankkeeper.BaseKeeper
310315 CapabilityKeeper * capabilitykeeper.Keeper
311316 StakingKeeper * stakingkeeper.Keeper
312317 SlashingKeeper slashingkeeper.Keeper
313318 MintKeeper mintkeeper.Keeper
314319 DistrKeeper distrkeeper.Keeper
315320 GovKeeper govkeeper.Keeper
316321 CrisisKeeper crisiskeeper.Keeper
317- UpgradeKeeper upgradekeeper.Keeper
322+ UpgradeKeeper * upgradekeeper.Keeper
318323 ParamsKeeper paramskeeper.Keeper
319324 IBCKeeper * ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
320325 IBCFeeKeeper ibcfeekeeper.Keeper
@@ -324,6 +329,7 @@ type App struct {
324329 TransferKeeper ibctransferkeeper.Keeper
325330 FeeGrantKeeper feegrantkeeper.Keeper
326331 ConsensusParamsKeeper consensusparamkeeper.Keeper
332+ PoolKeeper poolkeeper.Keeper
327333
328334 // make scoped keepers public for test purposes
329335 ScopedIBCKeeper capabilitykeeper.ScopedKeeper
@@ -517,8 +523,8 @@ func New(
517523 )
518524 app .BankKeeper = bankkeeper .NewBaseKeeper (
519525 appCodec ,
520- runtime .NewKVStoreService (keys [banktypes .StoreKey ]),
521526 okeys [banktypes .ObjectStoreKey ],
527+ runtime .NewKVStoreService (keys [banktypes .StoreKey ]),
522528 app .AccountKeeper ,
523529 app .BlockedAddrs (),
524530 authAddr ,
@@ -557,6 +563,13 @@ func New(
557563 authtypes .FeeCollectorName ,
558564 authAddr ,
559565 )
566+ app .PoolKeeper = poolkeeper .NewKeeper (
567+ appCodec ,
568+ runtime .NewKVStoreService (keys [pooltypes .StoreKey ]),
569+ app .AccountKeeper ,
570+ app .BankKeeper ,
571+ authAddr ,
572+ )
560573 app .DistrKeeper = distrkeeper .NewKeeper (
561574 appCodec ,
562575 runtime .NewKVStoreService (keys [distrtypes .StoreKey ]),
@@ -565,6 +578,7 @@ func New(
565578 app .StakingKeeper ,
566579 authtypes .FeeCollectorName ,
567580 authAddr ,
581+ distrkeeper .WithExternalCommunityPool (app .PoolKeeper ),
568582 )
569583 app .SlashingKeeper = slashingkeeper .NewKeeper (
570584 appCodec ,
@@ -594,7 +608,7 @@ func New(
594608 skipUpgradeHeights [int64 (h )] = true
595609 }
596610 // set the governance module account as the authority for conducting upgrades
597- app .UpgradeKeeper = * upgradekeeper .NewKeeper (
611+ app .UpgradeKeeper = upgradekeeper .NewKeeper (
598612 skipUpgradeHeights ,
599613 runtime .NewKVStoreService (keys [upgradetypes .StoreKey ]),
600614 appCodec ,
@@ -817,10 +831,11 @@ func New(
817831 ),
818832 distr .NewAppModule (appCodec , app .DistrKeeper , app .AccountKeeper , app .BankKeeper , app .StakingKeeper , app .GetSubspace (distrtypes .ModuleName )),
819833 staking .NewAppModule (appCodec , app .StakingKeeper , app .AccountKeeper , app .BankKeeper , app .GetSubspace (stakingtypes .ModuleName )),
820- upgrade .NewAppModule (& app .UpgradeKeeper , app .AccountKeeper .AddressCodec ()),
834+ upgrade .NewAppModule (app .UpgradeKeeper , app .AccountKeeper .AddressCodec ()),
821835 evidence .NewAppModule (app .EvidenceKeeper ),
822836 params .NewAppModule (app .ParamsKeeper ),
823837 consensus .NewAppModule (appCodec , app .ConsensusParamsKeeper ),
838+ protocolpool .NewAppModule (appCodec , app .PoolKeeper , app .AccountKeeper , app .BankKeeper ),
824839
825840 // ibc modules
826841 ibc .NewAppModule (app .IBCKeeper ),
@@ -862,6 +877,7 @@ func New(
862877 evmtypes .ModuleName ,
863878 minttypes .ModuleName ,
864879 distrtypes .ModuleName ,
880+ pooltypes .ModuleName ,
865881 slashingtypes .ModuleName ,
866882 evidencetypes .ModuleName ,
867883 stakingtypes .ModuleName ,
@@ -886,6 +902,7 @@ func New(
886902 stakingtypes .ModuleName ,
887903 evmtypes .ModuleName ,
888904 feemarkettypes .ModuleName ,
905+ pooltypes .ModuleName ,
889906 ibcexported .ModuleName ,
890907 ibctransfertypes .ModuleName ,
891908 ibcfeetypes .ModuleName ,
@@ -915,6 +932,7 @@ func New(
915932 initGenesisOrder := []string {
916933 capabilitytypes .ModuleName ,
917934 authtypes .ModuleName ,
935+ pooltypes .ModuleName , // must be exported before bank.
918936 banktypes .ModuleName ,
919937 distrtypes .ModuleName ,
920938 stakingtypes .ModuleName ,
@@ -945,6 +963,7 @@ func New(
945963
946964 app .ModuleManager .SetOrderPreBlockers (
947965 upgradetypes .ModuleName ,
966+ authtypes .ModuleName ,
948967 )
949968 app .ModuleManager .SetOrderBeginBlockers (beginBlockersOrder ... )
950969 app .ModuleManager .SetOrderEndBlockers (endBlockersOrder ... )
@@ -1138,9 +1157,9 @@ func (app *App) setAnteHandler(txConfig client.TxConfig, maxGasWanted uint64, bl
11381157 DynamicFeeChecker : true ,
11391158 DisabledAuthzMsgs : []string {
11401159 sdk .MsgTypeURL (& evmtypes.MsgEthereumTx {}),
1141- sdk .MsgTypeURL (& vestingtypes.MsgCreateVestingAccount {}),
1142- sdk .MsgTypeURL (& vestingtypes.MsgCreatePermanentLockedAccount {}),
1143- sdk .MsgTypeURL (& vestingtypes.MsgCreatePeriodicVestingAccount {}),
1160+ sdk .MsgTypeURL (& vestingtypes.BaseVestingAccount {}),
1161+ sdk .MsgTypeURL (& vestingtypes.PermanentLockedAccount {}),
1162+ sdk .MsgTypeURL (& vestingtypes.PeriodicVestingAccount {}),
11441163 },
11451164 ExtraDecorators : []sdk.AnteDecorator {blockAddressDecorator },
11461165 PendingTxListener : app .onPendingTx ,
0 commit comments