Commit Graph

887 Commits

Author SHA1 Message Date
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