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 flop_kick
|
||||
import "github.com/vulcanize/vulcanizedb/pkg/transformers/shared"
|
||||
|
||||
var Config = shared.TransformerConfig{
|
||||
ContractAddress: shared.FlopperContractAddress,
|
||||
ContractAddresses: []string{shared.FlopperContractAddress},
|
||||
ContractAbi: shared.FlopperABI,
|
||||
Topics: []string{shared.FlopKickSignature},
|
||||
StartingBlockNumber: 0,
|
||||
|
||||
@@ -19,7 +19,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
|
||||
"github.com/vulcanize/vulcanizedb/pkg/geth"
|
||||
@@ -27,17 +26,17 @@ import (
|
||||
)
|
||||
|
||||
type Converter interface {
|
||||
ToEntities(contractAddress, contractAbi string, ethLogs []types.Log) ([]Entity, error)
|
||||
ToEntities(contractAbi string, ethLogs []types.Log) ([]Entity, error)
|
||||
ToModels(entities []Entity) ([]Model, error)
|
||||
}
|
||||
|
||||
type FlopKickConverter struct{}
|
||||
|
||||
func (FlopKickConverter) ToEntities(contractAddress, contractAbi string, ethLogs []types.Log) ([]Entity, error) {
|
||||
func (FlopKickConverter) ToEntities(contractAbi string, ethLogs []types.Log) ([]Entity, error) {
|
||||
var results []Entity
|
||||
for _, ethLog := range ethLogs {
|
||||
entity := Entity{}
|
||||
address := common.HexToAddress(contractAddress)
|
||||
address := ethLog.Address
|
||||
abi, err := geth.ParseAbi(contractAbi)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -30,7 +30,7 @@ var _ = Describe("FlopKick Converter", func() {
|
||||
Describe("ToEntities", func() {
|
||||
It("converts a log to a FlopKick entity", func() {
|
||||
converter := flop_kick.FlopKickConverter{}
|
||||
entities, err := converter.ToEntities(shared.FlopperContractAddress, shared.FlopperABI, []types.Log{test_data.FlopKickLog})
|
||||
entities, err := converter.ToEntities(shared.FlopperABI, []types.Log{test_data.FlopKickLog})
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
entity := entities[0]
|
||||
@@ -45,7 +45,7 @@ var _ = Describe("FlopKick Converter", func() {
|
||||
|
||||
It("returns an error if converting the log to an entity fails", func() {
|
||||
converter := flop_kick.FlopKickConverter{}
|
||||
entities, err := converter.ToEntities(shared.FlopperContractAddress, "error abi", []types.Log{test_data.FlopKickLog})
|
||||
entities, err := converter.ToEntities("error abi", []types.Log{test_data.FlopKickLog})
|
||||
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(entities).To(BeNil())
|
||||
|
||||
@@ -51,7 +51,7 @@ func (t Transformer) Execute() error {
|
||||
|
||||
for _, header := range headers {
|
||||
topics := [][]common.Hash{{common.HexToHash(shared.FlopKickSignature)}}
|
||||
matchingLogs, err := t.Fetcher.FetchLogs(config.ContractAddress, topics, header.BlockNumber)
|
||||
matchingLogs, err := t.Fetcher.FetchLogs(config.ContractAddresses, topics, header.BlockNumber)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -62,7 +62,7 @@ func (t Transformer) Execute() error {
|
||||
}
|
||||
}
|
||||
|
||||
entities, err := t.Converter.ToEntities(config.ContractAddress, config.ContractAbi, matchingLogs)
|
||||
entities, err := t.Converter.ToEntities(config.ContractAbi, matchingLogs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ var _ = Describe("FlopKick Transformer", func() {
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(fetcher.FetchedBlocks).To(Equal([]int64{headerOne.BlockNumber, headerTwo.BlockNumber}))
|
||||
Expect(fetcher.FetchedContractAddress).To(Equal(flop_kick.Config.ContractAddress))
|
||||
Expect(fetcher.FetchedContractAddresses).To(Equal([][]string{flop_kick.Config.ContractAddresses, flop_kick.Config.ContractAddresses}))
|
||||
Expect(fetcher.FetchedTopics).To(Equal([][]common.Hash{{common.HexToHash(shared.FlopKickSignature)}}))
|
||||
})
|
||||
|
||||
@@ -154,7 +154,7 @@ var _ = Describe("FlopKick Transformer", func() {
|
||||
err := transformer.Execute()
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(converter.PassedContractAddress).To(Equal(flop_kick.Config.ContractAddress))
|
||||
Expect(converter.PassedContractAddresses).To(Equal(flop_kick.Config.ContractAddresses))
|
||||
Expect(converter.PassedContractABI).To(Equal(flop_kick.Config.ContractAbi))
|
||||
Expect(converter.PassedLogs).To(Equal([]types.Log{test_data.FlopKickLog}))
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user