forked from cerc-io/ipld-eth-server
Combine price feed transformers
- fetches logs from all three price feeds in one query - assumes eth/usd price feed will be updated to include LogValue event - updates transformers to run separate from header sync
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package price_feeds
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
type MockPriceFeedFetcher struct {
|
||||
passedBlockNumbers []int64
|
||||
returnErr error
|
||||
returnLogs []types.Log
|
||||
}
|
||||
|
||||
func (fetcher *MockPriceFeedFetcher) SetReturnErr(err error) {
|
||||
fetcher.returnErr = err
|
||||
}
|
||||
|
||||
func (fetcher *MockPriceFeedFetcher) SetReturnLogs(logs []types.Log) {
|
||||
fetcher.returnLogs = logs
|
||||
}
|
||||
|
||||
func (fetcher *MockPriceFeedFetcher) FetchLogValues(blockNumber int64) ([]types.Log, error) {
|
||||
fetcher.passedBlockNumbers = append(fetcher.passedBlockNumbers, blockNumber)
|
||||
return fetcher.returnLogs, fetcher.returnErr
|
||||
}
|
||||
|
||||
func (fetcher *MockPriceFeedFetcher) AssertFetchLogValuesCalledWith(blockNumbers []int64) {
|
||||
Expect(fetcher.passedBlockNumbers).To(Equal(blockNumbers))
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package price_feeds
|
||||
|
||||
import (
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/price_feeds"
|
||||
)
|
||||
|
||||
type MockPriceFeedRepository struct {
|
||||
createErr error
|
||||
missingHeaders []core.Header
|
||||
missingHeadersErr error
|
||||
passedEndingBlockNumber int64
|
||||
passedModel price_feeds.PriceFeedModel
|
||||
passedStartingBlockNumber int64
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) SetCreateErr(err error) {
|
||||
repository.createErr = err
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) SetMissingHeadersErr(err error) {
|
||||
repository.missingHeadersErr = err
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) SetMissingHeaders(headers []core.Header) {
|
||||
repository.missingHeaders = headers
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) Create(model price_feeds.PriceFeedModel) error {
|
||||
repository.passedModel = model
|
||||
return repository.createErr
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) MissingHeaders(startingBlockNumber, endingBlockNumber int64) ([]core.Header, error) {
|
||||
repository.passedStartingBlockNumber = startingBlockNumber
|
||||
repository.passedEndingBlockNumber = endingBlockNumber
|
||||
return repository.missingHeaders, repository.missingHeadersErr
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) AssertCreateCalledWith(model price_feeds.PriceFeedModel) {
|
||||
Expect(repository.passedModel).To(Equal(model))
|
||||
}
|
||||
|
||||
func (repository *MockPriceFeedRepository) AssertMissingHeadersCalledwith(startingBlockNumber, endingBlockNumber int64) {
|
||||
Expect(repository.passedStartingBlockNumber).To(Equal(startingBlockNumber))
|
||||
Expect(repository.passedEndingBlockNumber).To(Equal(endingBlockNumber))
|
||||
}
|
||||
Reference in New Issue
Block a user