The new API for initializing with a viewing key will support all existing uses of the other initializer. So they can be safely merged and the changes to support the new one are fairly straight forward.
Also, iterated on the design of the Initializer to simplify construction and make the API easier to use.
- Add logging
- Add service to mainactivity
- Use new SDK derivation tool
- Add prev/next buttons to block demo
- Add helpful stats to block range demo
- Add instructions to home screen and stop clearing after each demo
- Improve transaction list display
- Revamped every demo
- Added HTML to displays
- Added helpful extension functions
- Updated dependencies
including: mainnet support, BIP39 support and using seed words instead of string-based seeds, several convenience functions like copyToClipboard, simplified the developer experience for using the FAB, corrected errors in port numbers, streamlined several demos, trim user input, better messaging using new processorInfo flow.
This involves splitting code to run in the zcashMainnet and zcashTestnet flavors and using the corresponding feature of librustzcash. Mainnet functionality is proven in the integration test in androidTestZcashmainnet.
Leverage the new flow-centric approach to sending transactions, rather than polling the database, which leads to concurrent modification errors and corrupted data.
- 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