Rob Mulholand
37e2673a8d
Do nothing on duplicate log insert
...
- Prevents duplicate key constraint violation from blocking the process
from moving forward on restart.
- If header_id, log_idx, and tx_idx are the same, we can safely do
nothing since it's definitely the same log - a reorg would cause the
original header to be replaced with a new ID.
2019-09-23 16:02:07 -05:00
Rob Mulholand
3466a51b4d
Correctly parse uint8 values in contract watcher
...
- calling string(uint8) => insert errors on numeric columns
2019-09-20 21:37:59 -05:00
Rob Mulholand
749db40b96
Parse bytes32 vals in Contract Watcher
2019-09-20 13:48:43 -05:00
Rob Mulholand
f83e996ab8
Update comments in checked headers repository
2019-09-18 21:39:34 -05:00
Rob Mulholand
2b798e00e0
Cap random fake timestamp
2019-09-13 11:20:13 -05:00
Rob Mulholand
3f9b034c4c
Rename checked_logs => watched_logs
...
- We're logging that a given log has been included in any fetch calls
for checked headers, rather than that we have already checked for
that log
2019-09-10 21:22:14 -05:00
Rob Mulholand
13d503b851
Distinguish between missing and unchecked headers
...
- Missing == not in DB
- Unchecked == logs haven't been fetched
2019-09-10 14:39:45 -05:00
Rob Mulholand
ce91b0d9e6
Simplify checked header repository tests
...
- Use assertions instead of comments to document expectations
- Also randomize the fake timestamp in test data
2019-09-10 13:47:43 -05:00
Rob Mulholand
b9f3b9f946
Reference header sync logs address via foreign key
2019-08-28 10:41:34 -05:00
Rob Mulholand
5ac76eee74
Make check_count a column on public.headers
...
- Don't need to maintain it on public.checked_headers if we're not
adding additional columns to that table
2019-08-28 09:50:17 -05:00
Rob Mulholand
666ea1c325
Update checked headers for new transformers
...
- 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.
2019-08-28 09:25:14 -05:00
Rob Mulholand
63dabbb051
Extract and delegate logs concurrently
2019-08-28 09:25:13 -05:00
Rob Mulholand
d496dad33c
Decouple log extraction from transformer delegation
...
- limit missing headers results set to 100 so that extraction doesn't
excessively block delegation
- wrap checked headers functions in repository struct
- move storage repository to factory, to correspond with event
repository path
- remove unused files
- reformat sql
- remove line breaks in imports
2019-08-28 09:25:13 -05:00
Rob Mulholand
cb819fa9a6
Write event logs to database before transforming
...
- enables decoupling event extraction/persistence from transformation
- modifies event transformer, converter, and log chunker to accept
payload that includes internal log database ID with log data
- remove alias for transformer pkg as shared_t
- remove unused mock watcher repository
2019-08-28 09:13:44 -05:00
Rob Mulholand
3693ed905f
Rename logs to full sync logs
...
- Enable creating new table for logs used in event watching based on
header sync
2019-08-28 09:11:06 -05:00
Elizabeth Engelman
edc0bdf668
Address more PR feedback
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
1b3786338f
Address PR feedback
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
58c23c6632
Update Copyrights
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
38f6847ff2
Create a HeaderSyncReceiptRepository
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
7e38764618
Rename ReceiptRepository -> FullSyncReceiptRepository
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
4e40e892d2
Updating header_sync_receipts to have FK reference to addresses
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
bcd6d14fcd
Updating full_sync_receipts to have FK reference to addresses
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
258035833b
Add GetAddressById
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
4b61c87b55
Get or create address record in a transaction
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
1373fe83a1
Pass a db into GetOrCreateAddress
2019-08-23 10:11:37 -05:00
Elizabeth Engelman
b13eefbce7
Add AddressRepository
2019-08-23 10:11:37 -05:00
Rob Mulholand
987abd4b2e
Update Geth to 1.9.0
2019-07-23 15:26:18 -05:00
Andrew J Yao
ee77fc6521
Remove injection of SubCommand for logs
2019-07-23 13:11:20 -07:00
Andrew J Yao
92d153b010
Add subCommand name to log fields
2019-07-23 08:09:57 -07:00
Edvard Hübinette
2c092e8d04
[VDB-751 VDB-754] Bugfix null pointer panic and improve logging ( #119 )
...
* VDB-751 VDB-754 Bugfix null pointer panic and improve logging
* Fix typo
2019-07-18 09:21:40 +02:00
Rob Mulholand
0f95267e84
Use goose library for running plugin migrations
...
- Removes dependency on goose binary existing in plugin execution
environment
2019-06-27 13:58:58 -05:00
Rob Mulholand
f0bcf930f4
Separate tmp migrations dir from home in join
...
- enable separator between home and migrations dir
2019-06-27 13:58:58 -05:00
Rob Mulholand
0558792282
Log error on failure to setup plugin migrations
...
- include specific error
2019-06-27 13:58:58 -05:00
Andrew J Yao
11a65c525c
Adds ability to set log level from toml or CLI args
2019-06-27 11:14:11 -07:00
Elizabeth Engelman
fa03716cb2
Address small PR comments
2019-05-10 11:54:15 -05:00
Elizabeth Engelman
e1a0d894a2
Update blockchain method GetHeaderByNumbers -> GetHeadersByNumbers
2019-05-08 13:42:43 -05:00
Elizabeth Engelman
ba81766f6c
Small spelling fix
2019-05-08 13:42:43 -05:00
Rob Mulholand
76ab914bdc
Add license
2019-05-01 12:32:39 -05:00
Rob Mulholand
2d684c5aec
Extract storage diff fetching behind an interface
...
- 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)
2019-05-01 12:30:36 -05:00
Gabe Laughlin
a344432156
(VDB-560) Rename lightSync to headerSync
2019-05-01 12:12:55 -05:00
Rob Mulholand
3fd6269b78
Don't lookup transactions if no log events
...
- Prevents EOF error on transactions lookup
2019-04-18 09:53:18 -05:00
ana0
964fc8bd22
Merge branch 'staging' into databaseConfig
2019-04-11 14:19:57 -04:00
anon
bd12149594
Database config
2019-04-10 17:56:31 -04:00
Gabe Laughlin
8903b6fb2d
Add timestamp customization for fake header
2019-04-09 17:08:15 -05:00
Ian Norden
9befc76fc6
remove LIMIT 100; method to check continuity of headers returned but doesn't require
...
the set to start at a specific block number; config for
account_transformer; review fixes; update schema
2019-04-05 17:21:59 -05:00
Ian Norden
c1940c3e58
full_sync and light_sync receipt tables and light receipt repository methods and test
2019-04-05 16:36:48 -05:00
Ian Norden
04ad7b7696
Merge pull request #47 from vulcanize/track_uncle_rewards
...
Track uncle rewards + direct balance polling
2019-04-04 15:55:40 -05:00
Ian Norden
5dcf534b2c
review fixes
2019-04-04 15:21:39 -05:00
Ian Norden
72c73c25b7
update vendor dep; constrain to revision of geth with UnpackIntoMap; updates to match
2019-04-03 00:14:02 -05:00
Ian Norden
197f98c93d
going ahead and indexing the entire uncle blocks (one of the issues open on public); finish tests
2019-04-02 14:32:30 -05:00
Ian Norden
fd407825c1
review fixes
2019-04-02 10:10:17 -05:00
Ian Norden
185f4c0e93
adjust block/uncle reward tests and add methods to pkg/geth blockchain and ethclient for direct fetching of eth balances
2019-04-02 10:10:17 -05:00
Ian Norden
9030cff2bd
keep track of who is receiving uncle rewards
2019-04-02 10:10:17 -05:00
Rob Mulholand
f5b32a11b0
Improve transaction syncing test coverage
2019-03-28 14:31:17 -05:00
Rob Mulholand
81dfd12665
Address PR comments
2019-03-28 14:31:17 -05:00
Rob Mulholand
54d46638a8
updates for light sync transactions
2019-03-28 14:31:17 -05:00
Rob Mulholand
79e011aad2
Add light sync transactions table
...
- Foreign key to header instead of block
- Can use same Transaction struct for both
2019-03-28 14:31:17 -05:00
Rob Mulholand
d93006321b
Rename transactions to full_sync_transactions
...
- Table has foreign key to blocks
- Add transaction RLP and transaction index to table
- Enables other tables with standalone transactions or transactions
associated with other data structures (e.g. headers)
2019-03-28 14:31:17 -05:00
Ian Norden
1aa849bcb4
PR fixes; remove all infura token references and setup travis to use encrypted env
...
variable; rest of the ethjson_rpc dependent tests extracted to integration_test
2019-03-21 18:36:51 -05:00
Ian Norden
d3e172d9ab
remove references to infura token except for in infura.toml so that tests will continue to pass on CI
2019-03-21 18:36:49 -05:00
Ian Norden
37fc038605
fixes for review comments
2019-03-21 18:36:49 -05:00
Ian Norden
37e581c7ec
PR#72 from public repo- https://github.com/vulcanize/vulcanizedb/pull/72- also needed to finish pluggin in ENS record transformer
2019-03-21 18:33:56 -05:00
Ian Norden
24879a85aa
mv pkg/omni pkg/contract_watcher
2019-03-21 18:33:56 -05:00
Ian Norden
073378de6d
update © to 2019
2019-03-21 18:33:56 -05:00
Ian Norden
e4e092f542
changes to plugin and commands to accomodate changes
2019-03-21 18:33:56 -05:00
Ian Norden
8174ce4aee
refactor omni code; rename omniWatcher => contractWatcher; use config instead of excessive number of CLI flags
2019-03-21 18:30:48 -05:00
Ian Norden
ff55e3ba7a
TransformerInitializer => EventTransformerInitializer reorganization
2019-03-14 11:59:39 -05:00
Ian Norden
9f8c50e3ab
tests for migration path ordering and errors
2019-03-13 11:42:30 -05:00
Ian Norden
f37c458992
the part that actually runs the migrations in order
2019-03-13 11:42:29 -05:00
Ian Norden
84aa0a7eba
plugin migration order specified in config
2019-03-13 11:42:29 -05:00
Rob Mulholand
1414779d52
Use *sqlx.Tx instead of *sql.Tx
...
- requires using db.Beginx() instead of db.Begin()
- enables calling tx.Get()
2019-03-06 12:43:39 -06:00
Rob Mulholand
7ed4dcd1fa
Remove Tic logic
2019-03-06 12:43:39 -06:00
Rob Mulholand
b6bef49318
Add tests for plugin helpers
...
- Prevents code analysis from showing functions as unused
- Also address other code analysis issues
2019-03-06 12:43:39 -06:00
Rob Mulholand
a806cb2818
Extract slow tests from omni full transformer
2019-03-06 12:43:06 -06:00
Rob Mulholand
34c96654ce
Extract slow tests from omni light transformer
2019-03-06 12:43:06 -06:00
Ian Norden
8bd397e2eb
Merge pull request #29 from vulcanize/fix
...
Fix for Travis issue at https://github.com/vulcanize/mcd_transformers/pull/6
2019-03-06 11:27:43 -06:00
Ian Norden
e1a317c3f6
different errors; readme edit
2019-03-06 00:14:37 -06:00
Ian Norden
5fd9a59027
fix for issue with Travis building plugin from plugin repo
2019-03-05 08:57:54 -06:00
Edvard Hübinette
55b6ad9381
Optimise missing block numbers query ( #23 )
2019-03-05 11:52:38 +01:00
Ian Norden
83f7daf37d
compose and execute as separate commands; update README and add git checkout vendor/github.com/ethereum/go-ethereum/accounts/abi to make build
2019-02-28 18:15:16 -06:00
Ian Norden
708425c4d6
rebase; extract factories and the mocks they are dependent on to
...
libraries/shared; adjust omni test_helpers to drop and recreate
checked_headers table to avoid reaching 1600 column limit after repeated
tests (dropping columns doesn't actually remove them from contributing
to that limit)
2019-02-25 01:34:38 -06:00
Ian Norden
17f4d3dfa5
move maker plugin generator test to mcd_transformers
2019-02-24 21:53:04 -06:00
Ian Norden
3d34a9e7c9
remove maker migrations and convert back to timestamps and fix bug in
...
composeAndExecute command
2019-02-24 21:52:23 -06:00
Ian Norden
b449193b16
addressing review comments; still need to reorg migrations and add helper tests
2019-02-24 21:38:48 -06:00
Ian Norden
2868cf2f73
goose changes; update plugin readme; use rel paths for transformers in config; more commenting in pkg/plugin; fix PluginWriter to work with different transformer types; reopen generator tests
2019-02-24 21:38:48 -06:00
Ian Norden
03a7379617
work on porting storage watcher; watcher type is defined for
...
transformers in the config, storage transformers are exported from
plugin like event transformers
2019-02-24 21:38:47 -06:00
Ian Norden
b51dcb55de
comment out plugin test til mcd_transformers is updated correctly
2019-02-24 21:38:47 -06:00
Ian Norden
a322372713
refactoring plugin generating code
2019-02-24 21:38:47 -06:00
Ian Norden
decc2a3caf
remove pkg/transformers; extract shared files needed to
...
libraries/shared; work on automated db migration management
2019-02-24 21:38:47 -06:00
Ian Norden
55fa9b8364
auto management of dependencies temporarily needed to build plugin and transformer
...
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
2019-02-24 15:23:35 -06:00
Ian Norden
6c2d895023
composeAndExecute command that loads and executes over arbitrary transformer set exported from a go plugin generated according to config file; test for plugin generation, loading, and execution; work on plugins README
2019-02-24 15:23:35 -06:00
Edvard Hübinette
fa4abe4e5c
Remove spammy and unnecessary error log ( #21 )
2019-02-22 12:56:06 +01:00
Rob Mulholand
745d0e8eda
Use storage value metadata getter in pit repository tests
2019-02-21 15:25:16 -06:00
Rob Mulholand
a5121913f4
Error on missing keys in pit repository
...
- If ilk missing for ilk-related value, fail fast
2019-02-21 15:03:22 -06:00
Rob Mulholand
3d9341ea1d
Reference ilks foreign key from Cat storage repository
2019-02-21 14:33:59 -06:00
Rob Mulholand
dbdd16d3a2
(VDB-380) Create separate table for ilks
...
- reference ilk by foreign key every place it's used
2019-02-21 11:23:00 -06:00
Rob Mulholand
11dd641a84
(VDB-354) Queue unrecognized storage diffs
...
- If we recognize a storage diff as coming from a watched contract but
don't recognize the key, queue it for retrying later (after we've seen
an event that might help us recognize the key)
- Remove unused errs and args
- Panic on unrecognized types (should not happen)
2019-02-20 15:22:39 -06:00
Edvard
fb47a747f6
Fix confusion between nflip and flip
2019-02-20 14:37:55 +01:00
Edvard
56ca45509f
DRY up storage diff repo tests
2019-02-20 14:37:55 +01:00
Edvard
5746de7c97
Add tests for Cat storage diff transformer
...
Update schema after rebase migrations
Fix small issues from review
2019-02-20 14:37:46 +01:00