forked from cerc-io/ipld-eth-server
Flop deal (#39)
*Refactor deal transformer to take in several contract addresses * Add flop address to deal transformer
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"))
|
||||
})
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user