Commit Graph

54 Commits

Author SHA1 Message Date
Kevin Gorham 8885a3e306
Update Cargo and SDK version 2021-04-22 18:56:52 -04:00
Kevin Gorham 6124407295
Update dependencies. 2021-04-09 19:50:59 -04:00
Kevin Gorham ad5d4c4505
New: Update to the latest librustzcash crates. 2021-03-31 09:27:14 -04:00
Kevin Gorham 71ac92e77a
Update dependencies. 2021-02-18 16:07:57 -05:00
Kevin Gorham 5f90675b87
New: Rust changes to support auto-shielding. 2021-02-16 16:02:50 -05:00
Kevin Gorham 2115ecde6a
Align with the latest librustzcash changes. 2021-02-11 00:42:52 -05:00
Kevin Gorham ae95b53ce1
Corrections to match recent changes in data_access_api 2021-01-27 02:19:12 -05:00
Kris Nuttycombe 4bcf74d871
Update to use data access API in librustzcash. (#172)
* Refactor to updated data access API.

* Update to latest librustzcash/data_access_api.

Co-authored-by: Kevin Gorham <kevin.gorham@electriccoin.co>
2021-03-10 13:31:55 -05:00
Adí 794a9f99b8
Add ktlint (#207)
* Add ktlint

Fix formatting per ktlint rules.
Upgrade dependencies & gradle.

* Move ktlint to apply section

* Keep unused-import check

Remove afterEvaluate check.

* Remove respository setup for ktlint.gradle

Fix format for SaplingParamTool & CompatBlockProcessor
2021-03-10 13:10:03 -05:00
Kevin Gorham c4ea984dc6
New: Update to the latest librustzcash crates.
Most notably, this enables ZIP-313 and reduced fees. For now, we've pinned to a commit on master. Eventually, we will point to crate.io versions once the release process is better defined.
2020-12-18 02:26:48 -05:00
Kevin Gorham 4a903f2fe4
Fix: Update to the latest sqlite version
Address bug https://github.com/zcash/ZcashLightClientKit/issues/212
2020-10-23 18:17:20 -04:00
Jack Grigg 005714d7a5 Update more Rust dependencies 2020-09-22 17:35:50 +01:00
Jack Grigg dc0479af91 Fix update-sapling-tree binary
The generated gRPC files were updated using protoc-rust-grpc 0.8.2 and
protoc 3.13.0.
2020-09-22 17:32:32 +01:00
Jack Grigg 588c65afa1 Collect update-sapling-tree dependencies together in Cargo.toml 2020-09-22 16:16:18 +01:00
Jack Grigg 3b9745ab54 android_logger 0.9 2020-09-22 16:14:56 +01:00
Jack Grigg b1b13cfb7f jni 0.17 2020-09-22 16:11:55 +01:00
Jack Grigg 11895dd282 Switch to v0.4 Zcash Rust crates 2020-09-22 15:43:42 +01:00
Kevin Gorham 01efabe195
POC: prove the concept of local RPC via protobufs.
This is an example of a jni call that accepts and returns proto objects. Ultimately, this trades a minor amount of performance for a significant improvement of ease of use. By exchanging protocol buffers, the Kotlin and Rust layers are able to communicate using far more complex objects. Eventually, this type of approach might completely replace the use of a database or sqlite.
2020-08-13 22:01:52 -04:00
Kevin Gorham 4707e97bfd
New: Add support for canopy on testnet.
This is as simple as switching to the commit in librustzcash that contains the required changes to the consensus branch id that will be used when sending funds on testnet.
2020-08-13 21:02:53 -04:00
Kevin Gorham 01bbd12e73
Update librustzcash. 2020-07-29 00:36:57 -04:00
Kevin Gorham c70da1983d
New: Added Heartwood support.
Going forward, consensus branch IDs will automatically switch over, once we reach the activation height.
2020-06-09 22:15:55 -04:00
Jack Grigg 25a5eab4be RustBackend.decryptAndStoreTransaction() 2020-03-26 08:37:40 +13:00
Jack Grigg c3de2df034 update_sapling_tree: Handle multiple IPs for LIGHTWALLETD_HOST
Fixes zcash/zcash-android-wallet-sdk#111
2020-02-27 04:37:09 +00:00
Taylor Hornby 3bb6f4fb6a Make update_sapling_tree use TLS 2020-02-26 15:10:17 -07:00
Kevin Gorham 250217d0cd
Point to my branch of librustzcash for now 2020-02-25 14:18:12 -05:00
Kevin Gorham 77f6e77e14
Restore build to working order by removing local-only changes
which supported scanning in batches for better visibility into scan
progress. Also updated Cargo files to support error-free build for the
beta release.
2020-01-15 09:17:27 -05:00
Kevin Gorham b47b10427e
Blossom activation. 2020-01-15 07:35:01 -05:00
Jack Grigg 221c882589
Migrate to note-spending-v6 2019-08-29 18:04:53 +01:00
Jack Grigg 09c51b7654
Update RecipientAddress to fix transparent address support 2019-07-10 14:55:38 -04:00
Jack Grigg 54dbf8e0ff
Add transparent address send support to backend 2019-05-24 17:10:20 +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
Jack Grigg 1474fae4b8
Move SQL backend into librustzcash
Also some tweaks due to error-handling changes in librustzcash.
2019-03-13 06:56:28 +00:00
Kevin Gorham 245841807c add hex as required dependency, then use it inside init_blocks_table 2019-02-23 20:16:45 -05:00
Jack Grigg b95f0b1fc9
Fix witness-updating bug, and enforce witness validity 2019-02-14 19:47:18 +00:00
Jack Grigg 8eeddb2de0
Test that send_to_address() fails with incorrect ExtendedSpendingKeys 2019-02-12 19:46:16 +00:00
Jack Grigg 886017a4f5
Migrate to Rust 2018 edition
Requires a minimum of Rust 1.31.
2019-02-11 15:11:09 +00:00
Jack Grigg 70f9ab54c6
Simple binary to calculate the latest Sapling commitment tree
The gRPC Rust bindings are committed instead of requiring protoc to build.
2019-02-11 14:27:43 +00:00
Jack Grigg b78a611f7b
JNI APIs to fetch memo fields as UTF8 2019-02-08 21:06:25 +00:00
Jack Grigg 5dea1dbc04
Test that initialisation APIs are one-shot 2019-02-08 21:06:22 +00:00
Jack Grigg 45adb0af4a
Store creation time and expiry height in transactions table
- Creation time can be used in the UI before a transaction gets mined.
- Expiry height enables the UI to indicate expired transactions.
2019-02-07 14:39:50 +00:00
Jack Grigg acd8c395f3
Tidy up imports 2019-02-07 12:58:33 +00:00
Jack Grigg a9674a148b
Remove cfg(target_os="android") restriction
The crate lives inside the Android SDK, and will only ever target
Android devices, so it's fine to simplify here.
2019-02-07 12:56:04 +00:00
Jack Grigg a290c9165a
Update package details for Rust crate 2019-02-01 21:57:15 +00:00
Jack Grigg 3966798f53
API for creating transactions 2019-02-01 21:57:05 +00:00
Jack Grigg ab2b5903a0
Improvements to JniConverter.scanBlocks()
- Store Sapling tree with blocks
- Store witnesses with full notes
- Track note spends
- Track change notes
- Store index within block for each transaction
  - This will make it easier to request entire blocks of transactions at
    some point, and then filter out only the transactions we care about.
- Store block times while scanning blocks
- Return bool with error state from JniConverter.scanBlocks()
- Support cached blocks that are height-ascending but not sequential
  - Blocks that do not contain Sapling data may be skipped.
- Return error from scan_cached_blocks() if heights are not ascending
2019-02-01 17:41:09 +00:00
Jack Grigg 3188cf8942
Remove now-unused ValueReceived protobuf 2019-01-31 16:09:37 +00:00
Kevin Gorham addcf60fc4
add error logging in Rust
This allows errors to bubble up to the android log file, rather than
having to sift through a tombstone file on the device.
2018-12-01 01:48:02 +00:00
Jack Grigg 83e00e1611
JniConverter.scanBlocks() 2018-12-01 01:47:41 +00:00