Elizabeth
b37324bf3d
Refactoring
...
* 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
2018-08-07 15:17:29 -05:00
Elizabeth
c617cd9c9d
Add FlipKick log events transformer
2018-08-07 10:51:34 -05:00
Rob Mulholand
a683e45855
Consolidate test doubles
...
- 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
2018-07-20 11:37:46 -05:00
Rob Mulholand
63434f6bc9
Add tests for pkg/geth/blockchain
...
- inject dependencies instead of initializing them in the constructor
2018-07-18 16:34:13 -05:00
Rob Mulholand
1355271011
Add light sync command
...
- 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)
2018-07-18 16:34:12 -05:00
Maxim Krasilnikov
e9e3864ba9
Added user and password to db config
2018-06-22 18:28:34 +03:00
Rob Mulholand
3e39ccb9bb
Fix missing block numbers lookup
...
- 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.
2018-06-08 11:26:25 -05:00
Rob Mulholand
d5c2ab33fc
Sync only missing blocks on cold import
...
= 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
2018-05-07 16:38:04 -05:00
Rob Mulholand
5a5e08bd13
Get head block number
...
- Allows us to refuse to sync past current head
- Creates the opportunity to add a flag for syncing all blocks
2018-05-04 11:03:50 -05:00
Rob Mulholand
5f6bf32ec1
Add cold import script
2018-05-04 10:54:00 -05:00
Rob Mulholand
462f94d84a
Associate receipts with blocks instead of transactions
...
- 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).
2018-05-04 10:52:28 -05:00
Matt K
8a9395819c
Get transactions ( #45 )
...
* Make transactions requests in parallel
* Update transaction error handling
2018-03-27 16:06:12 -05:00
Matt Krump
88210e436a
Remove test and travis deps on private dev network
2018-03-22 10:15:18 -05:00
Matt Krump
1b4e57a5b4
Rename node table and node column
2018-03-21 13:24:13 -05:00
Matt Krump
a11fb709b2
Update watcher to use blockchain instead of contract data fetcher
2018-03-12 16:19:06 -05:00
Matt Krump
76dad443ec
Update FetchContractData to allow optional args
2018-03-12 14:21:34 -05:00
Matt Krump
5a2bb04670
Remove unused contract methods
2018-03-12 14:21:34 -05:00
Matt K
5a652190d9
Allow Parity as ingest node ( #36 )
...
* Upgrade go-ethereum to v1.8
* Add Node Info for parity nodes
* Upgrade start_private_blockchain to use v1.8
2018-03-07 15:29:21 -06:00
Matt Krump
06f78e0083
Handle events
...
- Adds interfaces for developers to build handlers that update data in
response to log events
- Resolves #29
2018-03-05 10:01:50 -06:00
Matt K
ed907535e3
Separate DB access into several repos ( #28 )
...
* Separate files for InMemory
* Start using separate repos for collaborating objects
* Before Updating schema
* Separate various repos
2018-02-12 10:54:05 -06:00
Matt K
605b0a96ae
Add graphql server ( #27 )
...
* Add graphql server
* Update Makefile
* Update log_filters constraint
* Add GetLogFilter to repo
* Update travis (use Makefile, go fmt, go vet)
* Add logFilter schema and resolvers
* Add GetWatchedEvent to watched_events_repo
* Add watchedEventLog schema and resolvers
2018-02-08 10:12:08 -06:00
Matt K
d5852654bb
Update table columns ( #26 )
...
* Update block table names
* Update transaction table names
2018-02-02 16:12:14 -06:00
Matt K
aea9c7b5e2
Separate repositories ( #25 )
...
* 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
2018-02-02 15:53:16 -06:00
Matt K
3863bcb614
Events ( #24 )
...
* Add watched events repo
2018-02-02 13:58:59 -06:00
Matt Krump
aac2239097
Merge old private repo into vulcanize
2018-01-25 18:08:26 -06:00
Matt K
c00b8a5a98
Add Filters ( #133 )
...
* Add LogFilter struct
* Add log_filters table
* Add view for events watching
* Add cmd line "add_filter" to mimic eventual endpoint
* Allow multiple filters in config
2018-01-23 12:43:35 -06:00
Matt K
3f06c7374b
Update transaction value field ( #132 )
...
* Add test for converting big.Int
* Use string as internal representation of transaction value
2018-01-16 14:25:33 -06:00
Matt Krump
6583ce72b8
Remove log_uc
...
* Logs now are attached to receipt, so removing block + index unique
constraint
2018-01-16 09:44:46 -06:00
Matt Krump
82c39a2c1f
Add fk constraint on logs
2018-01-16 08:58:11 -06:00
Matt Krump
9ee13e715d
Add topics type
2018-01-15 14:49:29 -06:00
Matt Krump
50f00b80c1
Lowercase log address
2018-01-15 14:46:48 -06:00
Matt Krump
431be46005
Add store logs with receipts
2018-01-15 14:46:32 -06:00
Matt K
a9bea4f492
Allow for multiple Geth nodes ( #128 )
2018-01-10 15:54:36 -06:00
Matt K
70cfa20c68
Watch contact updates ( #127 )
...
* Downcase all arguments for contact watching
* ABI retrieval from test networks
2018-01-08 15:59:47 -06:00
Matt K
14e1fc4213
Remove admin api dependency ( #126 )
2018-01-08 14:19:42 -06:00
Matt K
54c4f0c2fe
Add back infura related tests ( #123 )
2018-01-08 11:41:01 -06:00
ee4f7c710a
replace '8thlight' with 'vulcanize'
2018-01-06 15:31:53 -05:00
Matt K
6decf0b54b
Remove pubsub and replace w/ polling head of chain ( #122 )
...
* 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)
2018-01-05 11:55:00 -06:00
Matt K
4fabe3e917
Add receipts ( #119 )
...
* Conversion between Geth Receipt and core.Receipt
* Add receipt to DB
* Insert receipts with transactions
* Update Travis CI to use dep for dependencies
2018-01-03 11:23:43 -06:00
Matt Krump
b6ed4464c7
Update populate blocks to use blockchain rather than db to determine blocks to fill
2018-01-02 13:35:52 -06:00
Matt Krump
351d315a4c
Add tx fields
2017-12-28 17:23:56 -06:00
Matt Krump
8b024bade9
Add block rewards to db
2017-12-28 11:58:26 -06:00
Matt Krump
3ca4370221
Add Block + Uncle Rewards calculation
2017-12-28 09:46:14 -06:00
Matt Krump
cb4e745464
Add extra data field
2017-12-27 12:10:08 -06:00
Matt Krump
c992186846
Add Block Miner
2017-12-27 10:50:56 -06:00
Matt K
7e5e12f488
Backfill/listen for contract logs ( #113 )
2017-12-22 11:42:35 -06:00
Matt K
a786241c8c
Add indices for tx_to and tx_from ( #112 )
2017-12-20 16:58:37 -06:00
Matt K
24bc83a448
Block categorization ( #110 )
...
* 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
2017-12-20 14:06:22 -06:00
Matt K
266c9587c8
Canonical blocks ( #108 )
...
* 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
2017-12-19 14:14:41 -06:00
Matt Krump
84e77f259d
Use most recent blockNumber when blockNumber parame is nil
2017-12-14 10:15:36 -06:00
Matt K
0e837e2d03
Refactoring ( #101 )
...
* Make naming consistent for watched_contracts
* Update FindContract and FindBlockByNumber to return errors rather than nil
2017-12-13 10:51:11 -06:00
Matt K
a68f277066
Save Logs to DB ( #100 )
...
* Save logs to database
* Save multiple logs to db
* Add block number parameter to `FindLogs`
2017-12-12 15:55:26 -06:00
Matt K
5e64283a12
Get logs for a contract ( #99 )
...
* Add ability to fetch logs for a contract and a block
* Test contract related code against Infura, so can run on Travis
* Add godo task for getLogs
2017-12-11 15:08:00 -06:00
Matt K
921bde1089
Update BlockChain to record NodeInfo ( #95 )
2017-12-07 13:32:16 -06:00
Matt K
18163f970e
Get ABI via etherscan API ( #96 )
...
- Added ABI request
- Add unique constraint on contract hash for watched contracts
2017-12-07 09:58:06 -06:00
Eric Meyer
0439791381
Rename WatchedContract to Contract
2017-12-05 09:39:58 -06:00
Eric Meyer
3a2e7e0cc1
Update Blockchain interface to use WatchedContract instead of Contract
2017-12-04 17:04:06 -06:00
Eric Meyer
e432219e20
Rename watched_contracts package to contract_summary
2017-12-04 17:04:06 -06:00
Eric Meyer
5aa0bcd6ce
Move WatchedContract back to core
2017-12-04 17:04:06 -06:00
Eric Meyer
a0cd7f773a
Require ABI filepath for watching a contract
2017-12-04 15:12:27 -06:00
Eric Meyer
fa2766b64d
Store contract ABI on watched_contracts
2017-12-04 14:13:15 -06:00
Eric Meyer
52e3266495
Move WatchedContract to repositories
2017-12-04 13:42:26 -06:00
Eric Meyer
3af336a34a
Return invalid state attribute in appropriate branch
2017-12-04 13:31:27 -06:00
Matt K
71de8e970d
Contract hist ( #84 )
...
Add ability to query contract historical state
2017-12-04 12:54:33 -06:00
Eric Meyer
486fdc10e4
Update functions that return error to not return pointer
...
* Matches Golang convention
2017-12-04 10:34:49 -06:00
Eric Meyer
655d1b1d6f
Remove fatal from pkg
...
* Functions in pkg should return errors
* If aborting is desired, that behavior should be left to the consumer
2017-12-04 09:54:39 -06:00
Eric Meyer
e9bfae9412
Update GetContractStateAttribute to take a Contract instead of contract hash
2017-11-30 16:36:36 -06:00
Eric Meyer
5c18639ef4
Extract Attributes to contract struct
2017-11-30 16:15:32 -06:00
Matt Krump
687af1f3d4
Change string formatting
2017-11-30 10:23:58 -06:00
Matt Krump
b2dfe1e486
Move type conversion to presenter
2017-11-29 09:32:34 -06:00
Matt Krump
b26bcf74e9
First pass at adding non-string attributes
2017-11-28 17:04:09 -06:00
Matt Krump
54458e9741
Address PR comments
2017-11-28 14:40:05 -06:00
Matt Krump
1bae6db483
Added sort method to ContractAttributes array
2017-11-28 14:05:39 -06:00
Matt Krump
aa3318451b
Updated to use contracts derived Attributes
2017-11-28 13:43:08 -06:00
Eric Meyer
60bef69113
Start reading available attributes from ABI
2017-11-28 09:41:23 -06:00
Eric Meyer
708ad114ac
Add function to get string state attributes for a given contract
2017-11-27 15:18:04 -06:00
Eric Meyer
9c1051bfce
Update NewSummary to take the blockchain
2017-11-27 09:21:21 -06:00
Eric Meyer
90edd15ead
Update spacing of summary
2017-11-27 08:54:30 -06:00
Matt Krump
d0602833bb
Update contract summary output to include transaction info
2017-11-14 09:57:27 -06:00
Eric Meyer
a23023f7d6
Move environment configuration to root
2017-11-14 09:10:48 -06:00
Eric Meyer
1889dcad5a
Rename contract file
2017-11-14 09:06:10 -06:00
Eric Meyer
50fcae4215
Split in-memory and postgres tests
2017-11-13 16:20:37 -06:00
Eric Meyer
9b4e170e14
Extract shared repository tests to helper
2017-11-13 16:20:37 -06:00
Matt Krump
0b9930dd9c
Add transactions for a watched contract
2017-11-13 16:16:18 -06:00
Eric Meyer
f50a4d7726
Allow users to watch and print summaries for contracts
2017-11-13 13:51:09 -06:00
Matt K
f0f086e48d
Merge pull request #69 from 8thlight/watch_contract
...
* Add contracts table / start building out watch contracts
2017-11-13 10:55:55 -06:00
Matt Krump
4ad1d531a8
Update contract naming per Eric PR review
2017-11-13 10:11:27 -06:00
Matt Krump
c7bd6de7da
Added From field to transactions
2017-11-09 16:51:22 -06:00
Matt Krump
30fadffb14
Add contracts table / start building out watch contracts
2017-11-09 15:06:01 -06:00
Eric Meyer
58fbeb32fd
Refactor postgres to be initialized with config
2017-11-09 12:42:24 -06:00
Eric Meyer
aa52088ba7
Refactor config to return an error instead of aborting
2017-11-09 12:41:02 -06:00
Matt Krump
df9e7ebcc5
Add database transactions to postgres repository
...
* Repository returns error when CreateBlock fails.
2017-11-08 15:25:06 -06:00
Eric Meyer
4c84173bc0
Add ability to populate missing blocks
...
* 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
2017-11-08 14:52:38 -06:00
Matt Krump
cdc861e5f2
Update Config to use abs path if supplied
2017-11-08 14:42:23 -06:00
Eric Meyer
1bd56ec499
Remove duplication in repository specs
2017-11-06 14:15:02 -06:00
Eric Meyer
f4a603efcb
Nest packages under pkg
2017-11-06 13:06:03 -06:00