Refactoring

* Move flip kick files pkg/transformers/flip_kick

* Consolidate test database setup

* Pull ganache ipcPath from config

* Update README to include info about using a Ganache chain
This commit is contained in:
Elizabeth 2018-08-07 15:17:29 -05:00 committed by GitHub
parent c617cd9c9d
commit b37324bf3d
257 changed files with 188 additions and 173 deletions

View File

@ -18,7 +18,7 @@ before_install:
before_script: before_script:
- sudo -u postgres createdb vulcanize_private - sudo -u postgres createdb vulcanize_private
- make migrate NAME=vulcanize_private - make migrate NAME=vulcanize_private
- bash ./libraries/maker/start_test_chain.sh - bash ./pkg/transformers/start_test_chain.sh
script: script:
- make test - make test
@ -27,4 +27,4 @@ notifications:
email: false email: false
after_script: after_script:
- bash ./libraries/maker/stop_test_chain.sh - bash ./pkg/transformers/stop_test_chain.sh

View File

@ -51,7 +51,8 @@ Vulcanize DB is a set of tools that make it easier for developers to write appli
- Linux: `$HOME/.ethereum/geth/chaindata` - Linux: `$HOME/.ethereum/geth/chaindata`
- `levelDbPath` is irrelevant (and `coldImport` is currently unavailable) if only running parity. - `levelDbPath` is irrelevant (and `coldImport` is currently unavailable) if only running parity.
- See `environments/infura.toml` to configure commands to run against infura, if a local node is unavailable - See `environments/infura.toml` to configure commands to run against infura, if a local node is unavailable.
- Copy `environments/local.toml.example` to `environments/local.toml` to configure commands to run against a local node such as [Ganache](https://truffleframework.com/ganache) or [ganache-cli](https://github.com/trufflesuite/ganache-clihttps://github.com/trufflesuite/ganache-cli).
## Start syncing with postgres ## Start syncing with postgres
Syncs VulcanizeDB with the configured Ethereum node, populating blocks, transactions, receipts, and logs. Syncs VulcanizeDB with the configured Ethereum node, populating blocks, transactions, receipts, and logs.

View File

@ -15,17 +15,19 @@
package cmd package cmd
import ( import (
"log"
"github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/rpc" "github.com/ethereum/go-ethereum/rpc"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block"
"github.com/vulcanize/vulcanizedb/libraries/shared" "github.com/vulcanize/vulcanizedb/libraries/shared"
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres" "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
"github.com/vulcanize/vulcanizedb/pkg/geth" "github.com/vulcanize/vulcanizedb/pkg/geth"
"github.com/vulcanize/vulcanizedb/pkg/geth/client" "github.com/vulcanize/vulcanizedb/pkg/geth/client"
vRpc "github.com/vulcanize/vulcanizedb/pkg/geth/converters/rpc" vRpc "github.com/vulcanize/vulcanizedb/pkg/geth/converters/rpc"
"github.com/vulcanize/vulcanizedb/pkg/geth/node" "github.com/vulcanize/vulcanizedb/pkg/geth/node"
"log" "github.com/vulcanize/vulcanizedb/pkg/transformers"
) )
// backfillAuctionLogsCmd represents the backfillAuctionLogs command // backfillAuctionLogsCmd represents the backfillAuctionLogs command
@ -67,7 +69,7 @@ func backfillAuctionLogs() {
Blockchain: blockChain, Blockchain: blockChain,
} }
watcher.AddTransformers(every_block.TransformerInitializers()) watcher.AddTransformers(transformers.TransformerInitializers())
watcher.Execute() watcher.Execute()
} }

View File

@ -4,4 +4,4 @@ hostname = "localhost"
port = 5432 port = 5432
[client] [client]
ipcPath = "http://127.0.0.1:7546" ipcPath = "http://127.0.0.1:7545"

View File

@ -4,4 +4,4 @@ hostname = "localhost"
port = 5432 port = 5432
[client] [client]
ipcPath = "test_data_dir/geth.ipc" ipcPath = "http://127.0.0.1:7545"

View File

