diff --git a/libraries/shared/factories/event/log_note_converter.go b/libraries/shared/factories/event/log_note_converter.go deleted file mode 100644 index 3b18c46c..00000000 --- a/libraries/shared/factories/event/log_note_converter.go +++ /dev/null @@ -1,23 +0,0 @@ -// VulcanizeDB -// Copyright © 2019 Vulcanize - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. - -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package event - -import "github.com/ethereum/go-ethereum/core/types" - -type LogNoteConverter interface { - ToModels(ethLog []types.Log) ([]interface{}, error) -} diff --git a/libraries/shared/factories/event/log_note_transformer.go b/libraries/shared/factories/event/log_note_transformer.go deleted file mode 100644 index 2b4699b6..00000000 --- a/libraries/shared/factories/event/log_note_transformer.go +++ /dev/null @@ -1,73 +0,0 @@ -// VulcanizeDB -// Copyright © 2019 Vulcanize - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. - -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package event - -import ( - "github.com/ethereum/go-ethereum/core/types" - log "github.com/sirupsen/logrus" - - "github.com/vulcanize/vulcanizedb/libraries/shared/constants" - "github.com/vulcanize/vulcanizedb/libraries/shared/transformer" - "github.com/vulcanize/vulcanizedb/pkg/core" - "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres" -) - -type LogNoteTransformer struct { - Config transformer.EventTransformerConfig - Converter LogNoteConverter - Repository Repository -} - -func (tr LogNoteTransformer) NewLogNoteTransformer(db *postgres.DB) transformer.EventTransformer { - tr.Repository.SetDB(db) - return tr -} - -func (tr LogNoteTransformer) Execute(logs []types.Log, header core.Header, recheckedHeader constants.TransformerExecution) error { - transformerName := tr.Config.TransformerName - - // No matching logs, mark the header as checked for this type of logs - if len(logs) < 1 { - err := tr.Repository.MarkHeaderChecked(header.Id) - if err != nil { - log.Printf("Error marking header as checked in %v: %v", transformerName, err) - return err - } - return nil - } - - models, err := tr.Converter.ToModels(logs) - if err != nil { - log.Printf("Error converting logs in %v: %v", transformerName, err) - return err - } - - err = tr.Repository.Create(header.Id, models) - if err != nil { - log.Printf("Error persisting %v record: %v", transformerName, err) - return err - } - return nil -} - -func (tr LogNoteTransformer) GetName() string { - return tr.Config.TransformerName -} - -func (tr LogNoteTransformer) GetConfig() transformer.EventTransformerConfig { - return tr.Config -} diff --git a/libraries/shared/factories/event/log_note_transformer_test.go b/libraries/shared/factories/event/log_note_transformer_test.go deleted file mode 100644 index efc36d34..00000000 --- a/libraries/shared/factories/event/log_note_transformer_test.go +++ /dev/null @@ -1,126 +0,0 @@ -// VulcanizeDB -// Copyright © 2019 Vulcanize - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. - -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package event_test - -import ( - "math/rand" - - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/vulcanizedb/libraries/shared/constants" - "github.com/vulcanize/vulcanizedb/libraries/shared/factories/event" - "github.com/vulcanize/vulcanizedb/libraries/shared/mocks" - "github.com/vulcanize/vulcanizedb/libraries/shared/test_data" - "github.com/vulcanize/vulcanizedb/libraries/shared/transformer" - "github.com/vulcanize/vulcanizedb/pkg/core" - "github.com/vulcanize/vulcanizedb/pkg/fakes" -) - -var _ = Describe("LogNoteTransformer", func() { - var ( - repository mocks.MockRepository - converter mocks.MockLogNoteConverter - headerOne core.Header - t transformer.EventTransformer - model test_data.GenericModel - config = test_data.GenericTestConfig - logs = test_data.GenericTestLogs - ) - - BeforeEach(func() { - repository = mocks.MockRepository{} - converter = mocks.MockLogNoteConverter{} - t = event.LogNoteTransformer{ - Config: config, - Converter: &converter, - Repository: &repository, - }.NewLogNoteTransformer(nil) - - headerOne = core.Header{Id: rand.Int63(), BlockNumber: rand.Int63()} - }) - - It("sets the database", func() { - Expect(repository.SetDbCalled).To(BeTrue()) - }) - - It("marks header checked if no logs are provided", func() { - err := t.Execute([]types.Log{}, headerOne, constants.HeaderMissing) - - Expect(err).NotTo(HaveOccurred()) - repository.AssertMarkHeaderCheckedCalledWith(headerOne.Id) - }) - - It("doesn't attempt to convert or persist an empty collection when there are no logs", func() { - err := t.Execute([]types.Log{}, headerOne, constants.HeaderMissing) - - Expect(err).NotTo(HaveOccurred()) - Expect(converter.ToModelsCalledCounter).To(Equal(0)) - Expect(repository.CreateCalledCounter).To(Equal(0)) - }) - - It("does not call repository.MarkCheckedHeader when there are logs", func() { - err := t.Execute(logs, headerOne, constants.HeaderMissing) - - Expect(err).NotTo(HaveOccurred()) - repository.AssertMarkHeaderCheckedNotCalled() - }) - - It("returns error if marking header checked returns err", func() { - repository.SetMarkHeaderCheckedError(fakes.FakeError) - - err := t.Execute([]types.Log{}, headerOne, constants.HeaderMissing) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(fakes.FakeError)) - }) - - It("converts matching logs to models", func() { - err := t.Execute(logs, headerOne, constants.HeaderMissing) - - Expect(err).NotTo(HaveOccurred()) - Expect(converter.PassedLogs).To(Equal(logs)) - }) - - It("returns error if converter returns error", func() { - converter.SetConverterError(fakes.FakeError) - - err := t.Execute(logs, headerOne, constants.HeaderMissing) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(fakes.FakeError)) - }) - - It("persists the model", func() { - converter.SetReturnModels([]interface{}{model}) - err := t.Execute(logs, headerOne, constants.HeaderMissing) - - Expect(err).NotTo(HaveOccurred()) - Expect(repository.PassedHeaderID).To(Equal(headerOne.Id)) - Expect(repository.PassedModels).To(Equal([]interface{}{model})) - }) - - It("returns error if repository returns error for create", func() { - repository.SetCreateError(fakes.FakeError) - - err := t.Execute(logs, headerOne, constants.HeaderMissing) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(fakes.FakeError)) - }) -})