Kris Nuttycombe
6fbcba641d
Fix a bug in initialization of the Orchard wallet after NU5 activation.
...
When initializing a new Orchard wallet after NU5 activation, it is
not valid to start from the empty note commitment tree; instead,
the note commitment tree needs to be initialized from the state of
the global Orchard Merkle frontier.
In addition, this change necessitates a change to how rewinds work,
such that in a rollback scenario with a newly initialized wallet
that does not have sufficient checkpoints to fully satisfy a requested
rewind, the rewind is allowed to proceed so long as it does not
invalidate any persisted witness data.
2022-04-04 13:05:42 -06:00
Kris Nuttycombe
a852eb223b
Update incrementalmerkletree version to fix GC bug & use updated API.
...
This also modifies the serialized form of the wallet's incremental
merkle tree. This will require a complete reindex for testnet wallets.
2022-03-31 10:52:48 -06:00
therealyingtong
bc33ba5a9f
Update FFI to use scoped APIs for viewing keys and addresses
2022-03-30 08:30:27 -06:00
Jack Grigg
9e9f58b26f
Merge branch 'master' into unify-nu5-consensus-changes
2022-03-23 02:57:16 +00:00
Jack Grigg
77a971fbc1
Migrate to latest `zcash/librustzcash` revision
...
This includes:
- `orchard =0.1.0-beta.3` which includes the final circuit changes.
- The new NU5 consensus branch ID.
- Updated ZIP 244 test vectors (which use the NU5 consensus branch ID).
2022-03-23 02:05:06 +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
cb2c89eedf
Use the tracing crate for debugging.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-11 17:17:56 +00: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
25792cba93
Move `wallet_tool.rs` from `src/rust/src` into `src/rust/bin`.
...
Also add a brief description of `zcashd-wallet-tool` to `src/rust/README.md`.
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
21430b13ac
depends: Update Rust to 1.59.0
2022-03-01 00:09:18 +00:00
Jack Grigg
9f5f36e94c
Migrate to `orchard` crate revision with circuit changes
...
Part of zcash/zcash#5385 .
2022-02-28 23:52:49 +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
96d6ee0b8f
Update ZIP 244 implementation
...
This brings in the changes that align the transparent parts of ZIP 244
with BIP 341.
2022-02-16 03:29:42 +00: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
Kris Nuttycombe
640f31463f
Update to ufvk zcash_address build.
2021-12-13 18:51:15 -07: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
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
373206027f
depends: Update Rust to 1.56.1
2021-11-06 21:06:30 +00:00
Jack Grigg
ca7160ebab
tracing-subscriber 0.3
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
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
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
Daira Hopwood
dffeb7df04
Update authors of librustzcash to everyone currently and formerly on Core team (in alphabetical order).
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-14 10:15:35 +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
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