@ -24,10 +24,10 @@ import (
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres" "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres/repositories" "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres/repositories"
"github.com/vulcanize/vulcanizedb/pkg/fakes" "github.com/vulcanize/vulcanizedb/pkg/fakes"
"github.com/vulcanize/vulcanizedb/pkg/test_helpers"
"github.com/vulcanize/vulcanizedb/examples/erc20_test_helpers" "github.com/vulcanize/vulcanizedb/examples/erc20_test_helpers"
"math/big" "math/big"
"strconv" "strconv"
"github.com/vulcanize/vulcanizedb/test_config"
) )
func setLastBlockOnChain(blockChain *fakes.MockBlockChain, blockNumber int64) { func setLastBlockOnChain(blockChain *fakes.MockBlockChain, blockNumber int64) {
@ -48,7 +48,9 @@ var _ = Describe("Everyblock transformers", func() {
blockChain = fakes.NewMockBlockChain() blockChain = fakes.NewMockBlockChain()
blockNumber = erc20_watcher.DaiConfig.FirstBlock blockNumber = erc20_watcher.DaiConfig.FirstBlock
lastBlockNumber := blockNumber + 1 lastBlockNumber := blockNumber + 1
db = test_helpers.CreateNewDatabase() node := test_config.NewTestNode()
db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
setLastBlockOnChain(blockChain, lastBlockNumber) setLastBlockOnChain(blockChain, lastBlockNumber)
blockRepository := repositories.NewBlockRepository(db) blockRepository := repositories.NewBlockRepository(db)

View File

@ -24,7 +24,6 @@ import (
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres/repositories" "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres/repositories"
"github.com/vulcanize/vulcanizedb/test_config" "github.com/vulcanize/vulcanizedb/test_config"
"math/rand" "math/rand"
"github.com/vulcanize/vulcanizedb/pkg/test_helpers"
"github.com/vulcanize/vulcanizedb/examples/erc20_test_helpers" "github.com/vulcanize/vulcanizedb/examples/erc20_test_helpers"
) )
@ -37,14 +36,13 @@ var _ = Describe("ERC20 Token Repository", func() {
testAddress := "abc" testAddress := "abc"
BeforeEach(func() { BeforeEach(func() {
db = test_helpers.CreateNewDatabase() node := test_config.NewTestNode()
db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repository = every_block.TokenSupplyRepository{DB: db} repository = every_block.TokenSupplyRepository{DB: db}
_, err := db.Query(`DELETE FROM token_supply`)
Expect(err).NotTo(HaveOccurred())
blockRepository = *repositories.NewBlockRepository(db) blockRepository = *repositories.NewBlockRepository(db)
blockNumber = rand.Int63() blockNumber = rand.Int63()
blockId = test_helpers.CreateBlock(blockNumber, blockRepository) blockId = test_config.NewTestBlock(blockNumber, blockRepository)
}) })
Describe("Create", func() { Describe("Create", func() {
@ -103,7 +101,7 @@ var _ = Describe("ERC20 Token Repository", func() {
//create another block with the same number on node2 //create another block with the same number on node2
node2BlockRepo = repositories.NewBlockRepository(node2DB) node2BlockRepo = repositories.NewBlockRepository(node2DB)
node2BlockId = test_helpers.CreateBlock(blockNumber, *node2BlockRepo) node2BlockId = test_config.NewTestBlock(blockNumber, *node2BlockRepo)
tokenSupply = supplyModel(blockNumber, "abc", "100") tokenSupply = supplyModel(blockNumber, "abc", "100")
node2TokenSupplyRepo = every_block.TokenSupplyRepository{DB: node2DB} node2TokenSupplyRepo = every_block.TokenSupplyRepository{DB: node2DB}
@ -140,7 +138,7 @@ var _ = Describe("ERC20 Token Repository", func() {
createTokenSupplyFor(repository, blockNumber) createTokenSupplyFor(repository, blockNumber)
newBlockNumber := blockNumber + 1 newBlockNumber := blockNumber + 1
test_helpers.CreateBlock(newBlockNumber, blockRepository) test_config.NewTestBlock(newBlockNumber, blockRepository)
blocks, err := repository.MissingBlocks(blockNumber, newBlockNumber) blocks, err := repository.MissingBlocks(blockNumber, newBlockNumber)
Expect(blocks).To(ConsistOf(newBlockNumber)) Expect(blocks).To(ConsistOf(newBlockNumber))
@ -149,7 +147,7 @@ var _ = Describe("ERC20 Token Repository", func() {
It("only returns blocks within the given range", func() { It("only returns blocks within the given range", func() {
newBlockNumber := blockNumber + 1 newBlockNumber := blockNumber + 1
test_helpers.CreateBlock(newBlockNumber, blockRepository) test_config.NewTestBlock(newBlockNumber, blockRepository)
blocks, err := repository.MissingBlocks(blockNumber, blockNumber) blocks, err := repository.MissingBlocks(blockNumber, blockNumber)
Expect(blocks).NotTo(ConsistOf(newBlockNumber)) Expect(blocks).NotTo(ConsistOf(newBlockNumber))
@ -204,5 +202,5 @@ func createDbForAnotherNode() *postgres.DB {
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9", ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
} }
return test_config.NewTestDBWithoutDeletingRecords(anotherNode) return test_config.NewTestDB(anotherNode)
} }

View File

@ -1,19 +0,0 @@
package every_block_test
import (
"io/ioutil"
"log"
"testing"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
func TestEveryBlock(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "EveryBlock Suite")
}
var _ = BeforeSuite(func() {
log.SetOutput(ioutil.Discard)
})

View File

@ -76,6 +76,7 @@ var _ = Describe("Postgres DB", func() {
} }
node := core.Node{GenesisBlock: "GENESIS", NetworkID: 1, ID: "x123", ClientName: "geth"} node := core.Node{GenesisBlock: "GENESIS", NetworkID: 1, ID: "x123", ClientName: "geth"}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
blocksRepository := repositories.NewBlockRepository(db) blocksRepository := repositories.NewBlockRepository(db)
_, err1 := blocksRepository.CreateOrUpdateBlock(badBlock) _, err1 := blocksRepository.CreateOrUpdateBlock(badBlock)

View File

@ -26,6 +26,7 @@ var _ = Describe("Saving blocks", func() {
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9", ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
} }
db = test_config.NewTestDB(node) db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
blockRepository = repositories.NewBlockRepository(db) blockRepository = repositories.NewBlockRepository(db)
}) })
@ -42,6 +43,7 @@ var _ = Describe("Saving blocks", func() {
ClientName: "Geth", ClientName: "Geth",
} }
dbTwo := test_config.NewTestDB(nodeTwo) dbTwo := test_config.NewTestDB(nodeTwo)
test_config.CleanTestDB(dbTwo)
repositoryTwo := repositories.NewBlockRepository(dbTwo) repositoryTwo := repositories.NewBlockRepository(dbTwo)
_, err := repositoryTwo.GetBlock(123) _, err := repositoryTwo.GetBlock(123)
@ -168,6 +170,7 @@ var _ = Describe("Saving blocks", func() {
NetworkID: 1, NetworkID: 1,
} }
dbTwo := test_config.NewTestDB(nodeTwo) dbTwo := test_config.NewTestDB(nodeTwo)
test_config.CleanTestDB(dbTwo)
repositoryTwo := repositories.NewBlockRepository(dbTwo) repositoryTwo := repositories.NewBlockRepository(dbTwo)
blockRepository.CreateOrUpdateBlock(blockOne) blockRepository.CreateOrUpdateBlock(blockOne)

View File

@ -25,6 +25,7 @@ var _ = Describe("Creating contracts", func() {
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9", ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
} }
db = test_config.NewTestDB(node) db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
contractRepository = repositories.ContractRepository{DB: db} contractRepository = repositories.ContractRepository{DB: db}
}) })

View File

@ -17,6 +17,7 @@ var _ = Describe("Block header repository", func() {
It("adds a header", func() { It("adds a header", func() {
node := core.Node{} node := core.Node{}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
header := core.Header{ header := core.Header{
BlockNumber: 100, BlockNumber: 100,
@ -38,6 +39,7 @@ var _ = Describe("Block header repository", func() {
It("adds node data to header", func() { It("adds node data to header", func() {
node := core.Node{ID: "EthNodeFingerprint"} node := core.Node{ID: "EthNodeFingerprint"}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
header := core.Header{BlockNumber: 100} header := core.Header{BlockNumber: 100}
@ -57,6 +59,7 @@ var _ = Describe("Block header repository", func() {
It("does not duplicate headers", func() { It("does not duplicate headers", func() {
node := core.Node{} node := core.Node{}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
header := core.Header{ header := core.Header{
BlockNumber: 100, BlockNumber: 100,
@ -79,6 +82,7 @@ var _ = Describe("Block header repository", func() {
It("replaces header if hash is different", func() { It("replaces header if hash is different", func() {
node := core.Node{} node := core.Node{}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
header := core.Header{ header := core.Header{
BlockNumber: 100, BlockNumber: 100,
@ -106,6 +110,7 @@ var _ = Describe("Block header repository", func() {
It("does not replace header if node fingerprint is different", func() { It("does not replace header if node fingerprint is different", func() {
node := core.Node{ID: "Fingerprint"} node := core.Node{ID: "Fingerprint"}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
header := core.Header{ header := core.Header{
BlockNumber: 100, BlockNumber: 100,
@ -176,6 +181,7 @@ var _ = Describe("Block header repository", func() {
It("returns header if it exists", func() { It("returns header if it exists", func() {
node := core.Node{} node := core.Node{}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
header := core.Header{ header := core.Header{
BlockNumber: 100, BlockNumber: 100,
@ -194,6 +200,7 @@ var _ = Describe("Block header repository", func() {
It("does not return header for a different node fingerprint", func() { It("does not return header for a different node fingerprint", func() {
node := core.Node{} node := core.Node{}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
header := core.Header{ header := core.Header{
BlockNumber: 100, BlockNumber: 100,
@ -218,6 +225,7 @@ var _ = Describe("Block header repository", func() {
It("returns block numbers for headers not in the database", func() { It("returns block numbers for headers not in the database", func() {
node := core.Node{} node := core.Node{}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
repo.CreateOrUpdateHeader(core.Header{BlockNumber: 1}) repo.CreateOrUpdateHeader(core.Header{BlockNumber: 1})
repo.CreateOrUpdateHeader(core.Header{BlockNumber: 3}) repo.CreateOrUpdateHeader(core.Header{BlockNumber: 3})
@ -231,6 +239,7 @@ var _ = Describe("Block header repository", func() {
It("does not count headers created by a different node fingerprint", func() { It("does not count headers created by a different node fingerprint", func() {
node := core.Node{ID: "NodeFingerprint"} node := core.Node{ID: "NodeFingerprint"}
db := test_config.NewTestDB(node) db := test_config.NewTestDB(node)
test_config.CleanTestDB(db)
repo := repositories.NewHeaderRepository(db) repo := repositories.NewHeaderRepository(db)
repo.CreateOrUpdateHeader(core.Header{BlockNumber: 1}) repo.CreateOrUpdateHeader(core.Header{BlockNumber: 1})
repo.CreateOrUpdateHeader(core.Header{BlockNumber: 3}) repo.CreateOrUpdateHeader(core.Header{BlockNumber: 3})

View File

@ -23,6 +23,7 @@ var _ = Describe("Log Filters Repository", func() {
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9", ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
} }
db = test_config.NewTestDB(node) db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
filterRepository = repositories.FilterRepository{DB: db} filterRepository = repositories.FilterRepository{DB: db}
}) })

View File

@ -28,6 +28,7 @@ var _ = Describe("Logs Repository", func() {
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9", ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
} }
db = test_config.NewTestDB(node) db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
blockRepository = repositories.NewBlockRepository(db) blockRepository = repositories.NewBlockRepository(db)
logsRepository = repositories.LogRepository{DB: db} logsRepository = repositories.LogRepository{DB: db}
receiptRepository = repositories.ReceiptRepository{DB: db} receiptRepository = repositories.ReceiptRepository{DB: db}

View File

@ -24,6 +24,7 @@ var _ = Describe("Receipts Repository", func() {
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9", ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
} }
db = test_config.NewTestDB(node) db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
blockRepository = repositories.NewBlockRepository(db) blockRepository = repositories.NewBlockRepository(db)
logRepository = repositories.LogRepository{DB: db} logRepository = repositories.LogRepository{DB: db}
receiptRepository = repositories.ReceiptRepository{DB: db} receiptRepository = repositories.ReceiptRepository{DB: db}

View File

@ -21,6 +21,7 @@ var _ = Describe("Watched Events Repository", func() {
BeforeEach(func() { BeforeEach(func() {
db = test_config.NewTestDB(core.Node{}) db = test_config.NewTestDB(core.Node{})
test_config.CleanTestDB(db)
blocksRepository = repositories.NewBlockRepository(db) blocksRepository = repositories.NewBlockRepository(db)
filterRepository = repositories.FilterRepository{DB: db} filterRepository = repositories.FilterRepository{DB: db}
logRepository = repositories.LogRepository{DB: db} logRepository = repositories.LogRepository{DB: db}

View File

@ -1,46 +0,0 @@
// Copyright 2018 Vulcanize
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package test_helpers
import (
. "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/pkg/core"
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres/repositories"
"github.com/vulcanize/vulcanizedb/test_config"
)
func CreateNewDatabase() *postgres.DB {
var node core.Node
node = core.Node{
GenesisBlock: "GENESIS",
NetworkID: 1,
ID: "b6f90c0fdd8ec9607aed8ee45c69322e47b7063f0bfb7a29c8ecafab24d0a22d24dd2329b5ee6ed4125a03cb14e57fd584e67f9e53e6c631055cbbd82f080845",
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
}
db := test_config.NewTestDB(node)
_, err := db.Exec(`DELETE FROM logs`)
Expect(err).NotTo(HaveOccurred())
return db
}
func CreateBlock(blockNumber int64, repository repositories.BlockRepository) (blockId int64) {
blockId, err := repository.CreateOrUpdateBlock(core.Block{Number: blockNumber})
Expect(err).NotTo(HaveOccurred())
return blockId
}

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block package flip_kick
type TransformerConfig struct { type TransformerConfig struct {
ContractAddress string ContractAddress string

File diff suppressed because one or more lines are too long

View File

@ -12,17 +12,19 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block package flip_kick
import ( import (
"errors"
"math/big"
"strings"
"time"
"github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/vulcanize/vulcanizedb/pkg/geth" "github.com/vulcanize/vulcanizedb/pkg/geth"
"strings"
"time"
"math/big"
"errors"
) )
type Converter interface { type Converter interface {

View File

@ -12,24 +12,25 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block_test package flip_kick_test
import ( import (
"math/big"
"time"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block" "github.com/vulcanize/vulcanizedb/pkg/transformers/flip_kick"
"github.com/vulcanize/vulcanizedb/libraries/maker/test_data" "github.com/vulcanize/vulcanizedb/pkg/transformers/test_data"
"time"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"math/big"
) )
var _ = Describe("FlipKickEntity Converter", func() { var _ = Describe("FlipKickEntity Converter", func() {
It("converts an Eth Log to and Entity", func() { It("converts an Eth Log to and Entity", func() {
converter := every_block.FlipKickConverter{} converter := flip_kick.FlipKickConverter{}
entity, err := converter.ToEntity(test_data.TemporaryFlipAddress, every_block.FlipperABI, test_data.EthFlipKickLog) entity, err := converter.ToEntity(test_data.TemporaryFlipAddress, flip_kick.FlipperABI, test_data.EthFlipKickLog)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(entity.Id).To(Equal(test_data.FlipKickEntity.Id)) Expect(entity.Id).To(Equal(test_data.FlipKickEntity.Id))
@ -47,14 +48,14 @@ var _ = Describe("FlipKickEntity Converter", func() {
}) })
It("returns an error if converting log to entity fails", func() { It("returns an error if converting log to entity fails", func() {
converter := every_block.FlipKickConverter{} converter := flip_kick.FlipKickConverter{}
_, err := converter.ToEntity(test_data.TemporaryFlipAddress, "error abi", test_data.EthFlipKickLog) _, err := converter.ToEntity(test_data.TemporaryFlipAddress, "error abi", test_data.EthFlipKickLog)
Expect(err).To(HaveOccurred()) Expect(err).To(HaveOccurred())
}) })
It("converts and Entity to a Model", func() { It("converts and Entity to a Model", func() {
converter := every_block.FlipKickConverter{} converter := flip_kick.FlipKickConverter{}
model, err := converter.ToModel(test_data.FlipKickEntity) model, err := converter.ToModel(test_data.FlipKickEntity)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(model).To(Equal(test_data.FlipKickModel)) Expect(model).To(Equal(test_data.FlipKickModel))
@ -65,8 +66,8 @@ var _ = Describe("FlipKickEntity Converter", func() {
emptyByteArrayHex := "0x0000000000000000000000000000000000000000000000000000000000000000" emptyByteArrayHex := "0x0000000000000000000000000000000000000000000000000000000000000000"
emptyString := "" emptyString := ""
emptyTime := time.Unix(0, 0) emptyTime := time.Unix(0, 0)
converter := every_block.FlipKickConverter{} converter := flip_kick.FlipKickConverter{}
emptyEntity := every_block.FlipKickEntity{ emptyEntity := flip_kick.FlipKickEntity{
Id: big.NewInt(1), Id: big.NewInt(1),
Mom: common.Address{}, Mom: common.Address{},
Vat: common.Address{}, Vat: common.Address{},
@ -99,8 +100,8 @@ var _ = Describe("FlipKickEntity Converter", func() {
}) })
It("returns an error of the flip kick event id is nil", func() { It("returns an error of the flip kick event id is nil", func() {
converter := every_block.FlipKickConverter{} converter := flip_kick.FlipKickConverter{}
emptyEntity := every_block.FlipKickEntity{} emptyEntity := flip_kick.FlipKickEntity{}
_, err := converter.ToModel(emptyEntity) _, err := converter.ToModel(emptyEntity)
Expect(err).To(HaveOccurred()) Expect(err).To(HaveOccurred())

View File

@ -12,12 +12,13 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block package flip_kick
import ( import (
"math/big"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"math/big"
) )
type FlipKickEntity struct { type FlipKickEntity struct {

View File

@ -0,0 +1,33 @@
// Copyright 2018 Vulcanize
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package flip_kick
import (
"io/ioutil"
"log"
"testing"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
func TestEveryBlock(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "EveryBlock Suite")
}
var _ = BeforeSuite(func() {
log.SetOutput(ioutil.Discard)
})

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block package flip_kick
import ( import (
"math/big" "math/big"

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block_test package flip_kick_test
import ( import (
"math/big" "math/big"
@ -22,18 +22,18 @@ import (
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block"
"github.com/vulcanize/vulcanizedb/pkg/fakes" "github.com/vulcanize/vulcanizedb/pkg/fakes"
"github.com/vulcanize/vulcanizedb/pkg/transformers/flip_kick"
) )
var _ = Describe("Fetcher", func() { var _ = Describe("Fetcher", func() {
Describe("FetchLogs", func() { Describe("FetchLogs", func() {
var blockChain *fakes.MockBlockChain var blockChain *fakes.MockBlockChain
var fetcher every_block.Fetcher var fetcher flip_kick.Fetcher
BeforeEach(func() { BeforeEach(func() {
blockChain = fakes.NewMockBlockChain() blockChain = fakes.NewMockBlockChain()
fetcher = every_block.Fetcher{Blockchain: blockChain} fetcher = flip_kick.Fetcher{Blockchain: blockChain}
}) })
It("fetches logs based on the given query", func() { It("fetches logs based on the given query", func() {

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block_test package flip_kick_test
import ( import (
"github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind"
@ -21,19 +21,18 @@ import (
"github.com/ethereum/go-ethereum/rpc" "github.com/ethereum/go-ethereum/rpc"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block"
"github.com/vulcanize/vulcanizedb/libraries/maker/test_data"
"github.com/vulcanize/vulcanizedb/pkg/geth" "github.com/vulcanize/vulcanizedb/pkg/geth"
"github.com/vulcanize/vulcanizedb/pkg/geth/client" "github.com/vulcanize/vulcanizedb/pkg/geth/client"
rpc2 "github.com/vulcanize/vulcanizedb/pkg/geth/converters/rpc" rpc2 "github.com/vulcanize/vulcanizedb/pkg/geth/converters/rpc"
"github.com/vulcanize/vulcanizedb/pkg/geth/node" "github.com/vulcanize/vulcanizedb/pkg/geth/node"
"github.com/vulcanize/vulcanizedb/pkg/transformers/flip_kick"
"github.com/vulcanize/vulcanizedb/pkg/transformers/test_data"
"github.com/vulcanize/vulcanizedb/test_config"
) )
var _ = Describe("Integration tests", func() { var _ = Describe("Integration tests", func() {
It("Fetches FlipKickEntity event logs from a local test chain", func() { It("Fetches FlipKickEntity event logs from a local test chain", func() {
ipcPath := "http://127.0.0.1:7545" ipcPath := test_config.TestClient.IPCPath
rawRpcClient, err := rpc.Dial(ipcPath) rawRpcClient, err := rpc.Dial(ipcPath)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
@ -44,8 +43,8 @@ var _ = Describe("Integration tests", func() {
realNode := node.MakeNode(rpcClient) realNode := node.MakeNode(rpcClient)
transactionConverter := rpc2.NewRpcTransactionConverter(ethClient) transactionConverter := rpc2.NewRpcTransactionConverter(ethClient)
realBlockChain := geth.NewBlockChain(blockChainClient, realNode, transactionConverter) realBlockChain := geth.NewBlockChain(blockChainClient, realNode, transactionConverter)
realFetcher := every_block.NewFetcher(realBlockChain) realFetcher := flip_kick.NewFetcher(realBlockChain)
topic0 := common.HexToHash(every_block.FlipKickSignature) topic0 := common.HexToHash(flip_kick.FlipKickSignature)
topics := [][]common.Hash{{topic0}} topics := [][]common.Hash{{topic0}}
result, err := realFetcher.FetchLogs(test_data.TemporaryFlipAddress, topics, int64(10)) result, err := realFetcher.FetchLogs(test_data.TemporaryFlipAddress, topics, int64(10))
@ -62,11 +61,11 @@ var _ = Describe("Integration tests", func() {
It("unpacks an event log", func() { It("unpacks an event log", func() {
address := common.HexToAddress(test_data.TemporaryFlipAddress) address := common.HexToAddress(test_data.TemporaryFlipAddress)
abi, err := geth.ParseAbi(every_block.FlipperABI) abi, err := geth.ParseAbi(flip_kick.FlipperABI)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
contract := bind.NewBoundContract(address, abi, nil, nil, nil) contract := bind.NewBoundContract(address, abi, nil, nil, nil)
entity := &every_block.FlipKickEntity{} entity := &flip_kick.FlipKickEntity{}
var eventLog = test_data.EthFlipKickLog var eventLog = test_data.EthFlipKickLog

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block package flip_kick
import "time" import "time"

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block package flip_kick
import ( import (
"fmt" "fmt"

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block_test package flip_kick_test
import ( import (
"math/rand" "math/rand"
@ -21,25 +21,26 @@ import (
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block"
"github.com/vulcanize/vulcanizedb/libraries/maker/test_data"
"github.com/vulcanize/vulcanizedb/pkg/core" "github.com/vulcanize/vulcanizedb/pkg/core"
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres" "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres/repositories" "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres/repositories"
"github.com/vulcanize/vulcanizedb/pkg/test_helpers" "github.com/vulcanize/vulcanizedb/pkg/transformers/flip_kick"
"github.com/vulcanize/vulcanizedb/pkg/transformers/test_data"
"github.com/vulcanize/vulcanizedb/test_config" "github.com/vulcanize/vulcanizedb/test_config"
) )
var _ = Describe("FlipKick Repository", func() { var _ = Describe("FlipKick Repository", func() {
var db *postgres.DB var db *postgres.DB
var flipKickRepository every_block.FlipKickRepository var flipKickRepository flip_kick.FlipKickRepository
var headerId int64 var headerId int64
var blockNumber int64 var blockNumber int64
var flipKick = test_data.FlipKickModel var flipKick = test_data.FlipKickModel
BeforeEach(func() { BeforeEach(func() {
db = test_helpers.CreateNewDatabase() node := test_config.NewTestNode()
flipKickRepository = every_block.FlipKickRepository{DB: db} db = test_config.NewTestDB(node)
test_config.CleanTestDB(db)
flipKickRepository = flip_kick.FlipKickRepository{DB: db}
blockNumber = rand.Int63() blockNumber = rand.Int63()
headerId = createHeader(db, blockNumber) headerId = createHeader(db, blockNumber)
@ -102,7 +103,7 @@ var _ = Describe("FlipKick Repository", func() {
Describe("When there are multiple nodes", func() { Describe("When there are multiple nodes", func() {
var db2 *postgres.DB var db2 *postgres.DB
var flipKickRepository2 every_block.FlipKickRepository var flipKickRepository2 flip_kick.FlipKickRepository
var headerId2 int64 var headerId2 int64
BeforeEach(func() { BeforeEach(func() {
@ -113,8 +114,8 @@ var _ = Describe("FlipKick Repository", func() {
ID: "node2", ID: "node2",
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9", ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
} }
db2 = test_config.NewTestDBWithoutDeletingRecords(node2) db2 = test_config.NewTestDB(node2)
flipKickRepository2 = every_block.FlipKickRepository{DB: db2} flipKickRepository2 = flip_kick.FlipKickRepository{DB: db2}
headerId2 = createHeader(db2, blockNumber) headerId2 = createHeader(db2, blockNumber)
_, err := db2.Exec(`DELETE from maker.flip_kick;`) _, err := db2.Exec(`DELETE from maker.flip_kick;`)

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block package flip_kick
import ( import (
"errors" "errors"

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package every_block_test package flip_kick_test
import ( import (
"math/rand" "math/rand"
@ -22,18 +22,18 @@ import (
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block"
"github.com/vulcanize/vulcanizedb/libraries/maker/test_data"
"github.com/vulcanize/vulcanizedb/pkg/core" "github.com/vulcanize/vulcanizedb/pkg/core"
"github.com/vulcanize/vulcanizedb/pkg/fakes" "github.com/vulcanize/vulcanizedb/pkg/fakes"
"github.com/vulcanize/vulcanizedb/pkg/transformers/flip_kick"
"github.com/vulcanize/vulcanizedb/pkg/transformers/test_data"
) )
var _ = Describe("FlipKick Transformer", func() { var _ = Describe("FlipKick Transformer", func() {
var transformer every_block.FlipKickTransformer var transformer flip_kick.FlipKickTransformer
var fetcher test_data.MockLogFetcher var fetcher test_data.MockLogFetcher
var converter test_data.MockFlipKickConverter var converter test_data.MockFlipKickConverter
var repository test_data.MockFlipKickRepository var repository test_data.MockFlipKickRepository
var testConfig every_block.TransformerConfig var testConfig flip_kick.TransformerConfig
var blockNumber int64 var blockNumber int64
var headerId int64 var headerId int64
var headers []core.Header var headers []core.Header
@ -43,17 +43,17 @@ var _ = Describe("FlipKick Transformer", func() {
fetcher = test_data.MockLogFetcher{} fetcher = test_data.MockLogFetcher{}
converter = test_data.MockFlipKickConverter{} converter = test_data.MockFlipKickConverter{}
repository = test_data.MockFlipKickRepository{} repository = test_data.MockFlipKickRepository{}
transformer = every_block.FlipKickTransformer{ transformer = flip_kick.FlipKickTransformer{
Fetcher: &fetcher, Fetcher: &fetcher,
Converter: &converter, Converter: &converter,
Repository: &repository, Repository: &repository,
} }
startingBlockNumber := rand.Int63() startingBlockNumber := rand.Int63()
testConfig = every_block.TransformerConfig{ testConfig = flip_kick.TransformerConfig{
ContractAddress: "0x12345", ContractAddress: "0x12345",
ContractAbi: "test abi", ContractAbi: "test abi",
Topics: []string{every_block.FlipKickSignature}, Topics: []string{flip_kick.FlipKickSignature},
StartingBlockNumber: startingBlockNumber, StartingBlockNumber: startingBlockNumber,
EndingBlockNumber: startingBlockNumber + 5, EndingBlockNumber: startingBlockNumber + 5,
} }
@ -75,7 +75,7 @@ var _ = Describe("FlipKick Transformer", func() {
}) })
It("fetches logs with the configured contract and topic(s) for each block", func() { It("fetches logs with the configured contract and topic(s) for each block", func() {
expectedTopics := [][]common.Hash{{common.HexToHash(every_block.FlipKickSignature)}} expectedTopics := [][]common.Hash{{common.HexToHash(flip_kick.FlipKickSignature)}}
err := transformer.Execute() err := transformer.Execute()
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
@ -100,7 +100,7 @@ var _ = Describe("FlipKick Transformer", func() {
Expect(converter.ConverterContract).To(Equal(testConfig.ContractAddress)) Expect(converter.ConverterContract).To(Equal(testConfig.ContractAddress))
Expect(converter.ConverterAbi).To(Equal(testConfig.ContractAbi)) Expect(converter.ConverterAbi).To(Equal(testConfig.ContractAbi))
Expect(converter.LogsToConvert).To(Equal(logs)) Expect(converter.LogsToConvert).To(Equal(logs))
Expect(converter.EntitiesToConvert).To(Equal([]every_block.FlipKickEntity{test_data.FlipKickEntity})) Expect(converter.EntitiesToConvert).To(Equal([]flip_kick.FlipKickEntity{test_data.FlipKickEntity}))
}) })
It("returns an error if converting the geth log fails", func() { It("returns an error if converting the geth log fails", func() {
@ -115,7 +115,7 @@ var _ = Describe("FlipKick Transformer", func() {
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(repository.HeaderIds).To(Equal([]int64{headerId})) Expect(repository.HeaderIds).To(Equal([]int64{headerId}))
Expect(repository.FlipKicksCreated).To(Equal([]every_block.FlipKickModel{test_data.FlipKickModel})) Expect(repository.FlipKicksCreated).To(Equal([]flip_kick.FlipKickModel{test_data.FlipKickModel}))
}) })
It("returns an error if persisting a record fails", func() { It("returns an error if persisting a record fails", func() {

View File

@ -2,7 +2,7 @@
MNEMONIC_PHRASE="whisper ordinary mystery awesome wood fox auction february blind volcano spare soft" MNEMONIC_PHRASE="whisper ordinary mystery awesome wood fox auction february blind volcano spare soft"
PORT=7545 PORT=7545
DATABASE_PATH=libraries/maker/test_data/test_chain/ DATABASE_PATH=pkg/transformers/test_data/test_chain/
echo Starting ganache chain on port $PORT... echo Starting ganache chain on port $PORT...
ganache-cli --port $PORT \ ganache-cli --port $PORT \

View File

@ -20,7 +20,7 @@ import (
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"math/big" "math/big"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block" "github.com/vulcanize/vulcanizedb/pkg/transformers/flip_kick"
"time" "time"
) )
@ -51,7 +51,7 @@ var tab, _ = new(big.Int).SetString(tabString, 10)
var EthFlipKickLog = types.Log{ var EthFlipKickLog = types.Log{
Address: common.HexToAddress(TemporaryFlipAddress), Address: common.HexToAddress(TemporaryFlipAddress),
Topics: []common.Hash{common.HexToHash(every_block.FlipKickSignature)}, Topics: []common.Hash{common.HexToHash(flip_kick.FlipKickSignature)},
Data: hexutil.MustDecode(TemporaryFlipKickData), Data: hexutil.MustDecode(TemporaryFlipKickData),
BlockNumber: uint64(TempBlockNumber), BlockNumber: uint64(TempBlockNumber),
TxHash: common.HexToHash(TemporaryFlipKickTransaction), TxHash: common.HexToHash(TemporaryFlipKickTransaction),
@ -61,7 +61,7 @@ var EthFlipKickLog = types.Log{
Removed: false, Removed: false,
} }
var FlipKickEntity = every_block.FlipKickEntity{ var FlipKickEntity = flip_kick.FlipKickEntity{
Id: id, Id: id,
Mom: common.HexToAddress(mom), Mom: common.HexToAddress(mom),
Vat: common.HexToAddress(vat), Vat: common.HexToAddress(vat),
@ -76,7 +76,7 @@ var FlipKickEntity = every_block.FlipKickEntity{
Tab: tab, Tab: tab,
} }
var FlipKickModel = every_block.FlipKickModel{ var FlipKickModel = flip_kick.FlipKickModel{
Id: idString, Id: idString,
Mom: mom, Mom: mom,
Vat: vat, Vat: vat,
@ -94,5 +94,5 @@ var FlipKickModel = every_block.FlipKickModel{
type FlipKickDBRow struct { type FlipKickDBRow struct {
DbID int64 `db:"db_id"` DbID int64 `db:"db_id"`
HeaderId int64 `db:"header_id"` HeaderId int64 `db:"header_id"`
every_block.FlipKickModel flip_kick.FlipKickModel
} }

View File

@ -18,8 +18,8 @@ import (
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/vulcanize/vulcanizedb/libraries/maker/every_block"
"github.com/vulcanize/vulcanizedb/pkg/core" "github.com/vulcanize/vulcanizedb/pkg/core"
"github.com/vulcanize/vulcanizedb/pkg/transformers/flip_kick"
) )
type MockLogFetcher struct { type MockLogFetcher struct {
@ -50,18 +50,18 @@ type MockFlipKickConverter struct {
ConverterContract string ConverterContract string
ConverterAbi string ConverterAbi string
LogsToConvert []types.Log LogsToConvert []types.Log
EntitiesToConvert []every_block.FlipKickEntity EntitiesToConvert []flip_kick.FlipKickEntity
ConverterError error ConverterError error
} }
func (mfkc *MockFlipKickConverter) ToEntity(contractAddress string, contractAbi string, ethLog types.Log) (*every_block.FlipKickEntity, error) { func (mfkc *MockFlipKickConverter) ToEntity(contractAddress string, contractAbi string, ethLog types.Log) (*flip_kick.FlipKickEntity, error) {
mfkc.ConverterContract = contractAddress mfkc.ConverterContract = contractAddress
mfkc.ConverterAbi = contractAbi mfkc.ConverterAbi = contractAbi
mfkc.LogsToConvert = append(mfkc.LogsToConvert, ethLog) mfkc.LogsToConvert = append(mfkc.LogsToConvert, ethLog)
return &FlipKickEntity, mfkc.ConverterError return &FlipKickEntity, mfkc.ConverterError
} }
func (mfkc *MockFlipKickConverter) ToModel(flipKick every_block.FlipKickEntity) (every_block.FlipKickModel, error) { func (mfkc *MockFlipKickConverter) ToModel(flipKick flip_kick.FlipKickEntity) (flip_kick.FlipKickModel, error) {
mfkc.EntitiesToConvert = append(mfkc.EntitiesToConvert, flipKick) mfkc.EntitiesToConvert = append(mfkc.EntitiesToConvert, flipKick)
return FlipKickModel, nil return FlipKickModel, nil
} }
@ -74,12 +74,12 @@ type MockFlipKickRepository struct {
HeadersToReturn []core.Header HeadersToReturn []core.Header
StartingBlockNumber int64 StartingBlockNumber int64
EndingBlockNumber int64 EndingBlockNumber int64
FlipKicksCreated []every_block.FlipKickModel FlipKicksCreated []flip_kick.FlipKickModel
CreateRecordError error CreateRecordError error
MissingHeadersError error MissingHeadersError error
} }
func (mfkr *MockFlipKickRepository) Create(headerId int64, flipKick every_block.FlipKickModel) error { func (mfkr *MockFlipKickRepository) Create(headerId int64, flipKick flip_kick.FlipKickModel) error {
mfkr.HeaderIds = append(mfkr.HeaderIds, headerId) mfkr.HeaderIds = append(mfkr.HeaderIds, headerId)
mfkr.FlipKicksCreated = append(mfkr.FlipKicksCreated, flipKick) mfkr.FlipKicksCreated = append(mfkr.FlipKicksCreated, flipKick)

Some files were not shown because too many files have changed in this diff Show More