Commit Graph

15684 Commits

Author SHA1 Message Date
Kris Nuttycombe ceeede3dc6
Merge pull request #5422 from LarryRuane/2021-12-getspentindex-logging
Dont log ERROR: spent index not enabled
2021-12-16 12:58:10 -07:00
Jack Grigg 407a0d9324 qa: Postpone recent CCache releases 2021-12-16 17:58:05 +00:00
Jack Grigg c37a69a357 depends Update Rust to 1.57.0
Also adds a developer script to make updating the hashes easier.
2021-12-16 17:57:34 +00:00
Jack Grigg 0d310a79ca depends: Update Boost to 1.78.0 2021-12-16 17:57:34 +00:00
Kris Nuttycombe fc1a16f4ff
Merge pull request #5423 from nuttycom/fix/orchard_batch_verifydb
Batch-verify Orchard transactions at the block level.
2021-12-16 10:43:09 -07: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 99b2098f89 Batch-verify Orchard transactions at the block level.
Fixes #5316
2021-12-16 08:58:14 -07:00
Larry Ruane f139cdc4fe Add new and modify existing Orchard RPCs, non-functional
The new RPCs aren't functional, only have argument parsing and sample
outputs, guarded by experimental -orchardwallet flag.

These changes used the tickets linked from
https://github.com/zcash/zcash/issues/5056 as a guide.
2021-12-15 16:40:23 -07:00
Kris Nuttycombe 6d36921b94 Add unified key components to the transparent & Sapling wallet parts. 2021-12-15 13:53:10 -07:00
Kris Nuttycombe 24ff7b36ec Add ZcashdUnifiedKeyMetadata and libzcash::ReceiverType 2021-12-15 13:53:10 -07:00
Kris Nuttycombe 4966bf315a Compute key id for UFVKs. 2021-12-15 13:53:10 -07:00
Kris Nuttycombe 6f702c72a7
Merge pull request #5421 from nuttycom/feature/wallet_unified_addresses-mnemonic_seed_init_validation
Check the output of zip339_phrase_to_seed in MnemonicSeed initialization.
2021-12-15 12:21:15 -07:00
Kris Nuttycombe 00bda351f8 Check the output of zip339_phrase_to_seed in MnemonicSeed initialization.
zip339_phrase_to_seed will return `false` if the string it is being
used to convert to a seed is not valid UTF-8, but this result was
previously unchecked.

Fixes #5399
2021-12-15 08:21:44 -07:00
Larry Ruane d0e836a15e Don't log 'ERROR: spent index not enabled' 2021-12-15 07:53:26 -07:00
Kris Nuttycombe 48446b5e39 Add functions for generating BIP-44 and ZIP-32 keypaths 2021-12-14 15:10:27 -07:00
Larry Ruane cc70cd2c46 add -orchardwallet experimental feature flag
Also, temporarily don't allow -orchardwallet if running mainnet.
2021-12-14 14:42:08 -07:00
Larry Ruane d0b85b69f3 add ParseArbitraryInt() for diversifier index 2021-12-14 14:42:08 -07:00
str4d 87eeee0607
Merge pull request #5400 from nuttycom/feature/wallet_orchard-ufvks
Add types & FFI for serialization of unified full viewing keys.
2021-12-14 21:38:53 +00:00
Kris Nuttycombe 1e18410b55 Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-12-14 13:02:41 -07:00
Kris Nuttycombe d1890ebd24 Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>
2021-12-13 21:03:36 -07:00
Kris Nuttycombe 6cccc4ad3c Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-12-13 18:53:27 -07:00
Kris Nuttycombe 8ae8ddd7d1 Add tests for ufvk roundtrip serialization. 2021-12-13 18:53:27 -07:00
Kris Nuttycombe 22cd218e83 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-12-13 18:53:27 -07:00
Kris Nuttycombe 217c56811d Add UnifiedFullViewingKey type.
This type is backed by the `zcash_address` implementaion of
unified full viewing keys. It is intended for serialization
and parsing of UFVKs, and provides conversion functions that
allow for construction to and from ZcashdUnifiedFullViewingKey
values.
2021-12-13 18:53:27 -07:00
Kris Nuttycombe c78887a148 Add Rust FFI components for unified full viewing keys. 2021-12-13 18:53:27 -07:00
Kris Nuttycombe 4257abd328 Adds SaplingDiversifiableFullViewingKey
Adds SaplingDiversifiableFullViewingKey as a superclass of
SaplingExtendedFullViewingKey, and reduces the Sapling component
of UnifiedFullViewingKey to the new intermediate type. This
permits deserialization from the data that will be present
in the serialized form of the Sapling component of a UFVK.
2021-12-13 18:53:25 -07: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
Larry Ruane 7fa0e1a6a9 test: automatically add missing nuparams
This test-only change allows python (rpc) tests to specify, for example,
that NU5 should be activated at height X, without having to specify all
the previous network upgrades. Previous upgrades can (and must) still be
specified if they activate at different block heights (than, in this
example, NU5). This makes tests easier to write (and read), especially
as the number of network upgrades increases over time.

