forked from cerc-io/ipld-eth-server
Make price feed log persistence atomic per block
- Prevents marking header as checked if only one of several price feed logs is successfully persisted
This commit is contained in:
@@ -22,14 +22,14 @@ import (
|
||||
|
||||
type MockPriceFeedConverter struct {
|
||||
converterErr error
|
||||
PassedLog types.Log
|
||||
PassedLogs []types.Log
|
||||
PassedHeaderID int64
|
||||
}
|
||||
|
||||
func (converter *MockPriceFeedConverter) ToModel(log types.Log, headerID int64) (price_feeds.PriceFeedModel, error) {
|
||||
converter.PassedLog = log
|
||||
func (converter *MockPriceFeedConverter) ToModels(logs []types.Log, headerID int64) ([]price_feeds.PriceFeedModel, error) {
|
||||
converter.PassedLogs = logs
|
||||
converter.PassedHeaderID = headerID
|
||||
return test_data.PriceFeedModel, converter.converterErr
|
||||
return []price_feeds.PriceFeedModel{test_data.PriceFeedModel}, converter.converterErr
|
||||
}
|
||||
|
||||
func (converter *MockPriceFeedConverter) SetConverterErr(e error) {
|
||||
|
||||
@@ -29,7 +29,7 @@ type MockPriceFeedRepository struct {
|
||||
missingHeaders []core.Header
|
||||
missingHeadersErr error
|
||||
passedEndingBlockNumber int64
|
||||
passedModel price_feeds.PriceFeedModel
|
||||
passedModels []price_feeds.PriceFeedModel
|
||||
passedStartingBlockNumber int64
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ func (repository *MockPriceFeedRepository) SetMissingHeaders(headers []core.Head
|
||||
repository.missingHeaders = headers
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) Create(headerID int64, model price_feeds.PriceFeedModel) error {
|
||||
func (repository *MockPriceFeedRepository) Create(headerID int64, models []price_feeds.PriceFeedModel) error {
|
||||
repository.createPassedHeaderID = headerID
|
||||
repository.passedModel = model
|
||||
repository.passedModels = models
|
||||
return repository.createErr
|
||||
}
|
||||
|
||||
@@ -66,9 +66,9 @@ func (repository *MockPriceFeedRepository) MissingHeaders(startingBlockNumber, e
|
||||
return repository.missingHeaders, repository.missingHeadersErr
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) AssertCreateCalledWith(headerID int64, model price_feeds.PriceFeedModel) {
|
||||
func (repository *MockPriceFeedRepository) AssertCreateCalledWith(headerID int64, models []price_feeds.PriceFeedModel) {
|
||||
Expect(repository.createPassedHeaderID).To(Equal(headerID))
|
||||
Expect(repository.passedModel).To(Equal(model))
|
||||
Expect(repository.passedModels).To(Equal(models))
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) AssertMarkHeaderCheckedCalledWith(headerID int64) {
|
||||
|
||||
Reference in New Issue
Block a user