diff --git a/app/app.go b/app/app.go index b6b0277e..6704e053 100644 --- a/app/app.go +++ b/app/app.go @@ -233,12 +233,13 @@ var ( evmtypes.ModuleName: {authtypes.Minter, authtypes.Burner}, // used for secure addition and subtraction of balance using module account erc20types.ModuleName: {authtypes.Minter, authtypes.Burner}, claimstypes.ModuleName: nil, - hubgentypes.ModuleName: {authtypes.Burner}, + hubgentypes.ModuleName: {authtypes.Minter}, } // module accounts that are allowed to receive tokens allowedReceivingModAcc = map[string]bool{ - distrtypes.ModuleName: true, + distrtypes.ModuleName: true, + hubgentypes.ModuleName: true, } ) @@ -533,14 +534,6 @@ func NewRollapp( ), ) - app.TransferKeeper = transferkeeper.NewKeeper( - appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName), - app.ClaimsKeeper, // ICS4 Wrapper: claims IBC middleware - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, - app.AccountKeeper, app.BankKeeper, scopedTransferKeeper, - app.Erc20Keeper, // Add ERC20 Keeper for ERC20 transfers - ) - app.HubGenesisKeeper = hubgenkeeper.NewKeeper( appCodec, keys[hubgentypes.StoreKey], @@ -548,6 +541,16 @@ func NewRollapp( app.AccountKeeper, ) + genesisTransfersBlocker := hubgenkeeper.NewICS4Wrapper(app.ClaimsKeeper, app.HubGenesisKeeper) // ICS4 Wrapper: claims IBC middleware + + app.TransferKeeper = transferkeeper.NewKeeper( + appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName), + genesisTransfersBlocker, + app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, + app.AccountKeeper, app.BankKeeper, scopedTransferKeeper, + app.Erc20Keeper, // Add ERC20 Keeper for ERC20 transfers + ) + // NOTE: app.Erc20Keeper is already initialized elsewhere // Set the ICS4 wrappers for custom module middlewares app.ClaimsKeeper.SetICS4Wrapper(app.IBCKeeper.ChannelKeeper) @@ -561,6 +564,12 @@ func NewRollapp( transferStack = transfer.NewIBCModule(app.TransferKeeper) transferStack = claims.NewIBCMiddleware(*app.ClaimsKeeper, transferStack) transferStack = erc20.NewIBCMiddleware(app.Erc20Keeper, transferStack) + transferStack = hubgenkeeper.NewIBCModule( + transferStack, + app.TransferKeeper, + app.HubGenesisKeeper, + app.BankKeeper, + ) // Create static IBC router, add transfer route, then set and seal it ibcRouter := ibcporttypes.NewRouter()