- 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
- currently not validating price feeds if the underlying header already exists
and is valid, since price feeds should have been added when initial header
was added
- removes assertions against data with timestamps to facilitate running
the tests against a freshly setup local Ganache instance
- also applies a few `go vet` and `go fmt` changes
* Move flip kick files pkg/transformers/flip_kick
* Consolidate test database setup
* Pull ganache ipcPath from config
* Update README to include info about using a Ganache chain
- Migrate various mocks of core namespaces to shared version in `fakes` pkg
- Err on the side of making test doubles less sophisticated
- Don't pull over mocks of namespaces that are only used in example code
- Only syncs block headers (excludes block bodies, transactions, receipts, and logs)
- Modifies validation window to include the most recent block
- Isolates validation window to the variable defined in the cmd directory (blocks
have a separate variable defined in the block_repository for determining when
to set a block as final)
- Previously, a block was treated as missing if there was a number in
the given range for which there existing a block that did not match
the node's fingerprint. This meant that in a case where we have a block
that does not match the node's fingerprint and also one that does match,
the block would be treated as missing. This led to errors being thrown
when attempting to add a block that already exists.
- These changes treat a block as missing only if we do not already have
a block that matches the number and node fingerprint.
= Add eth_node_fingerprint to block that can be imitated by both hot and cold imports
- Only sync missing blocks (blocks that are missing or don't share a fingerprint) on cold import
- Set block is_final status after import
- Allows us to fetch receipts by block and persist even when
associated transaction is unknown. (The associated transaction
can still be derived from the tx_hash column at query time, but
is an expensive operation to require for inserts).
* Separate Repository into multiple Repositories
* Use struct scan for transactions
* Use struct scan for blocks
* Remove unused block repo methods
* Update naming
* Rename / Cleanup repository related fields
* Rename geth package structs to not be prefaced with package name
* No longer need to dump schema since Travis uses migrate
* Rearrange history package
* Removed double request for receipt from block rewards
* Remove Listener + Observers and Replace w/ Polling Head
* Potential Short term Issue w/ Infura (ignore these tests for now)
* Conversion between Geth Receipt and core.Receipt
* Add receipt to DB
* Insert receipts with transactions
* Update Travis CI to use dep for dependencies
* Add block categorization (is_final=)
* Add godo task for vulcanizeDB (Example of how everything could work together)
* Add unique constraint on block_number and node
* Add index on block_id for transactions_table
* Add node_id index on blocks table
* Sort transactions returned from FindBlock by tx_hash
* lowercase tx_to, tx_from like etherscan
* Update Block w/ newest Block
* Add cascading delete to blocks and transactions tables
* Add handling for new conflicting blocks
* Command line version of sliding window n behind HEAD
* The command populates up to the highest known block number
* The anticipated use case is that the listener will be running
in parallel to the populateBlocks command
* This will mean that the listener is responsible for picking up
new blocks, and the populateBlocks command is reposible for
historical blocks
* Reformat SQL statements