refactor!: reimplement PreFinalizeBlockHook as PreBlocker (backport #17713) (#17754)

Co-authored-by: mmsqe <mavis@crypto.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
mergify[bot]
2023-09-15 08:14:23 +00:00
committed by GitHub
co-authored by mmsqe Julien Robert
parent b1dd67aa77
commit 4955776845
20 changed files with 104 additions and 105 deletions
+3 -3
View File
@@ -744,21 +744,21 @@ func (m Manager) RunMigrations(ctx context.Context, cfg Configurator, fromVM Ver
// PreBlock performs begin block functionality for upgrade module.
// It takes the current context as a parameter and returns a boolean value
// indicating whether the migration was successfully executed or not.
func (m *Manager) PreBlock(ctx sdk.Context) (sdk.ResponsePreBlock, error) {
func (m *Manager) PreBlock(ctx sdk.Context) (*sdk.ResponsePreBlock, error) {
ctx = ctx.WithEventManager(sdk.NewEventManager())
paramsChanged := false
for _, moduleName := range m.OrderPreBlockers {
if module, ok := m.Modules[moduleName].(appmodule.HasPreBlocker); ok {
rsp, err := module.PreBlock(ctx)
if err != nil {
return sdk.ResponsePreBlock{}, err
return nil, err
}
if rsp.IsConsensusParamsChanged() {
paramsChanged = true
}
}
}
return sdk.ResponsePreBlock{
return &sdk.ResponsePreBlock{
ConsensusParamsChanged: paramsChanged,
}, nil
}
+3 -3
View File
@@ -478,7 +478,7 @@ func TestCoreAPIManager_PreBlock(t *testing.T) {
require.Equal(t, 2, len(mm.Modules))
require.Equal(t, 1, len(mm.OrderPreBlockers))
mockAppModule1.EXPECT().PreBlock(gomock.Any()).Times(1).Return(sdk.ResponsePreBlock{
mockAppModule1.EXPECT().PreBlock(gomock.Any()).Times(1).Return(&sdk.ResponsePreBlock{
ConsensusParamsChanged: true,
}, nil)
res, err := mm.PreBlock(sdk.Context{})
@@ -486,7 +486,7 @@ func TestCoreAPIManager_PreBlock(t *testing.T) {
require.True(t, res.ConsensusParamsChanged)
// test false
mockAppModule1.EXPECT().PreBlock(gomock.Any()).Times(1).Return(sdk.ResponsePreBlock{
mockAppModule1.EXPECT().PreBlock(gomock.Any()).Times(1).Return(&sdk.ResponsePreBlock{
ConsensusParamsChanged: false,
}, nil)
res, err = mm.PreBlock(sdk.Context{})
@@ -494,7 +494,7 @@ func TestCoreAPIManager_PreBlock(t *testing.T) {
require.False(t, res.ConsensusParamsChanged)
// test error
mockAppModule1.EXPECT().PreBlock(gomock.Any()).Times(1).Return(sdk.ResponsePreBlock{}, errors.New("some error"))
mockAppModule1.EXPECT().PreBlock(gomock.Any()).Times(1).Return(nil, errors.New("some error"))
_, err = mm.PreBlock(sdk.Context{})
require.EqualError(t, err, "some error")
}