Commit Graph

80 Commits

Author SHA1 Message Date
Kevin Gorham e07317c7d5
Latest lib.rs 2021-04-14 15:00:45 -04:00
Kevin Gorham af190e786b
New: Explicitly declare network when needed.
It is important to be very explicit about the network and not make any assumptions for ease of use because that resulted in numerous bugs while transitioning away from the old two library setup.

squash explicit network
2021-04-09 21:46:20 -04:00
Kevin Gorham 591df083b5
Update to the latest Rust code. 2021-04-01 17:51:47 -04:00
Kevin Gorham 04293f4f75
New: Add UnifiedViewingKey concept.
A unified viewing keys serves as a grouping of keys that are all related to the same account but do not have spend authority. This is most important when initializing the database for scanning.
2021-04-01 02:23:41 -04:00
Kevin Gorham 77b2ac5bae
New: Add logic for deleting UTXOs above a given height. 2021-03-31 09:36:46 -04:00
Kevin Gorham ad5d4c4505
New: Update to the latest librustzcash crates. 2021-03-31 09:27:14 -04:00
Kevin Gorham ad67513afb
Use constant for anchor offset. 2021-02-25 13:15:09 -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
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 5879bb3442
Publishing is functional again on Bintray.
Minor uncommitted tweaks. Published version Alpha08.
2020-10-01 16:22:29 -04:00
Kevin Gorham 0601ec488b
Various bug fixes and improvements.
- Exposed primary constructor in initializer and added more convenience functions
- Fix: error handler not being passed through when changing server
- New: warn developer when a critical error occurs but is not covered with a callback
- New: Typed exceptions for missing birthday or viewingKey values during initialization
- New: updated default server for checkpoint tool
2020-09-25 09:59:55 -04:00
Jack Grigg 3b9745ab54 android_logger 0.9 2020-09-22 16:14:56 +01:00
Jack Grigg e4317aadbf Fix various Rust warnings 2020-09-22 16:11:55 +01:00
Jack Grigg 8ce8a8435f cargo fmt 2020-09-22 15:44:31 +01:00
Kevin Gorham a08beef93b
Created birthday tool and derivation tool.
By extracting behavior from the Initializer into a more genralized class that can be used statically.
2020-09-11 03:33:25 -04:00
Kevin Gorham 94c8a18be7
Added ability to start a Synchronizer with just a viewing key.
This was a long awaited request from wallet partners who already have keys available when the wallet launches.
2020-09-11 03:23:08 -04: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 528442fa0a
New: Indicate when rust is potentially slow from running in debug mode. 2020-08-01 02:12:15 -04:00
Kevin Gorham 01bbd12e73
Update librustzcash. 2020-07-29 00:36:57 -04:00
Kevin Gorham 215788dd27
Migrate changes from hackathon.
Mostly includes changes to make testing more robust.
2020-07-29 00:36:56 -04:00
Kevin Gorham aa569c99dd
Major refactor: corrected package name.
Now the SDK matches everything else that we have published to bintray and jcenter.
2020-06-10 03:08:19 -04:00
Kevin Gorham 4e95c46acb
Add missing newlines. 2020-06-09 23:28:21 -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
Kevin Gorham 6bcc00b098
Rust changes in response to feedback. 2020-02-12 08:39:30 -05:00
Kevin Gorham dd18a13b47
Rust changes to expose the ability to derive an address. 2020-02-11 20:04:19 -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 3ad1a056a6
Add batch scanning to allow for tracking scan progress. 2020-01-15 07:35:06 -05:00
Kevin Gorham 88aeb4f5ac
Correct hardcoded CoinType. 2020-01-15 07:35:01 -05:00
Kevin Gorham b47b10427e
Blossom activation. 2020-01-15 07:35:01 -05:00
Kevin Gorham bebe0cf4e7
Rust welding utility functions for key derivation. 2019-11-20 18:23:20 -05:00
Kevin Gorham 7e9127538f
Update memo to accept bytes instead of a string. 2019-11-17 23:49:14 -05: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
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
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
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 870283c8ea
JniConverter.getVerifiedBalance() 2019-02-19 01:45:38 +00:00
Jack Grigg 933fb07f42
Wrap all exceptions and panics to relay them over JNI 2019-02-12 02:56:17 +00:00
Jack Grigg 6d86b2cf16
Extract rust_vec_to_java() utility function 2019-02-11 16:20:11 +00:00