From 9cc9d4d3b6f6ddf615614af715f550ba192d0af7 Mon Sep 17 00:00:00 2001 From: Rob Mulholand Date: Tue, 6 Nov 2018 12:37:39 -0600 Subject: [PATCH] (VDB-95) Transform Flop dent events - Add flopper address to dent config --- pkg/transformers/dent/config.go | 2 +- pkg/transformers/integration_tests/dent.go | 68 ++++++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 pkg/transformers/integration_tests/dent.go diff --git a/pkg/transformers/dent/config.go b/pkg/transformers/dent/config.go index 03b34817..778702a0 100644 --- a/pkg/transformers/dent/config.go +++ b/pkg/transformers/dent/config.go @@ -18,7 +18,7 @@ import "github.com/vulcanize/vulcanizedb/pkg/transformers/shared" var DentConfig = shared.TransformerConfig{ TransformerName: shared.DentLabel, - ContractAddresses: []string{shared.FlipperContractAddress}, + ContractAddresses: []string{shared.FlipperContractAddress, shared.FlopperContractAddress}, ContractAbi: shared.FlipperABI, Topic: shared.DentFunctionSignature, StartingBlockNumber: 0, diff --git a/pkg/transformers/integration_tests/dent.go b/pkg/transformers/integration_tests/dent.go new file mode 100644 index 00000000..9703d308 --- /dev/null +++ b/pkg/transformers/integration_tests/dent.go @@ -0,0 +1,68 @@ +package integration_tests + +import ( + "github.com/ethereum/go-ethereum/ethclient" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/vulcanize/vulcanizedb/pkg/transformers/factories" + + "github.com/vulcanize/vulcanizedb/pkg/core" + "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres" + "github.com/vulcanize/vulcanizedb/pkg/geth/client" + "github.com/vulcanize/vulcanizedb/pkg/transformers/dent" + "github.com/vulcanize/vulcanizedb/pkg/transformers/shared" + "github.com/vulcanize/vulcanizedb/test_config" +) + +var _ = Describe("Dent transformer", func() { + var ( + db *postgres.DB + blockchain core.BlockChain + rpcClient client.RpcClient + err error + ethClient *ethclient.Client + ) + + BeforeEach(func() { + rpcClient, ethClient, err = getClients(ipc) + Expect(err).NotTo(HaveOccurred()) + blockchain, err = getBlockChain(rpcClient, ethClient) + Expect(err).NotTo(HaveOccurred()) + db = test_config.NewTestDB(blockchain.Node()) + test_config.CleanTestDB(db) + }) + + It("persists a flop dent log event", func() { + blockNumber := int64(8955613) + err = persistHeader(db, blockNumber) + Expect(err).NotTo(HaveOccurred()) + + config := dent.DentConfig + config.StartingBlockNumber = blockNumber + config.EndingBlockNumber = blockNumber + + initializer := factories.LogNoteTransformer{ + Config: config, + Converter: &dent.DentConverter{}, + Repository: &dent.DentRepository{}, + Fetcher: &shared.Fetcher{}, + } + transformer := initializer.NewLogNoteTransformer(db, blockchain) + err := transformer.Execute() + Expect(err).NotTo(HaveOccurred()) + + var dbResult []dent.DentModel + err = db.Select(&dbResult, `SELECT bid, bid_id, guy, lot FROM maker.dent`) + Expect(err).NotTo(HaveOccurred()) + + Expect(len(dbResult)).To(Equal(1)) + Expect(dbResult[0].Bid).To(Equal("10000000000000000000000")) + Expect(dbResult[0].BidId).To(Equal("2")) + Expect(dbResult[0].Guy).To(Equal("0x0000d8b4147eDa80Fec7122AE16DA2479Cbd7ffB")) + Expect(dbResult[0].Lot).To(Equal("1000000000000000000000000000")) + }) + + It("persists a flip dent log event", func() { + //TODO: There are currently no Flip.dent events on Kovan + }) +})