Commit Graph
56 Commits
Author SHA1 Message Date
Ian Norden ccd21f73c9 adjusted FetchContractData to work with variable number of contract method arguments, changed fetcher's FetchSupply method to more general FetchBigInt method and added FetchBool and FetchAddress methods 2018-11-03 13:49:23 -05:00
Rob Mulholand ba071ef13f 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-11-03 13:49:23 -05:00
Rob Mulholand 5fe6394406 Add tests for pkg/geth/blockchain
- inject dependencies instead of initializing them in the constructor
2018-11-03 13:49:23 -05:00
Rob Mulholand 05186634bd 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-11-03 13:49:23 -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 5f6bf32ec1 Add cold import script 2018-05-04 10:54:00 -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 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 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 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 Krump aac2239097 Merge old private repo into vulcanize 2018-01-25 18:08:26 -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 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 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
AFDudley 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 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 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 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 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 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 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 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