Note that this change only affects zcashd behavior in regtest mode. For
the other network modes (testnet and mainnet), the activation heights
are hard-coded in chainparams.cpp.
2021-12-06 17:32:18 -07:00
Kris Nuttycombe c908a3b059
Merge pull request #5396 from nuttycom/feature/wallet_orchard-unified_addrs_prereq
Prerequisites for adding unified addresses to the wallet.
2021-11-30 18:24:50 -07:00
Kris Nuttycombe 3bfb9d0c84 Remove ZcashdUnifiedAddress in favor of UnifiedAddress 2021-11-30 12:58:29 -07:00
Kris Nuttycombe a2f8e3b56c Use CKeyID and CScriptID instead of new P2PKH/P2SHAddress classes. 2021-11-30 11:24:37 -07:00
Kris Nuttycombe d65200c860 Refine structure of Zcash address generation.
This commit does not include functional changes; it merely
breaks up content previously included in `zcash/address/zip32.h`
into smaller and more focused components.
2021-11-30 11:22:37 -07:00
Kris Nuttycombe aa808eb07d
Merge pull request #5357 from nuttycom/feature/wallet_orchard-add_key_types
Add Orchard Address, IncomingViewingKey, and FullViewingKey types.
2021-11-30 07:13:22 -07:00
Kris Nuttycombe 782c705cb1 Remove Orchard spending key equality implementation. 2021-11-29 14:26:25 -07:00
Kris Nuttycombe bde245d8bc
Remove incorrect FFI method documentation.
Co-authored-by: str4d <jack@electriccoin.co>
2021-11-29 13:08:30 -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
Jack Grigg 5ae516f7b0 cargo update 2021-11-29 19:56:48 +00:00
Kris Nuttycombe 6ee0dea218 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-11-26 08:41:52 -07:00
Kris Nuttycombe 59a4c84112 Adds Orchard Address, IncomingViewingKey, FullViewingKey, and SpendingKey types. 2021-11-24 19:08:17 -07:00
Kris Nuttycombe 8f5591a9c1 Add libzcash::AccountId type. 2021-11-24 18:59:25 -07:00
Kris Nuttycombe 7aaefab2d7
Merge pull request #5389 from superbaud/docker-volume-readme-patch
Correct typo in docker run's volume argument.
2021-11-24 13:24:54 -07:00
Kris Nuttycombe 9202b127d0 Merge remote-tracking branch 'upstream/master' into feature/wallet_orchard 2021-11-23 18:38:07 -07:00
str4d c76b756a68
Merge pull request #5356 from nuttycom/feature/wallet_orchard-rename_tree_types
Rename OrchardMerkleTree -> OrchardMerkleFrontier, remove IncrementalSinsemillaTree
2021-11-23 20:34:23 +00:00
Kris Nuttycombe f49f4c73d8 Rename OrchardMerkleTree -> OrchardMerkleFrontier
Remove IncrementalSinsemillaTree; this will be replaced by
a more full-featured OrchardWallet type which embeds the
incremental merkle tree used in wallet operations.
2021-11-23 07:27:34 -07:00
str4d f8e99e7ba5
Merge pull request #5373 from ZcashFoundation/lib-zcash-script-sigops
Add legacy sigops counts to the zcash_script library API
2021-11-22 16:03:48 +00: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
Kris Nuttycombe c7089d2086
Merge pull request #5374 from rex4539/typos
Fix typos
2021-11-18 15:08:13 -07:00
Kris Nuttycombe 14f95572fa
Improve documentation of the `-walletrequirebackup` zcashd wallet configuration option. 2021-11-18 15:05:46 -07:00