Commit Graph

183 Commits

Author SHA1 Message Date
Kevin Gorham f89d2be250
SDK changes to support new demo app.
- Convert status flags into stream of statuses, instead.
- Improve logging during transaction submission
- Database corrections. Aparently Room has gotten more strict with schema parsing and this required lots of corrections mainly around get nullability correct for DB fields.
- Simplify Synchronizer creation via constructor functions. Created one function for maximum simplicity and another for maximum flexibility.
- Changed logic for Wallet initialization to simplify dependencies and allow for optional access to private keys for wallet apps
- Created TransactionRepository that leverages the paging library for Room
- Provided sample implementation of bridging to a key manager in a way where wallet apps do not have to modify their existing code.
- Made it easier to clear the wallet data that can be repopulated from the blockchain
- Allowed for better cleanup of heavy-weight lightwalletd services by adding a shutdown API call
2019-10-24 01:16:58 -04:00
Kevin Gorham 190f7f5548
Consolidate old sample apps into new demo app. 2019-10-24 01:16:58 -04:00
Kevin Gorham bb824450b0
Merge pull request #49 from zcash/feature/security-finding-1
Reduce configurability per Security Finding 1.
2019-09-26 13:00:23 -04:00
Kevin Gorham 42f29f534c
Reduce configurability per Security Finding 1.
These changes largely reduce the amount of configuration that can be tweaked in order to prevent fragmentation of the anonymity set of users. If wallet makers change certain properties than it can become easy to detect which network requests are coming from which client. The goal is for clients to be as anonymous as possible.
2019-09-26 12:58:37 -04:00
Kevin Gorham 1391fe897a
Merge pull request #46 from zcash/task/cleanup
Cleanup pass through SDK and sample projects
2019-09-12 01:31:58 -04:00
Kevin Gorham 1f18042d52
Implement versioning and other cleanup.
- Correct typo and compiler warning in Rust.
'trait objects without an explicity dyn' are deprecated and this is a warning as of Rust 1.37
- update dependencies
- update documentation

