Commit Graph

97 Commits

Author SHA1 Message Date
Jack Grigg e646905f1b cargo update 2022-03-22 19:34:29 +00:00
Kris Nuttycombe 315392ce3b Add OrchardWallet::GetTxActions
This method detects and returns metadata for any notes belonging to the
wallet that are spent in the transaction. It also trial-decrypts the
Orchard outputs of a transaction using the wallet's incoming viewing
keys along a set of OVKs provided by the caller, and returns metadata
about the notes that were successfully decrypted.
2022-03-18 08:03:16 -06:00
Kris Nuttycombe 80324bc653 Merge remote-tracking branch 'upstream/master' into feature/wallet_orchard-merge_master 2022-03-17 16:52:49 -06:00
Kris Nuttycombe 4eda33f184 Serialize the Orchard note commitment tree to the wallet.
This adds serialization of Orchard note commitment trees
to `SetBestChain` and deserialization and loading of those
trees to wallet load.
2022-03-11 22:47:37 -07:00
Daira Hopwood 999b395360 Improve memory hygiene, and use -stdin to pass the recovery phrase to the child zcash-cli process.
Co-authored-by: Jack Grigg <str4d@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-10 17:17:06 +00:00
Kris Nuttycombe 8bf99eaacc Merge remote-tracking branch 'upstream/master' into feature/wallet_orchard-merge_master 2022-03-09 22:17:49 -07:00
Kris Nuttycombe 237384cf2b Update incrementalmerkletree version 2022-03-07 18:32:58 -07:00
Daira Hopwood 6f5efcbb0f Improved error handling.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-07 18:39:23 +00:00
Daira Hopwood a36fceca70 Make a zcashd-wallet-tool executable.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-07 18:39:23 +00:00
Jack Grigg 7b7dddba0c cargo update 2022-03-01 00:34:02 +00:00
Kris Nuttycombe 258f0fc72f Add Orchard components to unified full viewing keys
Co-authored-by: Jack Grigg <jack@z.cash>
2022-02-22 21:08:10 +00:00
Kris Nuttycombe 6587b2ed86 Add Rust backend for Orchard components of the wallet.
Co-authored-by: str4d <thestr4d@gmail.com>
2022-02-17 17:50:17 -07:00
Jack Grigg 2da0856e6f Add Orchard recipient support to the transaction builder
Co-authored-by: Kris Nuttycombe <kris@nutty.land>
2022-02-15 23:28:55 +00:00
Kris Nuttycombe 6c9b9a53b5 Update librustzcash dependency. 2022-02-02 17:40:36 -07:00
Kris Nuttycombe bdcb12e445 Add a first-class type for transparent full viewing keys. 2022-01-27 21:27:43 -07:00
Kris Nuttycombe c21ffff790 Add correct selection of change addresses to z_sendmany
This also alters `TransactionBuilder::SendChangeTo` to take a
`libzcash::ChangeAddress` value and thus avoids the invalid
t-addr case of CTxDestination.
2022-01-27 21:27:43 -07:00
Jack Grigg 714f14168c rust: Add missing checks for transparent UFVK items 2022-01-18 21:32:33 +00:00
Kris Nuttycombe fe777c5624 Fix encoding order of unified addresses. 2022-01-05 18:30:06 -07:00
Kris Nuttycombe 98967e2ec7 Merge remote-tracking branch 'upstream/master' into feature/wallet_unified_addresses 2022-01-05 18:20:31 -07:00
Jack Grigg d85bfb4744 Migrate to latest revisions of Zcash Rust crates 2021-12-18 01:44:27 +00:00
Jack Grigg e257844261 cargo update
In the three days since the last update, `futures 0.3.18` was yanked due
to panics: https://github.com/rust-lang/futures-rs/issues/2529
2021-12-16 16:55:11 +00:00
Kris Nuttycombe 640f31463f Update to ufvk zcash_address build. 2021-12-13 18:51:15 -07:00
Jack Grigg df0534e35a cargo update
Thanks to metrics-rs/metrics#231 being merged, our dependency tree is
now almost entirely de-duplicated!
2021-12-13 21:27:02 +00:00
Kris Nuttycombe e7c507cfb3 Update orchard & librustzcash dependency versions. 2021-11-29 13:05:54 -07:00
Jack Grigg 6c0bd90ee6 ed25519-zebra 3 2021-11-29 20:01:57 +00:00
Jack Grigg 5ae516f7b0 cargo update 2021-11-29 19:56:48 +00:00
Kris Nuttycombe 59a4c84112 Adds Orchard Address, IncomingViewingKey, FullViewingKey, and SpendingKey types. 2021-11-24 19:08:17 -07:00
Kris Nuttycombe 13b9a69230
Merge pull request #5306 from nuttycom/feature/mnemonic_seeds
Adds HD seed derivation from ZIP-339 mnemonic phrases.

