Commit Graph

2607 Commits

Author SHA1 Message Date
Kris Nuttycombe 66c9f31e14 Add memo counts to transaction views. 2022-09-09 16:09:56 -06:00
Kris Nuttycombe 81c948a37e Add views that join transactions & notes for Android SDK support.
Android does not provide a good way to perform outer joins in
its type-safe query builder API, so we expose views build using
those joins instead.
2022-09-09 16:09:04 -06:00
str4d e656ff5b8e
Merge pull request #610 from zcash/dependabot/github_actions/actions/cache-3.0.8
build(deps): bump actions/cache from 3.0.7 to 3.0.8
2022-09-09 19:23:07 +01:00
Kris Nuttycombe 1839696c75
Merge pull request #623 from zcash/489-addresses-table
`zcash_client_*`: Various changes to how addresses are handled
2022-09-08 18:51:16 -06:00
Jack Grigg 7112ed9da5 zcash_client_backend: Add `WalletReadTransparent::get_transparent_receivers`
Co-authored-by: Kris Nuttycombe <kris@nutty.land>
2022-09-08 20:24:42 +00:00
Jack Grigg 154ef077b4 zcash_client_sqlite: Move address data to an `addresses` table
Closes zcash/librustzcash#489.
2022-09-08 18:50:18 +00:00
Jack Grigg 7d404d2747 zcash_client_sqlite: Fix `WalletRead::get_address` return value
Previously it would return an error if the account identifier did not
correspond to a known account.
2022-09-08 18:49:41 +00:00
Jack Grigg a32714043b zcash_client_backend: Change `WalletRead::get_address` to return UA 2022-09-08 18:49:13 +00:00
Kris Nuttycombe 7455808adc
Merge pull request #625 from nuttycom/wallet/usk_encoding
Add a binary encoding format for unified spending keys.
2022-09-08 12:22:18 -06:00
Kris Nuttycombe 7b7288c750 (cleanup) Make the internals of `zip32::DiversifierKey` private 2022-09-08 11:17:14 -06:00
Kris Nuttycombe 8439f1a4f7 Add binary encoding for unified spending keys.
This encoding is wallet-internal-only and is currently
guarded under the `unstable` feature flag.
2022-09-08 11:05:59 -06:00
Kris Nuttycombe f15a6d8e80 Add `no_std` implementations of Sapling key encoding & decoding. 2022-09-08 11:05:59 -06:00
str4d 980f6b4e6c
Merge pull request #627 from nuttycom/edition_2021
Update to Rust 2021
2022-09-07 11:41:44 +01:00
Kris Nuttycombe d7e2e2f7c1 Remove use of `IntoIterator::into_iter` 2022-09-02 12:05:15 -06:00
Kris Nuttycombe a93f5945ab Remove redundant TryFrom/TryInto imports. 2022-09-02 12:05:15 -06:00
Kris Nuttycombe 16a0e43f2d Update to Rust 2021 and explicitly set MSRVs 2022-09-02 12:05:09 -06:00
Kris Nuttycombe 0b8a0a894b
Merge pull request #626 from zcash/make-nk-internals-public
zcash_primitives: Make `NullifierDerivingKey` internals public
2022-09-01 20:16:44 -06:00
Jack Grigg e5dad037e9 zcash_primitives: Make `NullifierDerivingKey` internals public
The `zcashd` Rust code relies on being able to construct the Sapling
types transparently. This part of the "public API" of the crate was
broken when the `NullifierDerivingKey` newtype was introduced. We do
want to migrate to all of these types having stronger type safety
guarantees (by only constructing them via constructors), but that should
be done consistently across the types. For now we maintain the existing
API by changing `NullifierDerivingKey` to be a transparent newtype.
2022-09-02 01:13:20 +00:00
Kris Nuttycombe 6318edbfe0
Merge pull request #624 from nuttycom/diversifier_index_from_uints
Add conversions from u32 and u64 to DiversifierIndex
2022-08-31 17:54:14 -06:00
Kris Nuttycombe f5a18b8fa5 Add conversions from u32 and u64 to DiversifierIndex 2022-08-31 17:15:47 -06:00
Kris Nuttycombe 13269c9dcd
Merge pull request #621 from zcash/sqlite-remove-tx
zcash_client_backend: Add `WalletWrite::remove_unmined_tx` method
2022-08-31 07:31:38 -06:00
Jack Grigg 4f5d757883 zcash_client_backend: Change to `WalletWrite::remove_unmined_tx`
This fixes a bug in the logic ported from the Android SDK: it was
possible to remove a transaction in the middle of a chain, which would
cause a long-spent note to become unspent and cause the wallet balance
to be over-counted. We now restrict transaction removal to unmined
transactions, which is sufficient for the Android SDK use cases.
2022-08-30 22:54:58 +00:00
Jack Grigg 586b7e5bb0 zcash_client_backend: Add `WalletWrite::remove_tx` method
This is to replace the database mutations in the Android SDK. It is
placed behind an `unstable` feature flag until we are satisfied that it
is suitable as a general-purpose API (or replace it).
2022-08-29 21:32:18 +00:00
str4d b4fc235a2c
Merge pull request #619 from zcash/sqlite-prepared-statement-type-safety
`zcash_client_sqlite`: Improve type safety for prepared statements
2022-08-29 20:57:19 +01:00
Jack Grigg 04b1d505b2 zcash_client_sqlite: Move `DataConnStmtCache` into submodule
This removes direct access to the prepared statements, instead forcing
callers to use the type-safe methods added in the previous commit.
2022-08-29 19:25:36 +00:00
Jack Grigg 12e8c53310 zcash_client_sqlite: Add statement helper methods to `DataConnStmtCache`
These methods provide type-safe ways to interact with the prepared
statements.
2022-08-29 19:25:36 +00:00
Jack Grigg 439e8f2599 zcash_client_sqlite: Add `DataConnStmtCache::new` constructor
This is a move-only commit (other than the necessary variable renames).
2022-08-29 15:26:08 +00:00
Kris Nuttycombe 8c00ca3b88
Merge pull request #615 from nuttycom/wallet/shield_to_ufvk
Shield funds to the internal Sapling key for a specified account.
2022-08-26 16:45:15 -06:00
Kris Nuttycombe ba1bb65a5f Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
2022-08-26 16:09:05 -06:00
Kris Nuttycombe c4da498cf4 Shield funds to the internal Sapling key for a specified account.
This updates `shield_transparent_funds` to look up the internal
(change) address for the account specified, and use that as the
destination for shielding transparent funds.

