From 482c8fc8428ae0157f3e8d8b0b3e0b5d4329d115 Mon Sep 17 00:00:00 2001 From: dkeysil Date: Tue, 12 Mar 2024 16:10:29 +0100 Subject: [PATCH] Rename cbe (Combined Block Event) to BlockData --- .../{r2cbe => blocksdata}/events_client.go | 16 ++++----- clients/interfaces.go | 4 +-- clients/mocks/mock_clients.go | 36 +++++++++---------- go.mod | 2 +- go.sum | 4 +++ services/json-rpc/cache/cache.go | 6 ++-- services/json-rpc/cache/cache_test.go | 12 +++---- services/json-rpc/cache/json_rpc_cache.go | 10 +++--- .../json-rpc/cache/json_rpc_cache_test.go | 6 ++-- 9 files changed, 50 insertions(+), 46 deletions(-) rename clients/{r2cbe => blocksdata}/events_client.go (75%) diff --git a/clients/r2cbe/events_client.go b/clients/blocksdata/events_client.go similarity index 75% rename from clients/r2cbe/events_client.go rename to clients/blocksdata/events_client.go index 33fc19f1..61fa85f0 100644 --- a/clients/r2cbe/events_client.go +++ b/clients/blocksdata/events_client.go @@ -1,4 +1,4 @@ -package r2cbe +package blocksdata import ( "encoding/json" @@ -13,15 +13,15 @@ import ( "google.golang.org/protobuf/proto" ) -type combinedBlockEventsClient struct { +type blocksDataClient struct { dispatcherURL *url.URL dispatcherPath string } -func NewCombinedBlockEventsClient(dispatcherURL string) *combinedBlockEventsClient { +func NewCombinedBlockEventsClient(dispatcherURL string) *blocksDataClient { u, _ := url.Parse(dispatcherURL) - return &combinedBlockEventsClient{ + return &blocksDataClient{ dispatcherURL: u, dispatcherPath: u.Path, } @@ -33,7 +33,7 @@ type PresignedURLItem struct { ExpiresAt int64 `json:"expiresAt"` } -func (c *combinedBlockEventsClient) GetCombinedBlockEvents(bucket int64) (_ *protocol.CombinedBlockEvents, err error) { +func (c *blocksDataClient) GetBlocksData(bucket int64) (_ *protocol.BlocksData, err error) { c.dispatcherURL.Path, err = url.JoinPath(c.dispatcherPath, fmt.Sprintf("%d", bucket)) if err != nil { return nil, err @@ -66,12 +66,12 @@ func (c *combinedBlockEventsClient) GetCombinedBlockEvents(bucket int64) (_ *pro return nil, err } - var events protocol.CombinedBlockEvents + var blocks protocol.BlocksData - err = proto.Unmarshal(b, &events) + err = proto.Unmarshal(b, &blocks) if err != nil { return nil, err } - return &events, nil + return &blocks, nil } diff --git a/clients/interfaces.go b/clients/interfaces.go index c19abff8..0c550456 100644 --- a/clients/interfaces.go +++ b/clients/interfaces.go @@ -70,6 +70,6 @@ type IPAuthenticator interface { FindAgentByContainerName(containerName string) (*config.AgentConfig, error) } -type CombinedBlockEventsClient interface { - GetCombinedBlockEvents(bucket int64) (*protocol.CombinedBlockEvents, error) +type BlocksDataClient interface { + GetBlocksData(bucket int64) (*protocol.BlocksData, error) } diff --git a/clients/mocks/mock_clients.go b/clients/mocks/mock_clients.go index 38cd5841..85ef8ce4 100644 --- a/clients/mocks/mock_clients.go +++ b/clients/mocks/mock_clients.go @@ -710,40 +710,40 @@ func (mr *MockIPAuthenticatorMockRecorder) FindContainerNameFromRemoteAddr(ctx, return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindContainerNameFromRemoteAddr", reflect.TypeOf((*MockIPAuthenticator)(nil).FindContainerNameFromRemoteAddr), ctx, hostPort) } -// MockCombinedBlockEventsClient is a mock of CombinedBlockEventsClient interface. -type MockCombinedBlockEventsClient struct { +// MockBlocksDataClient is a mock of BlocksDataClient interface. +type MockBlocksDataClient struct { ctrl *gomock.Controller - recorder *MockCombinedBlockEventsClientMockRecorder + recorder *MockBlocksDataClientMockRecorder } -// MockCombinedBlockEventsClientMockRecorder is the mock recorder for MockCombinedBlockEventsClient. -type MockCombinedBlockEventsClientMockRecorder struct { - mock *MockCombinedBlockEventsClient +// MockBlocksDataClientMockRecorder is the mock recorder for MockBlocksDataClient. +type MockBlocksDataClientMockRecorder struct { + mock *MockBlocksDataClient } -// NewMockCombinedBlockEventsClient creates a new mock instance. -func NewMockCombinedBlockEventsClient(ctrl *gomock.Controller) *MockCombinedBlockEventsClient { - mock := &MockCombinedBlockEventsClient{ctrl: ctrl} - mock.recorder = &MockCombinedBlockEventsClientMockRecorder{mock} +// NewMockBlocksDataClient creates a new mock instance. +func NewMockBlocksDataClient(ctrl *gomock.Controller) *MockBlocksDataClient { + mock := &MockBlocksDataClient{ctrl: ctrl} + mock.recorder = &MockBlocksDataClientMockRecorder{mock} return mock } // EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockCombinedBlockEventsClient) EXPECT() *MockCombinedBlockEventsClientMockRecorder { +func (m *MockBlocksDataClient) EXPECT() *MockBlocksDataClientMockRecorder { return m.recorder } -// GetCombinedBlockEvents mocks base method. -func (m *MockCombinedBlockEventsClient) GetCombinedBlockEvents(bucket int64) (*protocol.CombinedBlockEvents, error) { +// GetBlocksData mocks base method. +func (m *MockBlocksDataClient) GetBlocksData(bucket int64) (*protocol.BlocksData, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCombinedBlockEvents", bucket) - ret0, _ := ret[0].(*protocol.CombinedBlockEvents) + ret := m.ctrl.Call(m, "GetBlocksData", bucket) + ret0, _ := ret[0].(*protocol.BlocksData) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetCombinedBlockEvents indicates an expected call of GetCombinedBlockEvents. -func (mr *MockCombinedBlockEventsClientMockRecorder) GetCombinedBlockEvents(bucket interface{}) *gomock.Call { +// GetBlocksData indicates an expected call of GetBlocksData. +func (mr *MockBlocksDataClientMockRecorder) GetBlocksData(bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCombinedBlockEvents", reflect.TypeOf((*MockCombinedBlockEventsClient)(nil).GetCombinedBlockEvents), bucket) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlocksData", reflect.TypeOf((*MockBlocksDataClient)(nil).GetBlocksData), bucket) } diff --git a/go.mod b/go.mod index e4495039..57a4cf30 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/andybalholm/brotli v1.1.0 github.com/docker/docker v1.6.2 github.com/docker/go-connections v0.4.0 - github.com/forta-network/forta-core-go v0.0.0-20240311161131-92809f963403 + github.com/forta-network/forta-core-go v0.0.0-20240312150426-832d1633b86b github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.39.0 diff --git a/go.sum b/go.sum index c5d356fd..1c15752a 100644 --- a/go.sum +++ b/go.sum @@ -333,6 +333,10 @@ github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwU github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/forta-network/forta-core-go v0.0.0-20240311161131-92809f963403 h1:VM2aEAz6qcXOPgEx+yw7hZ8fg/zETn1oaXg+6/4gwc8= github.com/forta-network/forta-core-go v0.0.0-20240311161131-92809f963403/go.mod h1:iNehCWOypwVeO8b1GKmsrEWReHTvO5qw8SsGvZsBINo= +github.com/forta-network/forta-core-go v0.0.0-20240312150138-fc6cb6ef61e9 h1:4zxIApnQO2sdLq9GsTBUo2LbNwmikVjLykE68Mri6iY= +github.com/forta-network/forta-core-go v0.0.0-20240312150138-fc6cb6ef61e9/go.mod h1:iNehCWOypwVeO8b1GKmsrEWReHTvO5qw8SsGvZsBINo= +github.com/forta-network/forta-core-go v0.0.0-20240312150426-832d1633b86b h1:Y4XVUlyBLrhO+C3MfQYt3Rcl5JrY6WtQTytDDnute3A= +github.com/forta-network/forta-core-go v0.0.0-20240312150426-832d1633b86b/go.mod h1:iNehCWOypwVeO8b1GKmsrEWReHTvO5qw8SsGvZsBINo= github.com/forta-network/go-multicall v0.0.0-20230609185354-1436386c6707 h1:f6I7K43i2m6AwHSsDxh0Mf3qFzYt8BKnabSl/zGFmh0= github.com/forta-network/go-multicall v0.0.0-20230609185354-1436386c6707/go.mod h1:nqTUF1REklpWLZ/M5HfzqhSHNz4dPVKzJvbLziqTZpw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= diff --git a/services/json-rpc/cache/cache.go b/services/json-rpc/cache/cache.go index ea61bc67..105e1259 100644 --- a/services/json-rpc/cache/cache.go +++ b/services/json-rpc/cache/cache.go @@ -21,8 +21,8 @@ func NewCache(expire time.Duration) *inMemory { } } -func (c *inMemory) Append(events *protocol.CombinedBlockEvents) { - for _, event := range events.Events { +func (c *inMemory) Append(blocksData *protocol.BlocksData) { + for _, event := range blocksData.Blocks { chainID := event.ChainID // eth_blockNumber @@ -44,7 +44,7 @@ func (c *inMemory) Append(events *protocol.CombinedBlockEvents) { method = "eth_getBlockByNumber" params = fmt.Sprintf(`["%s", "true"]`, event.Block.Number) - block := domain.BlockFromCombinedBlockEvent(event) + block := domain.BlockFromBlockData(event) c.cache.SetDefault(cacheKey(chainID, method, params), block) // eth_getLogs diff --git a/services/json-rpc/cache/cache_test.go b/services/json-rpc/cache/cache_test.go index 0aa98d7f..12434451 100644 --- a/services/json-rpc/cache/cache_test.go +++ b/services/json-rpc/cache/cache_test.go @@ -11,7 +11,7 @@ import ( func TestCache(t *testing.T) { cache := NewCache(time.Millisecond * 500) - cache.Append(events) + cache.Append(blocks) blockNumber, ok := cache.Get(1, "eth_blockNumber", "[]") assert.True(t, ok) @@ -28,11 +28,11 @@ func TestCache(t *testing.T) { assert.Empty(t, blockNumber) } -var events = &protocol.CombinedBlockEvents{ - Events: []*protocol.CombinedBlockEvent{ +var blocks = &protocol.BlocksData{ + Blocks: []*protocol.BlockData{ { ChainID: 1, - Block: &protocol.CombinedBlock{ + Block: &protocol.BlockWithTransactions{ Hash: "0xaaaa", Number: "1", Transactions: []*protocol.Transaction{ @@ -63,7 +63,7 @@ var events = &protocol.CombinedBlockEvents{ }, { ChainID: 2, - Block: &protocol.CombinedBlock{ + Block: &protocol.BlockWithTransactions{ Hash: "0xffff", Number: "100", Transactions: []*protocol.Transaction{ @@ -83,7 +83,7 @@ var events = &protocol.CombinedBlockEvents{ }, { ChainID: 2, - Block: &protocol.CombinedBlock{ + Block: &protocol.BlockWithTransactions{ Hash: "0xfffd", Number: "101", Transactions: []*protocol.Transaction{ diff --git a/services/json-rpc/cache/json_rpc_cache.go b/services/json-rpc/cache/json_rpc_cache.go index 3fc9ad17..1fcf94bd 100644 --- a/services/json-rpc/cache/json_rpc_cache.go +++ b/services/json-rpc/cache/json_rpc_cache.go @@ -10,7 +10,7 @@ import ( "github.com/forta-network/forta-core-go/utils" "github.com/forta-network/forta-node/clients" - "github.com/forta-network/forta-node/clients/r2cbe" + "github.com/forta-network/forta-node/clients/blocksdata" "github.com/forta-network/forta-node/config" log "github.com/sirupsen/logrus" ) @@ -28,7 +28,7 @@ type JsonRpcCache struct { cache *inMemory - cbeClient clients.CombinedBlockEventsClient + blocksDataClient clients.BlocksDataClient } func NewJsonRpcCache(ctx context.Context, cfg config.JsonRpcCacheConfig) (*JsonRpcCache, error) { @@ -52,7 +52,7 @@ func (c *JsonRpcCache) Start() error { Handler: c.Handler(), } - c.cbeClient = r2cbe.NewCombinedBlockEventsClient(c.cfg.DispatcherURL) + c.blocksDataClient = blocksdata.NewCombinedBlockEventsClient(c.cfg.DispatcherURL) utils.GoListenAndServe(c.server) @@ -133,14 +133,14 @@ func (c *JsonRpcCache) pollEvents() { time.Sleep(1 * time.Second) log.Info("Polling for combined block events", "bucket", bucket) - events, err := c.cbeClient.GetCombinedBlockEvents(bucket) + events, err := c.blocksDataClient.GetBlocksData(bucket) if err != nil { log.WithError(err).Error("Failed to get combined block events", "bucket", bucket) bucket = time.Now().Truncate(time.Second * 10).Unix() continue } - log.Info("Added combined block events to local cache", "bucket", bucket, "events", len(events.Events)) + log.Info("Added combined block events to local cache", "bucket", bucket, "events", len(events.Blocks)) c.cache.Append(events) bucket += 10 // 10 seconds } diff --git a/services/json-rpc/cache/json_rpc_cache_test.go b/services/json-rpc/cache/json_rpc_cache_test.go index 34fac22c..9ec95d48 100644 --- a/services/json-rpc/cache/json_rpc_cache_test.go +++ b/services/json-rpc/cache/json_rpc_cache_test.go @@ -21,12 +21,12 @@ var ( func TestJsonRpcCache(t *testing.T) { ctrl := gomock.NewController(t) - eventsClient := mock_clients.NewMockCombinedBlockEventsClient(ctrl) + blocksDataClient := mock_clients.NewMockBlocksDataClient(ctrl) authenticator := mock_clients.NewMockIPAuthenticator(ctrl) count := 0 appended := make(chan struct{}) - eventsClient.EXPECT().GetCombinedBlockEvents(gomock.Any()).Return(events, nil).Do(func(any) { + blocksDataClient.EXPECT().GetBlocksData(gomock.Any()).Return(blocks, nil).Do(func(any) { count++ if count == 2 { close(appended) @@ -40,7 +40,7 @@ func TestJsonRpcCache(t *testing.T) { jrpCache := JsonRpcCache{ ctx: context.TODO(), botAuthenticator: authenticator, - cbeClient: eventsClient, + blocksDataClient: blocksDataClient, cfg: config.JsonRpcCacheConfig{ CacheExpirePeriodSeconds: 300, },