updates for light sync transactions

This commit is contained in:
Rob Mulholand
2019-03-28 14:31:17 -05:00
parent 79e011aad2
commit 54d46638a8
39 changed files with 769 additions and 256 deletions
+6 -5
View File
@@ -29,6 +29,7 @@ import (
)
var (
FakeAddress = common.HexToAddress("0x1234567890abcdef")
FakeError = errors.New("failed")
FakeHash = common.BytesToHash([]byte{1, 2, 3, 4, 5})
fakeTimestamp = int64(111111111)
@@ -53,8 +54,8 @@ func GetFakeHeader(blockNumber int64) core.Header {
var fakeTransaction types.Transaction
var rawTransaction bytes.Buffer
var _ = fakeTransaction.EncodeRLP(&rawTransaction)
var FakeTransaction = core.Transaction{
Data: "",
var FakeTransaction = core.TransactionModel{
Data: []byte{},
From: "",
GasLimit: 0,
GasPrice: 0,
@@ -67,15 +68,15 @@ var FakeTransaction = core.Transaction{
Value: "0",
}
func GetFakeTransaction(hash string, receipt core.Receipt) core.Transaction {
func GetFakeTransaction(hash string, receipt core.Receipt) core.TransactionModel {
gethTransaction := types.Transaction{}
var raw bytes.Buffer
err := gethTransaction.EncodeRLP(&raw)
if err != nil {
panic("failed to marshal transaction creating test fake")
}
return core.Transaction{
Data: "",
return core.TransactionModel{
Data: []byte{},
From: "",
GasLimit: 0,
GasPrice: 0,
+11
View File
@@ -17,6 +17,7 @@
package fakes
import (
"github.com/ethereum/go-ethereum/common"
"math/big"
"github.com/ethereum/go-ethereum"
@@ -35,11 +36,15 @@ type MockBlockChain struct {
fetchContractDataPassedResult interface{}
fetchContractDataPassedBlockNumber int64
getBlockByNumberErr error
GetTransactionsCalled bool
GetTransactionsError error
GetTransactionsPassedHashes []common.Hash
logQuery ethereum.FilterQuery
logQueryErr error
logQueryReturnLogs []types.Log
lastBlock *big.Int
node core.Node
Transactions []core.TransactionModel
}
func NewMockBlockChain() *MockBlockChain {
@@ -104,6 +109,12 @@ func (chain *MockBlockChain) GetLogs(contract core.Contract, startingBlockNumber
return []core.Log{}, nil
}
func (chain *MockBlockChain) GetTransactions(transactionHashes []common.Hash) ([]core.TransactionModel, error) {
chain.GetTransactionsCalled = true
chain.GetTransactionsPassedHashes = transactionHashes
return chain.Transactions, chain.GetTransactionsError
}
func (chain *MockBlockChain) CallContract(contractHash string, input []byte, blockNumber *big.Int) ([]byte, error) {
return []byte{}, nil
}
+5 -2
View File
@@ -27,6 +27,8 @@ type MockHeaderRepository struct {
createOrUpdateHeaderErr error
createOrUpdateHeaderPassedBlockNumbers []int64
createOrUpdateHeaderReturnID int64
CreateTransactionCalled bool
CreateTransactionError error
getHeaderError error
getHeaderReturnBlockHash string
missingBlockNumbers []int64
@@ -56,8 +58,9 @@ func (repository *MockHeaderRepository) CreateOrUpdateHeader(header core.Header)
return repository.createOrUpdateHeaderReturnID, repository.createOrUpdateHeaderErr
}
func (repository *MockHeaderRepository) CreateTransaction(headerID int64, transaction core.Transaction) error {
panic("implement me")
func (repository *MockHeaderRepository) CreateTransaction(headerID int64, transaction core.TransactionModel) error {
repository.CreateTransactionCalled = true
return repository.CreateTransactionError
}
func (repository *MockHeaderRepository) GetHeader(blockNumber int64) (core.Header, error) {
+13 -22
View File
@@ -18,39 +18,30 @@ package fakes
import (
"github.com/ethereum/go-ethereum/core/types"
. "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/pkg/core"
)
type MockTransactionConverter struct {
convertTransactionsToCoreCalled bool
convertTransactionsToCorePassedBlock *types.Block
convertTransactionsToCoreReturnTransactions []core.Transaction
convertTransactionsToCoreReturnError error
ConvertHeaderTransactionIndexToIntCalled bool
ConvertBlockTransactionsToCoreCalled bool
ConvertBlockTransactionsToCorePassedBlock *types.Block
}
func NewMockTransactionConverter() *MockTransactionConverter {
return &MockTransactionConverter{
convertTransactionsToCoreCalled: false,
convertTransactionsToCorePassedBlock: nil,
convertTransactionsToCoreReturnTransactions: nil,
convertTransactionsToCoreReturnError: nil,
ConvertHeaderTransactionIndexToIntCalled: false,
ConvertBlockTransactionsToCoreCalled: false,
ConvertBlockTransactionsToCorePassedBlock: nil,
}
}
func (mtc *MockTransactionConverter) SetConvertTransactionsToCoreReturnVals(transactions []core.Transaction, err error) {
mtc.convertTransactionsToCoreReturnTransactions = transactions
mtc.convertTransactionsToCoreReturnError = err
func (converter *MockTransactionConverter) ConvertBlockTransactionsToCore(gethBlock *types.Block) ([]core.TransactionModel, error) {
converter.ConvertBlockTransactionsToCoreCalled = true
converter.ConvertBlockTransactionsToCorePassedBlock = gethBlock
return []core.TransactionModel{}, nil
}
func (mtc *MockTransactionConverter) ConvertTransactionsToCore(gethBlock *types.Block) ([]core.Transaction, error) {
mtc.convertTransactionsToCoreCalled = true
mtc.convertTransactionsToCorePassedBlock = gethBlock
return mtc.convertTransactionsToCoreReturnTransactions, mtc.convertTransactionsToCoreReturnError
}
func (mtc *MockTransactionConverter) AssertConvertTransactionsToCoreCalledWith(gethBlock *types.Block) {
Expect(mtc.convertTransactionsToCoreCalled).To(BeTrue())
Expect(mtc.convertTransactionsToCorePassedBlock).To(Equal(gethBlock))
func (converter *MockTransactionConverter) ConvertRpcTransactionsToModels(transactions []core.RpcTransaction) ([]core.TransactionModel, error) {
converter.ConvertHeaderTransactionIndexToIntCalled = true
return nil, nil
}
+13
View File
@@ -0,0 +1,13 @@
package fakes
import "github.com/ethereum/go-ethereum/core/types"
type MockTransactionSyncer struct {
SyncTransactionsCalled bool
SyncTransactionsError error
}
func (syncer *MockTransactionSyncer) SyncTransactions(headerID int64, logs []types.Log) error {
syncer.SyncTransactionsCalled = true
return syncer.SyncTransactionsError
}