Ian Norden
8ce75fe5ad
Generic watcher that takes a contract address, grabs the contract abi and starting block number, creates custom event filters, and extracts and transforms event data into postgres. Can configure to look at only a subset of events through CLI flag. Building but needs testing.
2018-11-03 14:00:25 -05:00
Ian Norden
57820ff473
change transformer interface and watcher so that contract config is now fed into AddTransformers such that a single watcher can be loaded with transformers that use different cofigs
2018-11-03 13:49:24 -05:00
Ian Norden
44177e0772
reorganizing contract-specific modules into event_triggered contract directories
2018-11-03 13:49:23 -05:00
Ian Norden
d66e50dad6
Changes to address Rob's comments. Added generic/event_triggered transformer, tests, and repo migrations for Burn and Mint events
2018-11-03 13:49:23 -05:00
Ian Norden
4aa403d90d
event_triggered transformer, transformer tests, and integrations tests for Transfer and Approval events
2018-11-03 13:49:23 -05:00
Ian Norden
aa2068bd08
adjust retriever to pull token holder addresses from Transfer and Approval events (iterating over Approvals might be redundant); edit Makefile to import new missing dependencies of go-ethereum/accounts/keystore, organizing mocks and adding event related mocks and filters
2018-11-03 13:49:23 -05:00
Ian Norden
ada872404e
Transfer and Approval event repo and repo tests + db migrations for these events.
2018-11-03 13:49:23 -05:00
Ian Norden
55a73c5797
work on erc20 event_triggered functionality and generic helper for log unpacking and converting. helpers.ConvertToLog and helpers.createTopics have been adjusted to be variadic to work with event logs with any number of topics. Also uncovered issue with Dai and TrueUSD that means they doesn't really conform to the ERC20 standard. this is because they named their arguments to standard events like Approval and Trasnfer differently (e.g. Approval(src address, guy address, wad uint) and Approval(owner address, spender address, value uint) instead of the standard which is Approval(tokenOwner address, spender address, tokens uint)). This causes incompatibility with generic ERC20 entities and converters for these events.
2018-11-03 13:49:23 -05:00
Ian Norden
44e0a8d303
retriever for generating list of all token holder addresses + updated transformer to use said addresses to populate balanceOf and allowance information and added database migrations for balance and allowance tables
2018-11-03 13:49:23 -05:00
Ian Norden
1d50a0ace0
fixed tests for getting balanceOf and allowance, added balanceOf and allowance to the repo and repo tests and updated sql schema with new token_balance and token_allowance tables to accept this data
2018-11-03 13:49:23 -05:00
Ian Norden
9b41000b88
Moved fetcher to generic directory (methods have to remain public since it is in seperate package now), added FetchHash method, created ERC20 and generic getters which call the fetcher with specific contract methods (GetTotalSupply, GetBalance, GetAllowance for ERC20 getter, and GetOwner, GetStoppedStatus, GetStringName, GetHashName, GetStringSymbol, GetHashSymbol, and GetDecimals for generic getter). Getter tests cover all but GetBalance and GetAllowance, and also cover all of the Fetcher methods- but with only nil methodArgs. GetAllowance and GetBalance tests are not working against infura and these are the only contract method calls with arguments passed in so I suspect this might be where the issue lies. Have tested GetBalance using previous version of FetchContractData without the variadic input to the Pack method and it fails with the same error so I don’t think it is due to those changes.
2018-11-03 13:49:23 -05:00
Ian Norden
99e549b3df
changes to repo and repo tests so that supply table is organized and accessed by token_address
2018-11-03 13:49:23 -05:00
Ian Norden
bea712ba10
fetcher tests for FetchBool and FetchAddress
2018-11-03 13:49:23 -05:00
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
James Christie
93960e7c4e
Add several improvements to README.md ( #28 )
...
- Expand instructions around technical specifics of project
setup, including special gotchas in Ubuntu-based
environments
- Add statement of setup flow to give thousand-foot view to
users setting up Vulcanize for the first time
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
Elizabeth Engelman
b6f93e735f
Add ERC20 token watcher example
...
- 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
2018-11-03 13:49:23 -05:00
Maxim Krasilnikov
b18d1de4fe
dockerfiles/rinkeby: added named volume for pg container
2018-11-03 13:49:23 -05:00
Maxim Krasilnikov
7b507667f8
Added user and password to db config
2018-11-03 13:49:23 -05:00
Maxim Krasilnikov
2201efc347
Rename dev_env to rinkeby_env, added make commands description to readme
2018-11-03 13:49:23 -05:00
Maxim Krasilnikov
0d4aa71d6d
Dockerized dev environment, geth rinkeby
2018-11-03 13:49:23 -05:00
Takayuki Goto
0d325afbfb
flop kick transformer factory ( #98 )
...
* flop kick transformer factory
* add tests for wrong model/entity
2018-11-02 09:13:10 -05:00
Elizabeth
981393d0a7
Use transformer factory for FlipKick ( #96 )
2018-11-02 09:12:51 -05:00
Elizabeth Engelman
929643132a
Squash price feed trigger update into original migration
2018-11-01 15:12:04 -05:00
Elizabeth Engelman
99dc12c1fd
Squash changes to tend and dent tables
2018-11-01 15:03:08 -05:00
Elizabeth Engelman
21239a986d
Checking in new schema for reference
2018-11-01 14:56:36 -05:00
Elizabeth Engelman
8ce6ac9b7c
Update vow_flog migration for consistency
2018-11-01 14:55:56 -05:00
Elizabeth Engelman
aedcafe488
Update create_vat_heal down migration
2018-11-01 14:13:07 -05:00
Elizabeth Engelman
504cb0ec2d
Change timestamp on create_checked_headers_table migration
2018-11-01 14:12:58 -05:00
Taka Goto
3b722c132e
integration tests hits self hosted parity kovan node:
2018-11-01 10:24:03 -05:00
Elizabeth
ab4e904713
Frob transformer factory ( #95 )
...
* Updates to previous transformers
* Use transformer factory for Frob
* Move bite integration test to integrationt est pkg
2018-10-29 15:08:00 -05:00
Rob Mulholand
78b8173b37
Improve test coverage for event method signature lookups
2018-10-26 15:35:18 -05:00
Rob Mulholand
602802e5f4
Don't test order of DB results
...
- reduce flakiness by enabling tests to pass regardless of result order
2018-10-26 15:35:18 -05:00
Rob Mulholand
ed624330f6
Rename Flog pack to Vow flog
...
- enables differentiation if another contract implements flog
- also deletes flog-specific mocks
2018-10-26 15:35:18 -05:00
Rob Mulholand
1b680d2a4b
Use transformer factory for Drip drip
2018-10-26 15:35:18 -05:00
Edvard Hübinette
f3a82e6ba1
VDB-184 Refactor Dent ( #91 )
...
* Factorise dent transformer
* Update dent transformer tests
* Add additional tests to dent repository test
* Update dent to use LogNoteTransformer factory
2018-10-26 13:56:49 -05:00
Rob Mulholand
d1ee501f12
Use transformer factory for Bite ( #89 )
...
* Use transformer factory for Bite
- introduces separate transformer factory for non-LogNote events
- converter includes `ToEntities` for events defined via ABI
* Updates after rebasing with staging
2018-10-26 13:26:10 -05:00
Rob Mulholand
0e5b23993a
Discard log output from Vat heal during tests
2018-10-26 12:02:56 -05:00
Rob Mulholand
45a52a59f9
Add repository tests for Deal
2018-10-26 12:02:56 -05:00
Edvard
0e1675354f
Update tests for deal transformer
2018-10-26 12:02:56 -05:00
Edvard
35a8009410
Refactor deal transformer to use factory
2018-10-26 12:02:56 -05:00
Elizabeth
d522d33531
Update vat heal to use transformer factory ( #88 )
...
* Update vat heal to use transformer factory
2018-10-26 11:40:24 -05:00
Rob Mulholand
5de949f4c5
Add cat file repository tests
2018-10-26 11:36:02 -05:00
Edvard
00bb48bafb
Fix whitespace errors
2018-10-26 11:36:02 -05:00
Edvard
e6e2ed3308
Update cat file transformer tests
2018-10-26 11:36:02 -05:00
Edvard
28ab5f92ab
Factorise cat_file transformers
2018-10-26 11:36:02 -05:00
Rob Mulholand
47a3c35938
Use transformer factory for Price Feed events
2018-10-26 11:25:16 -05:00
Elizabeth
bd428e752a
Update vat grab to use transformer factory ( #85 )
...
* Update vat grab to use transformer factory
2018-10-26 11:02:39 -05:00