forked from cerc-io/ipld-eth-server
Log checked headers for deal events
- mark header as checked if no matching logs - mark header as checked if all matching logs persisted successfully - batch convert and insert matching logs to enable transactional persist - enable skipping previously checked block headers when restarting a sync
This commit is contained in:
@@ -28,9 +28,9 @@ type MockDealConverter struct {
|
||||
ConverterError error
|
||||
}
|
||||
|
||||
func (c *MockDealConverter) ToModel(ethLog types.Log) (deal.DealModel, error) {
|
||||
c.LogsToConvert = append(c.LogsToConvert, ethLog)
|
||||
return test_data.DealModel, c.ConverterError
|
||||
func (c *MockDealConverter) ToModels(ethLogs []types.Log) ([]deal.DealModel, error) {
|
||||
c.LogsToConvert = append(c.LogsToConvert, ethLogs...)
|
||||
return []deal.DealModel{test_data.DealModel}, c.ConverterError
|
||||
}
|
||||
|
||||
func (c *MockDealConverter) SetConverterError(err error) {
|
||||
|
||||
@@ -15,23 +15,27 @@
|
||||
package deal
|
||||
|
||||
import (
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/deal"
|
||||
)
|
||||
|
||||
type MockDealRepository struct {
|
||||
createError error
|
||||
PassedEndingBlockNumber int64
|
||||
PassedHeaderIDs []int64
|
||||
PassedStartingBlockNumber int64
|
||||
PassedDealModels []deal.DealModel
|
||||
missingHeaders []core.Header
|
||||
missingHeadersErr error
|
||||
createError error
|
||||
PassedEndingBlockNumber int64
|
||||
PassedHeaderIDs []int64
|
||||
PassedStartingBlockNumber int64
|
||||
PassedDealModels []deal.DealModel
|
||||
markHeaderCheckedErr error
|
||||
markHeaderCheckedPassedHeaderID int64
|
||||
missingHeaders []core.Header
|
||||
missingHeadersErr error
|
||||
}
|
||||
|
||||
func (repository *MockDealRepository) Create(headerId int64, deal deal.DealModel) error {
|
||||
func (repository *MockDealRepository) Create(headerId int64, deals []deal.DealModel) error {
|
||||
repository.PassedHeaderIDs = append(repository.PassedHeaderIDs, headerId)
|
||||
repository.PassedDealModels = append(repository.PassedDealModels, deal)
|
||||
repository.PassedDealModels = append(repository.PassedDealModels, deals...)
|
||||
return repository.createError
|
||||
}
|
||||
|
||||
@@ -39,6 +43,10 @@ func (repository *MockDealRepository) SetCreateError(err error) {
|
||||
repository.createError = err
|
||||
}
|
||||
|
||||
func (repository *MockDealRepository) SetMarkHeaderCheckedErr(err error) {
|
||||
repository.markHeaderCheckedErr = err
|
||||
}
|
||||
|
||||
func (repository *MockDealRepository) SetMissingHeadersErr(err error) {
|
||||
repository.missingHeadersErr = err
|
||||
}
|
||||
@@ -47,8 +55,17 @@ func (repository *MockDealRepository) SetMissingHeaders(headers []core.Header) {
|
||||
repository.missingHeaders = headers
|
||||
}
|
||||
|
||||
func (repository *MockDealRepository) MarkHeaderChecked(headerID int64) error {
|
||||
repository.markHeaderCheckedPassedHeaderID = headerID
|
||||
return repository.markHeaderCheckedErr
|
||||
}
|
||||
|
||||
func (repository *MockDealRepository) MissingHeaders(startingBlockNumber, endingBlockNumber int64) ([]core.Header, error) {
|
||||
repository.PassedStartingBlockNumber = startingBlockNumber
|
||||
repository.PassedEndingBlockNumber = endingBlockNumber
|
||||
return repository.missingHeaders, repository.missingHeadersErr
|
||||
}
|
||||
|
||||
func (repository *MockDealRepository) AssertMarkHeaderCheckedCalledWith(headerID int64) {
|
||||
Expect(repository.markHeaderCheckedPassedHeaderID).To(Equal(headerID))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user