This replaces random generation of transparent spending keys with BIP-44-compatible derivation from a mnemonic seed phrase, and replaces the random HD seed previously used for Sapling HD key derivation
with the same mnemonic seed. After this change, all new transparent and Sapling addresses
will be derived from a new randomly generated mnemonic seed, which is produced in such a way that 
it is guaranteed to produce valid unified spending keys at account 0 for all address types.

Closes #5176.
Closes #2673.
2021-11-18 17:52:36 -07:00
Jack Grigg ca7160ebab tracing-subscriber 0.3 2021-11-06 21:06:30 +00:00
Jack Grigg 2005c91d41 cargo update 2021-11-06 21:06:30 +00:00
Kris Nuttycombe 67557df165 Use SecureString for mnemonic phrase. 2021-10-30 08:26:59 -06:00
Kris Nuttycombe ebab190fdf Replace account ID with ZIP-0032 key path in listaddresses output.
Account ID information is insufficiently granular to identify separate
pools of spend authority.
2021-10-20 13:33:47 -06:00
Kris Nuttycombe daf443c9e6 Update librustzcash dependency version. 2021-10-19 11:48:02 -06:00
Kris Nuttycombe 8883ae8b9e Add support for externally searching for valid Sapling diversifiers.
In order to support generation of unified addresses, it needs
to be possible for the code generating a unified address to search
the space of Sapling diversifiers to obtain a valid diversifier.

Historically, invalid diviersifiers were simply skipped, so we retain
this behavior when obtaining a Sapling address from the legacy HD seed.
2021-10-19 11:48:02 -06:00
Jack Grigg 8f0f8b6687 cargo update 2021-10-08 16:53:00 +00:00
Jack Grigg 6e90c84be7 Fix bugs in testnet Orchard circuit
The consensus branch ID is updated (as the NU5 consensus rules are
altered). The testnet NU5 activation height is also reset.
2021-09-28 22:56:37 +01:00
Jack Grigg 00724c9f5a Update halo2 and orchard dependencies with BOSL Zcash exception 2021-09-22 23:10:57 +01:00
Jack Grigg 660e938499 cargo update
Includes pasta_curves 0.2.1, which relicenses to MIT OR Apache-2.0.
2021-09-22 22:51:26 +01:00
Jack Grigg d087c8b089 cargo update 2021-09-17 13:52:09 +01:00
Jack Grigg 2aa9f766b2 Migrate to latest revisions of orchard and the zcash_* crates 2021-09-17 03:56:32 +01:00
Jack Grigg 710a5f8a9e Migrate to latest revisions of Zcash Rust crates 2021-09-15 00:35:53 +01:00
Jack Grigg 4b8885759e cargo update 2021-09-15 00:35:53 +01:00
Kris Nuttycombe a61318ec85 Use manual serialization for Merkle frontiers rather than bincode. 2021-08-24 09:47:04 -06:00
Daira Hopwood 5475b17ae9 Cargo.toml: use librustzcash after the merge of https://github.com/zcash/librustzcash/pull/424 .
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-08-19 21:07:53 +01:00
Jack Grigg 5ace59b38f rust: metrics 0.17 2021-07-30 18:22:05 +01:00
Jack Grigg 6e2a5b3f92 rust: cargo update 2021-07-30 18:22:05 +01:00
Jack Grigg 776e9c5a4b Add support for decoding and encoding Unified Addresses 2021-07-13 03:22:47 +01:00
Kris Nuttycombe e588d1d790 Update Orchard commitment tree hashes to use total MerkleCRH^Orchard. 2021-07-09 10:40:49 -06:00
Kris Nuttycombe 7a2be88768 ZIP 213: Add checks to support Orchard shielded coinbase outputs. 2021-07-01 12:42:37 +01:00
Kris Nuttycombe 5550dbe1b8 Fix implmentation of OrchardMerkleTree.DynamicMemoryUsage 2021-06-28 16:33:40 -06:00