- If a header was marked as checked before a transformer was added to
the watcher, mark all headers since the new transformer's starting
block number as unchecked.
- If processing a new diff for a row that already exists in the DB,
ignore the error without logging or queueing
- If processing a queued diff for a row that already exists, remove
it from the queue
- Replaces directly reading from a CSV
- Simplifies testing
- Should hopefully make it easier to plug in other sources for storage
diffs (e.g. differently formatted CSVs, JSON RPC, etc)
migrations; new test showing it is working with external transformers runs
properly when migrations were manually performed but still need
to test automated migration management
* update transformer to able to recheck headers
* put cap on rechecking header
* integration test for recheck headers
* use enum for recheck headers param; make recheck cap configurable
* update integration tests with new test config
* update omni pkg with new recheck header column type
* update migration with new migration tool and final tweaks needed to accommodate changes in omni pkg
- Continuously parse storage diffs CSV data to read Pit contract state
- Convert ilks in database to raw bytes32 value for use in generating
storage keys dynamically
- Persist storage diffs with block number and hash for validation
* Updated loading config from /Users/konstantinzolotarev/.vulcanizedb for addreses
* Updated contract addresses loading from env variables.
* Implement getter chain for addresses, configs and transformers
Solves the issue with declaring stuff as vars when the environment file hasn't been loaded yet. Instead, this data is fetched dynamically when the root commands are called.
* Update test data to use constant Kovan addresses
* Decouple integration tests from config file IO
* Add ABI to environment file, convert getter chains for related values
* Decouple tests suites from ABI config file IO
* Add startingBlock to environment and implement getter chain
* Exit when called without config file
* Add missing deployment blocks to staging.toml
* Remove comment
execution cycles and fixing test db tear down so that it drops
checked_headers table instead of individual columns (droping columns
only hides them, they remain in memory and continue to contribute to the
1600 column limit which causes us to eventually exceed it)
collected from watched events; 'MissingMethodsCheckedEventsIntersection'
method to find headers which have been checked for each event of
interest but methods have not yet been polled at that header; tests for
new features; travis ci go version 1.9 -> 1.11 ; consolidate omniWatcher and lightOmniWatcher into single command with light as default
towards generic method polling and reposito;y; config settings to
filterevents/methods by account address; refactoring some stuff out of
repo and into converter; remove fetcher and instead call
blockchain's FetchContractData directly; finishing tests
- Delete header on conflict to prompt data refresh (cascade deletes all
data associated with that block)
- Derive header hash from rpc payload rather than computing it from data
(prevents hash mismatch between blockchain and cache)
- 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)
- starting with the totalSupply function
- sets contract config on transformer by passing it into the transformer
initializer
- handles block records with the same number for different nodes for both creating token_supply records, and finding missing blocks
* Add DB migrations for flog
* Add Vow addresses and constants
* Add err logging to ABI signature getter, test for flog sig
* Add flog transformer
* Add tests+data for flog transformer
* Prepend DB tables and columns with vow_
* Panic on failure to get method sig
* Add getSignatures command for list of signatures in constants
* Update VatTune converter's formatting of addresses
and added an integration test
* Move VatTune and PriceFeeds integration tests to a common suite
* Update VatGrab converter for address format
* Update frob converter to fix urn and ilk formatting/decoding
* Update formatting
* Update make test command and add integrationtest command
* Add integration test to travis build
* Update creating headers in integration tests to include Raw and Timestamp fields
* Add vat_move transformer base
* Add vat_move migrations
* Add test data for vat_move
* Add vat_move transformer to initialisers
* Add numeric cast to psql insert of Rad
* Add new db schema
* Dependency update
* Expand abbreviation in repository
* Add test suite for vat_move
* Add header checking to transformer and mock repository
* Remove trailing zero in test data
* Fix minor mishaps
* Go fmt nitpicking
* Refactoring in tests
* Add tests covering checked headers stuff (and fix revealed bugs)
* go fmt fixes
* Implement batching behaviour of transformer
* Small fixes after review
* Go fmt
* VatHeal Converter
* Add VatHeal repository
* Add VatHeal transformer
* Add VatHeal to continuousLogSync command
* Mark vat_init_checked as true when creating vat init records
* Update urn and v converting
* Return error if Repository.MarkCheckedHeader fails
* Add deleting vat heal from test cleanup method
- 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
* 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)
- starting with the totalSupply function
- sets contract config on transformer by passing it into the transformer
initializer
- handles block records with the same number for different nodes for both creating token_supply records, and finding missing blocks
= 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
* 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)
* 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