docs
2019-09-12 01:31:23 -04:00
Kevin Gorham 636cbb59c0
Add TLS support.
Make TLS the default and require effort to setup plaintext connections, instead.
2019-09-12 01:31:22 -04:00
Kevin Gorham ff3a2b3bc5
Merge pull request #45 from zcash/task/improve-reorgs-v2
Task/improve reorgs v2
2019-08-30 10:27:09 -04:00
Kevin Gorham 50ef3ee99f Improve and further simplify sample app behavior. 2019-08-30 10:07:56 -04:00
Kevin Gorham a83ace6e43 Refactor after Zcon1 2019-08-30 10:07:56 -04:00
Kevin Gorham 8c7103d0ee Cleanup after Zcon1. 2019-08-30 10:07:56 -04:00
Kevin Gorham 78f98c2868 Update dependencies. 2019-08-30 10:07:56 -04:00
Kevin Gorham 862a4be480 Pulled over classes from Zcon1 app.
Next step is to refactor and simplify.
2019-08-30 10:07:56 -04:00
Kevin Gorham 1de3ee9ed5 Added more fixes and examples for Zcon1.
Including unit tests that are more like utilities for doing interesting things.
2019-08-30 10:07:56 -04:00
Kevin Gorham ad3a080466 Restore the memo sample to working order. 2019-08-30 10:07:56 -04:00
Kevin Gorham 54226997f9 Add sapling tree prior to Zcon1 token transactions. 2019-08-30 10:07:56 -04:00
Kevin Gorham 178f1d3a8d Add support for raw transaction id.
This helps with mapping transactions when sweeping wallets.
2019-08-30 10:07:56 -04:00
Kevin Gorham 4dd8d408cb Beginning to improve the use of channels.
Bringing over lessons learned from the Zcon1 app. There are a lot of changes to make, this is just the beginning of what was necessary to support that app.
2019-08-30 10:07:56 -04:00
Kevin Gorham f222bde2fa More robust error handling. 2019-08-30 10:07:56 -04:00
Kevin Gorham 7daeb20755 Sample App: Add sample app for deriving addresses and spending keys. 2019-08-30 09:59:29 -04:00
Kevin Gorham 305390b439 Update tests. 2019-08-30 09:59:29 -04:00
Kevin Gorham 94e2af7287 Improve error handling and troubleshooting by surfacing more errors. 2019-08-30 09:59:29 -04:00
Kevin Gorham a78c98b8aa Add more support for memos. 2019-08-30 09:59:29 -04:00
Kevin Gorham 4c635362a8 Add logic for handling reorgs and simplify synchronization. 2019-08-30 09:59:29 -04:00
Kevin Gorham b14401eaeb Twig: Add timing features and prevent duplicate tags. 2019-08-30 09:59:29 -04:00
Kevin Gorham 56e4dda40f Update dependencies. 2019-08-30 09:59:29 -04:00
Kevin Gorham b5fcfef77e
Merge pull request #44 from zcash/rust-update-v6
Rust update v6
2019-08-30 09:40:32 -04:00
Jack Grigg f4843bc25d
More descriptive value errors in sendToAddress 2019-08-29 18:57:05 +01:00
Jack Grigg 221c882589
Migrate to note-spending-v6 2019-08-29 18:04:53 +01:00
str4d 856e5523b6
Merge pull request #40 from zcash/rust-features
Configure mainnet SDK flavours to use mainnet Rust feature flag
2019-08-02 09:01:19 +01:00
Jack Grigg 261ec33f81
Configure mainnet SDK flavours to use mainnet Rust feature flag 2019-07-26 21:55:50 +01:00
str4d 5f144ce32a
Merge pull request #29 from zcash/rust-refactor
Rust backend refactor
2019-07-23 15:29:32 +01:00
Jack Grigg 09c51b7654
Update RecipientAddress to fix transparent address support 2019-07-10 14:55:38 -04:00
Jack Grigg 1acf472d33
RustBackend.isValid[Shielded|Transparent]Address() 2019-07-10 14:54:39 -04:00
Jack Grigg 54dbf8e0ff
Add transparent address send support to backend 2019-05-24 17:10:20 +01:00
Kevin Gorham c3f57d5e2f
Rename JniConverter to RustBackend
Turns out JNI classes are hard to mock due to the way sytem libraries
are loaded. So it became easier to put the JniConverter class behind an
interface. Once that refactor was necessary, it was a good time to
update the name of this class because it retained its original PoC name
for far too long.
2019-05-24 16:33:43 +01:00
Jack Grigg 4948617d6d
Add JNI methods for handling chain validity and reorgs 2019-05-14 17:30:09 +01:00
Jack Grigg 0591784ce4
Add mainnet support to Rust backend via a feature flag 2019-05-14 17:10:03 +01:00
Jack Grigg e69f4b6003
Migrate to refactored librustzcash branch 2019-05-14 17:10:03 +01:00
Kevin Gorham 099647de65
Merge pull request #27 from zcash/task/memo-sample
Create Sample App: Memos
2019-04-24 19:12:43 -04:00
Kevin Gorham e12b1c7a63 Initial memo sample app. 2019-04-24 03:16:15 -04:00
Kevin Gorham 7ec61df4a9 Changes to support memo sample
Mostly includes convenience functions for determining balance.
2019-04-24 03:16:15 -04:00
Kevin Gorham 30d36b723e
Improve logging behavior.
This simplifies the process of constructing an SdkSynchronizer.
2019-04-24 02:43:33 -04:00
Jack Grigg fd1ddaa8e2
Migrate build system to Rust Android Gradle plugin
Using our fork of the upstream plugin that contains changes to more
closely match our previous build system.

Also deletes commented-out custom protobuf tasks that have been replaced.
2019-04-19 00:06:30 +01:00
Kevin Gorham 5384dd7c8f
Merge pull request #22 from zcash/tasks/code-cleanup_milestone3
Iterate on Documentation
2019-04-04 17:51:28 -04:00
Kevin Gorham 92a91c1e81 Create task for updating docs 2019-03-31 19:34:06 -04:00
Kevin Gorham afa142e1c9 Update docs 2019-03-30 12:22:20 -04:00
Kevin Gorham 01b1ca1fed Add KDocs to Synchronizer implementations and tidy their code 2019-03-30 00:20:32 -04:00
Kevin Gorham dec4f0f62e Add docs folder with Synchronizer documentation 2019-03-29 02:31:25 -04:00
Kevin Gorham 7265a793c4 Restore tests to compiling 2019-03-29 02:05:45 -04:00