Flop deal (#39)

*Refactor deal transformer to take in several contract addresses
* Add flop address to deal transformer
This commit is contained in:
Elizabeth
2018-09-27 10:12:29 -05:00
committed by GitHub
parent 369939ad84
commit b0cd852aa3
66 changed files with 145 additions and 137 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ package tend
import "github.com/vulcanize/vulcanizedb/pkg/transformers/shared"
var TendConfig = shared.TransformerConfig{
ContractAddress: shared.FlipperContractAddress,
ContractAddresses: []string{shared.FlipperContractAddress},
ContractAbi: shared.FlipperABI,
Topics: []string{shared.TendFunctionSignature},
StartingBlockNumber: 0,
+2 -2
View File
@@ -24,7 +24,7 @@ import (
)
type Converter interface {
Convert(ethLogs []types.Log) ([]TendModel, error)
ToModels(ethLogs []types.Log) ([]TendModel, error)
}
type TendConverter struct{}
@@ -33,7 +33,7 @@ func NewTendConverter() TendConverter {
return TendConverter{}
}
func (c TendConverter) Convert(ethLogs []types.Log) (results []TendModel, err error) {
func (c TendConverter) ToModels(ethLogs []types.Log) (results []TendModel, err error) {
for _, ethLog := range ethLogs {
err := validateLog(ethLog)
if err != nil {
+4 -4
View File
@@ -31,9 +31,9 @@ var _ = Describe("Tend TendConverter", func() {
converter = tend.NewTendConverter()
})
Describe("Convert", func() {
Describe("ToModels", func() {
It("converts an eth log to a db model", func() {
models, err := converter.Convert([]types.Log{test_data.TendLogNote})
models, err := converter.ToModels([]types.Log{test_data.TendLogNote})
Expect(err).NotTo(HaveOccurred())
Expect(len(models)).To(Equal(1))
@@ -43,7 +43,7 @@ var _ = Describe("Tend TendConverter", func() {
It("returns an error if the log data is empty", func() {
emptyDataLog := test_data.TendLogNote
emptyDataLog.Data = []byte{}
_, err := converter.Convert([]types.Log{emptyDataLog})
_, err := converter.ToModels([]types.Log{emptyDataLog})
Expect(err).To(HaveOccurred())
Expect(err).To(MatchError("tend log note data is empty"))
@@ -52,7 +52,7 @@ var _ = Describe("Tend TendConverter", func() {
It("returns an error if the expected amount of topics aren't in the log", func() {
invalidLog := test_data.TendLogNote
invalidLog.Topics = []common.Hash{}
_, err := converter.Convert([]types.Log{invalidLog})
_, err := converter.ToModels([]types.Log{invalidLog})
Expect(err).To(MatchError("tend log does not contain expected topics"))
})
+2 -1
View File
@@ -28,6 +28,7 @@ import (
"github.com/vulcanize/vulcanizedb/pkg/transformers/shared"
"github.com/vulcanize/vulcanizedb/pkg/transformers/test_data"
"github.com/vulcanize/vulcanizedb/test_config"
"github.com/vulcanize/vulcanizedb/pkg/transformers/tend"
)
// These test are marked as pending until the Flip contract is deployed to Kovan.
@@ -48,7 +49,7 @@ var _ = Describe("Integration tests", func() {
topic0 := common.HexToHash(shared.TendFunctionSignature)
topics := [][]common.Hash{{topic0}}
result, err := realFetcher.FetchLogs(shared.FlipperContractAddress, topics, test_data.FlipKickBlockNumber)
result, err := realFetcher.FetchLogs(tend.TendConfig.ContractAddresses, topics, test_data.FlipKickBlockNumber)
Expect(err).NotTo(HaveOccurred())
Expect(len(result) > 0).To(BeTrue())
+2 -2
View File
@@ -59,7 +59,7 @@ func (t TendTransformer) Execute() error {
log.Printf("Fetching tend event logs for %d headers \n", len(missingHeaders))
for _, header := range missingHeaders {
ethLogs, err := t.Fetcher.FetchLogs(config.ContractAddress, topics, header.BlockNumber)
ethLogs, err := t.Fetcher.FetchLogs(config.ContractAddresses, topics, header.BlockNumber)
if err != nil {
log.Println("Error fetching matching logs:", err)
return err
@@ -71,7 +71,7 @@ func (t TendTransformer) Execute() error {
}
}
models, err := t.Converter.Convert(ethLogs)
models, err := t.Converter.ToModels(ethLogs)
if err != nil {
log.Println("Error converting logs:", err)
return err
+1 -1
View File
@@ -75,7 +75,7 @@ var _ = Describe("Tend Transformer", func() {
Expect(err).NotTo(HaveOccurred())
Expect(fetcher.FetchedBlocks).To(Equal([]int64{blockNumber1, blockNumber2}))
Expect(fetcher.FetchedTopics).To(Equal(expectedTopics))
Expect(fetcher.FetchedContractAddress).To(Equal(shared.FlipperContractAddress))
Expect(fetcher.FetchedContractAddresses).To(Equal([][]string{tend.TendConfig.ContractAddresses, tend.TendConfig.ContractAddresses}))
})
It("returns an error if fetching logs fails", func() {