Fixed #614
2022-08-26 16:03:25 -06:00
Kris Nuttycombe f800f9f144
Merge pull request #613 from zcash/add-orchard-to-usk
zcash_client_backend: Generate Orchard component for USKs
2022-08-24 11:26:08 -06:00
Jack Grigg b42344d491 zcash_client_backend: Generate Orchard component for USKs
This ensures that the resulting UFVKs and UAs also contain Orchard
components.
2022-08-24 14:56:58 +00:00
Kris Nuttycombe 5dceb93ec8
Merge pull request #612 from nuttycom/wallet/set_fixed_user_version
Set a fixed `user_version` value for the sqlite schema in the initial migration.
2022-08-23 14:29:46 -06:00
Kris Nuttycombe a643fd5ea0
Merge pull request #611 from nuttycom/wallet/test_dump_schema
Add a test to check the result of database migrations against an expected schema.
2022-08-23 14:29:08 -06:00
Kris Nuttycombe 83c47b1a42 Set a fixed `user_version` value for the sqlite schema in the initial migration. 2022-08-23 12:23:47 -06:00
Kris Nuttycombe 6b73443f53 Add a test to check the result of database migrations against an expected schema. 2022-08-23 12:16:19 -06:00
dependabot[bot] d784c7b1ec
build(deps): bump actions/cache from 3.0.7 to 3.0.8
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.7 to 3.0.8.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.7...v3.0.8)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-23 05:15:52 +00:00
str4d ca84123038
Merge pull request #609 from nuttycom/wallet/update_schemer
Update to schemer 0.2
2022-08-19 17:47:50 +01:00
str4d 58f34426d4
Merge pull request #608 from nuttycom/wallet/batch_trial_decryption
Implement parallel, batched trial decryption in wallet scanning.
2022-08-19 17:43:35 +01:00
Kris Nuttycombe 5d817f6120 Update to schemer 0.2 2022-08-19 09:55:55 -06:00
Kris Nuttycombe 397c76ca8d Add tests for batched note decryption. 2022-08-18 16:48:52 -06:00
Kris Nuttycombe 6156215d4c Add parallelized batched trial decryption to wallet scanning.
Co-authored-by: str4d <jack@electriccoin.co>
2022-08-18 16:48:22 -06:00
Kris Nuttycombe 7acd47eae8 Copy parallel batch decryption data types from zcash/zcash
This is an unmodified copy of 7d1e14ac3d/src/rust/src/wallet_scanner.rs

Co-authored-by: str4d <jack@electriccoin.co>
2022-08-18 16:40:27 -06:00
str4d d85f94c4d3
Merge pull request #602 from zcash/dependabot/github_actions/actions/cache-3.0.7
build(deps): bump actions/cache from 3.0.5 to 3.0.7
2022-08-18 23:32:37 +01:00
str4d 85a1522c22
Merge pull request #607 from adityapk00/oa
Return orchard address from UA
2022-08-18 23:32:19 +01:00
str4d 59d361f494
Merge pull request #600 from nuttycom/wallet/migrations
Add database migrations to zcash_client_sqlite.
2022-08-18 23:31:16 +01:00
Kris Nuttycombe 913d572087 Allow the seed to be an optional argument to database init.
This adds a new `WalletMigrationError` type so that we have
a good place to report whether or not the seed is required.
2022-08-18 16:03:20 -06:00
Kris Nuttycombe 61fb732e7b Ensure that we detect the correct pool type for sent notes. 2022-08-18 10:15:58 -06:00
Kris Nuttycombe e0c919cc68 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-08-18 10:15:58 -06:00
Kris Nuttycombe 880076b38f Improve error reporting for address & viewing key decoding. 2022-08-18 10:15:58 -06:00