VDB-919 Generalise converter (#152)
* Generalise transformer stack to use InsertionModel * Add tests for event repository * Restrict accepted values in InsertionModel * Add call to repository.SetDB * Improve error propagation/clarity on GetABI() * Remove maker references in example * Please golint * refactor rollback error handling in repository * Cleaner errors in repository, refactor tests
This commit is contained in:
@@ -20,14 +20,12 @@ import (
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/vulcanize/vulcanizedb/libraries/shared/factories/event"
|
||||
"github.com/vulcanize/vulcanizedb/libraries/shared/transformer"
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
||||
type GenericModel struct{}
|
||||
type GenericEntity struct{}
|
||||
|
||||
var startingBlockNumber = rand.Int63()
|
||||
var topic0 = "0x" + randomString(64)
|
||||
|
||||
@@ -44,6 +42,8 @@ var GenericTestLog = func() types.Log {
|
||||
}
|
||||
}
|
||||
|
||||
var GenericModel = event.InsertionModel{}
|
||||
|
||||
var GenericTestConfig = transformer.EventTransformerConfig{
|
||||
TransformerName: "generic-test-transformer",
|
||||
ContractAddresses: []string{fakeAddress().Hex()},
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package test_data
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
. "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"
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
// Create a header sync log to reference in an event, returning inserted header sync log
|
||||
func CreateTestLog(headerID int64, db *postgres.DB) core.HeaderSyncLog {
|
||||
log := types.Log{
|
||||
Address: common.Address{},
|
||||
Topics: nil,
|
||||
Data: nil,
|
||||
BlockNumber: 0,
|
||||
TxHash: common.Hash{},
|
||||
TxIndex: uint(rand.Int31()),
|
||||
BlockHash: common.Hash{},
|
||||
Index: 0,
|
||||
Removed: false,
|
||||
}
|
||||
headerSyncLogRepository := repositories.NewHeaderSyncLogRepository(db)
|
||||
insertLogsErr := headerSyncLogRepository.CreateHeaderSyncLogs(headerID, []types.Log{log})
|
||||
Expect(insertLogsErr).NotTo(HaveOccurred())
|
||||
headerSyncLogs, getLogsErr := headerSyncLogRepository.GetUntransformedHeaderSyncLogs()
|
||||
Expect(getLogsErr).NotTo(HaveOccurred())
|
||||
for _, headerSyncLog := range headerSyncLogs {
|
||||
if headerSyncLog.Log.TxIndex == log.TxIndex {
|
||||
return headerSyncLog
|
||||
}
|
||||
}
|
||||
panic("couldn't find inserted test log")
|
||||
}
|
||||
Reference in New Issue
Block a user