diff --git a/data/outport.go b/data/outport.go index 5e8b525..8fde611 100644 --- a/data/outport.go +++ b/data/outport.go @@ -35,10 +35,12 @@ type BlockEvents struct { // RevertBlock holds revert event data type RevertBlock struct { - Hash string `json:"hash"` - Nonce uint64 `json:"nonce"` - Round uint64 `json:"round"` - Epoch uint32 `json:"epoch"` + Hash string `json:"hash"` + Nonce uint64 `json:"nonce"` + Round uint64 `json:"round"` + Epoch uint32 `json:"epoch"` + ShardID uint32 `json:"shardId"` + TimeStamp uint64 `json:"timestamp"` } // FinalizedBlock holds finalized block data diff --git a/process/preprocess/eventsPreProcessorV1.go b/process/preprocess/eventsPreProcessorV1.go index f4392b0..6f4eeae 100644 --- a/process/preprocess/eventsPreProcessorV1.go +++ b/process/preprocess/eventsPreProcessorV1.go @@ -102,10 +102,12 @@ func (d *eventsPreProcessorV1) RevertIndexedBlock(marshalledData []byte) error { } revertData := &data.RevertBlock{ - Hash: hex.EncodeToString(blockData.GetHeaderHash()), - Nonce: header.GetNonce(), - Round: header.GetRound(), - Epoch: header.GetEpoch(), + Hash: hex.EncodeToString(blockData.GetHeaderHash()), + Nonce: header.GetNonce(), + Round: header.GetRound(), + Epoch: header.GetEpoch(), + ShardID: blockData.GetShardID(), + TimeStamp: header.GetTimeStamp(), } d.facade.HandleRevertEvents(*revertData) diff --git a/process/preprocess/eventsPreProcessorV1_test.go b/process/preprocess/eventsPreProcessorV1_test.go index fa30d37..00f3185 100644 --- a/process/preprocess/eventsPreProcessorV1_test.go +++ b/process/preprocess/eventsPreProcessorV1_test.go @@ -1,6 +1,7 @@ package preprocess_test import ( + "encoding/hex" "encoding/json" "errors" "testing" @@ -138,22 +139,55 @@ func TestPreProcessorV1_RevertIndexerBlock(t *testing.T) { t.Run("should work", func(t *testing.T) { t.Parallel() + shardID := uint32(2) + nonce := uint64(11) + round := uint64(12) + epoch := uint32(3) + timestamp := uint64(1234) + headerHash := []byte("headerHash1") + b := &block.Header{ - Nonce: 1, + Nonce: nonce, + Round: round, + Epoch: epoch, + TimeStamp: timestamp, } blockBytes, _ := json.Marshal(b) blockData := &outport.BlockData{ HeaderBytes: blockBytes, + HeaderHash: headerHash, HeaderType: "Header", + ShardID: shardID, } - dp, err := preprocess.NewEventsPreProcessorV1(createMockEventsDataPreProcessorArgs()) + expRevertBlock := data.RevertBlock{ + Hash: hex.EncodeToString(headerHash), + Nonce: nonce, + Round: round, + Epoch: epoch, + ShardID: shardID, + TimeStamp: timestamp, + } + + args := createMockEventsDataPreProcessorArgs() + + revertCalled := false + args.Facade = &mocks.FacadeStub{ + HandleRevertEventsCalled: func(events data.RevertBlock) { + revertCalled = true + require.Equal(t, expRevertBlock, events) + }, + } + + dp, err := preprocess.NewEventsPreProcessorV1(args) require.Nil(t, err) marshalledBlock, _ := json.Marshal(blockData) err = dp.RevertIndexedBlock(marshalledBlock) require.Nil(t, err) + + require.True(t, revertCalled) }) }