From 9af8d0de7d914e2dc42dc48d384294bfdfafdcda Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Tue, 9 Sep 2025 17:35:35 +0200 Subject: [PATCH] refactor: bump go-header and use DeleteRange method for rollback --- apps/evm/single/cmd/rollback.go | 4 +-- apps/evm/single/go.mod | 2 ++ apps/evm/single/go.sum | 4 +-- apps/testapp/cmd/rollback.go | 4 +-- apps/testapp/go.mod | 2 ++ apps/testapp/go.sum | 4 +-- go.mod | 2 ++ go.sum | 4 +-- test/mocks/external/hstore.go | 63 +++++++++++++++++++++++++++++++++ 9 files changed, 79 insertions(+), 10 deletions(-) diff --git a/apps/evm/single/cmd/rollback.go b/apps/evm/single/cmd/rollback.go index 054eb2a4c4..dbad127f25 100644 --- a/apps/evm/single/cmd/rollback.go +++ b/apps/evm/single/cmd/rollback.go @@ -94,11 +94,11 @@ func NewRollbackCmd() *cobra.Command { } defer dataStore.Stop(goCtx) - if err := headerStore.DeleteTo(goCtx, height); err != nil { + if err := headerStore.DeleteRange(goCtx, height+1, headerStore.Height()); err != nil { return fmt.Errorf("failed to rollback header sync service state: %w", err) } - if err := dataStore.DeleteTo(goCtx, height); err != nil { + if err := dataStore.DeleteRange(goCtx, height+1, dataStore.Height()); err != nil { return fmt.Errorf("failed to rollback data sync service state: %w", err) } diff --git a/apps/evm/single/go.mod b/apps/evm/single/go.mod index 3e484a14f3..54eed392ff 100644 --- a/apps/evm/single/go.mod +++ b/apps/evm/single/go.mod @@ -4,6 +4,8 @@ go 1.24.1 toolchain go1.24.2 +replace github.com/celestiaorg/go-header => github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58 // TODO: to remove after https://github.com/celestiaorg/go-header/pull/347 + replace ( github.com/evstack/ev-node => ../../../ github.com/evstack/ev-node/core => ../../../core diff --git a/apps/evm/single/go.sum b/apps/evm/single/go.sum index 4cf65b7f2b..508456f336 100644 --- a/apps/evm/single/go.sum +++ b/apps/evm/single/go.sum @@ -104,8 +104,6 @@ github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXe github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= github.com/celestiaorg/go-datastore v0.0.0-20250801131506-48a63ae531e4 h1:udw77BU45zmvTV7798FhR1wHFmsFpu4GnA5mubtMcR0= github.com/celestiaorg/go-datastore v0.0.0-20250801131506-48a63ae531e4/go.mod h1:W+pI1NsUsz3tcsAACMtfC+IZdnQTnC/7VfPoJBQuts0= -github.com/celestiaorg/go-header v0.7.1 h1:XG0fQykSjKsCtWl9sY5jZXG12D4Xe59bjklWZ2sWip0= -github.com/celestiaorg/go-header v0.7.1/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0= github.com/celestiaorg/go-libp2p-messenger v0.2.2 h1:osoUfqjss7vWTIZrrDSy953RjQz+ps/vBFE7bychLEc= github.com/celestiaorg/go-libp2p-messenger v0.2.2/go.mod h1:oTCRV5TfdO7V/k6nkx7QjQzGrWuJbupv+0o1cgnY2i4= github.com/celestiaorg/utils v0.1.0 h1:WsP3O8jF7jKRgLNFmlDCwdThwOFMFxg0MnqhkLFVxPo= @@ -473,6 +471,8 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58 h1:FBGLvgA4hfRjjYHUiiya7KkGxcHQWSpdn2dRKUEDa5k= +github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= diff --git a/apps/testapp/cmd/rollback.go b/apps/testapp/cmd/rollback.go index d8fc8e590a..2067dfd38d 100644 --- a/apps/testapp/cmd/rollback.go +++ b/apps/testapp/cmd/rollback.go @@ -100,11 +100,11 @@ func NewRollbackCmd() *cobra.Command { } defer dataStore.Stop(goCtx) - if err := headerStore.DeleteTo(goCtx, height); err != nil { + if err := headerStore.DeleteRange(goCtx, height+1, headerStore.Height()); err != nil { return fmt.Errorf("failed to rollback header sync service state: %w", err) } - if err := dataStore.DeleteTo(goCtx, height); err != nil { + if err := dataStore.DeleteRange(goCtx, height+1, dataStore.Height()); err != nil { return fmt.Errorf("failed to rollback data sync service state: %w", err) } diff --git a/apps/testapp/go.mod b/apps/testapp/go.mod index 3f9f4e1e54..6d109b970d 100644 --- a/apps/testapp/go.mod +++ b/apps/testapp/go.mod @@ -2,6 +2,8 @@ module github.com/evstack/ev-node/apps/testapp go 1.24.1 +replace github.com/celestiaorg/go-header => github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58 // TODO: to remove after https://github.com/celestiaorg/go-header/pull/347 + replace ( github.com/evstack/ev-node => ../../. github.com/evstack/ev-node/core => ../../core diff --git a/apps/testapp/go.sum b/apps/testapp/go.sum index a3735abac3..9985ffc3c6 100644 --- a/apps/testapp/go.sum +++ b/apps/testapp/go.sum @@ -24,8 +24,6 @@ github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBT github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/celestiaorg/go-datastore v0.0.0-20250801131506-48a63ae531e4 h1:udw77BU45zmvTV7798FhR1wHFmsFpu4GnA5mubtMcR0= github.com/celestiaorg/go-datastore v0.0.0-20250801131506-48a63ae531e4/go.mod h1:W+pI1NsUsz3tcsAACMtfC+IZdnQTnC/7VfPoJBQuts0= -github.com/celestiaorg/go-header v0.7.1 h1:XG0fQykSjKsCtWl9sY5jZXG12D4Xe59bjklWZ2sWip0= -github.com/celestiaorg/go-header v0.7.1/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0= github.com/celestiaorg/go-libp2p-messenger v0.2.2 h1:osoUfqjss7vWTIZrrDSy953RjQz+ps/vBFE7bychLEc= github.com/celestiaorg/go-libp2p-messenger v0.2.2/go.mod h1:oTCRV5TfdO7V/k6nkx7QjQzGrWuJbupv+0o1cgnY2i4= github.com/celestiaorg/utils v0.1.0 h1:WsP3O8jF7jKRgLNFmlDCwdThwOFMFxg0MnqhkLFVxPo= @@ -174,6 +172,8 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58 h1:FBGLvgA4hfRjjYHUiiya7KkGxcHQWSpdn2dRKUEDa5k= +github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= diff --git a/go.mod b/go.mod index 685f927093..e7b7f6906c 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,8 @@ go 1.24.1 retract v0.12.0 // Published by accident +replace github.com/celestiaorg/go-header => github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58 // TODO: to remove after https://github.com/celestiaorg/go-header/pull/347 + replace github.com/evstack/ev-node/core => ./core replace github.com/ipfs/go-datastore => github.com/celestiaorg/go-datastore v0.0.0-20250801131506-48a63ae531e4 diff --git a/go.sum b/go.sum index e948be321e..c076e26a29 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,6 @@ github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBT github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/celestiaorg/go-datastore v0.0.0-20250801131506-48a63ae531e4 h1:udw77BU45zmvTV7798FhR1wHFmsFpu4GnA5mubtMcR0= github.com/celestiaorg/go-datastore v0.0.0-20250801131506-48a63ae531e4/go.mod h1:W+pI1NsUsz3tcsAACMtfC+IZdnQTnC/7VfPoJBQuts0= -github.com/celestiaorg/go-header v0.7.1 h1:XG0fQykSjKsCtWl9sY5jZXG12D4Xe59bjklWZ2sWip0= -github.com/celestiaorg/go-header v0.7.1/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0= github.com/celestiaorg/go-libp2p-messenger v0.2.2 h1:osoUfqjss7vWTIZrrDSy953RjQz+ps/vBFE7bychLEc= github.com/celestiaorg/go-libp2p-messenger v0.2.2/go.mod h1:oTCRV5TfdO7V/k6nkx7QjQzGrWuJbupv+0o1cgnY2i4= github.com/celestiaorg/utils v0.1.0 h1:WsP3O8jF7jKRgLNFmlDCwdThwOFMFxg0MnqhkLFVxPo= @@ -172,6 +170,8 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58 h1:FBGLvgA4hfRjjYHUiiya7KkGxcHQWSpdn2dRKUEDa5k= +github.com/julienrbrt/go-header v0.0.0-20250909151551-cb11b091bf58/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= diff --git a/test/mocks/external/hstore.go b/test/mocks/external/hstore.go index c484558d9d..c59cc0cd5f 100644 --- a/test/mocks/external/hstore.go +++ b/test/mocks/external/hstore.go @@ -108,6 +108,69 @@ func (_c *MockStore_Append_Call[H]) RunAndReturn(run func(context1 context.Conte return _c } +// DeleteRange provides a mock function for the type MockStore +func (_mock *MockStore[H]) DeleteRange(ctx context.Context, from uint64, to uint64) error { + ret := _mock.Called(ctx, from, to) + + if len(ret) == 0 { + panic("no return value specified for DeleteRange") + } + + var r0 error + if returnFunc, ok := ret.Get(0).(func(context.Context, uint64, uint64) error); ok { + r0 = returnFunc(ctx, from, to) + } else { + r0 = ret.Error(0) + } + return r0 +} + +// MockStore_DeleteRange_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteRange' +type MockStore_DeleteRange_Call[H header.Header[H]] struct { + *mock.Call +} + +// DeleteRange is a helper method to define mock.On call +// - ctx context.Context +// - from uint64 +// - to uint64 +func (_e *MockStore_Expecter[H]) DeleteRange(ctx interface{}, from interface{}, to interface{}) *MockStore_DeleteRange_Call[H] { + return &MockStore_DeleteRange_Call[H]{Call: _e.mock.On("DeleteRange", ctx, from, to)} +} + +func (_c *MockStore_DeleteRange_Call[H]) Run(run func(ctx context.Context, from uint64, to uint64)) *MockStore_DeleteRange_Call[H] { + _c.Call.Run(func(args mock.Arguments) { + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 uint64 + if args[1] != nil { + arg1 = args[1].(uint64) + } + var arg2 uint64 + if args[2] != nil { + arg2 = args[2].(uint64) + } + run( + arg0, + arg1, + arg2, + ) + }) + return _c +} + +func (_c *MockStore_DeleteRange_Call[H]) Return(err error) *MockStore_DeleteRange_Call[H] { + _c.Call.Return(err) + return _c +} + +func (_c *MockStore_DeleteRange_Call[H]) RunAndReturn(run func(ctx context.Context, from uint64, to uint64) error) *MockStore_DeleteRange_Call[H] { + _c.Call.Return(run) + return _c +} + // DeleteTo provides a mock function for the type MockStore func (_mock *MockStore[H]) DeleteTo(ctx context.Context, to uint64) error { ret := _mock.Called(ctx, to)