Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove transaction equality in favor of explicit hash equality checks. #23

Draft
wants to merge 679 commits into
base: zip-239
Choose a base branch
from

Conversation

nuttycom
Copy link

This works except for where we use transaction equality (somewhat spuriously) in gmock matchers.

therealyingtong and others added 29 commits February 15, 2022 09:50
Co-authored-by: Kris Nuttycombe <kris@nutty.land>
Co-authored-by: Kris Nuttycombe <kris@nutty.land>
Co-authored-by: Jack Grigg <jack@z.cash>
This replaces the previous use of the `NO_MEMO` constant, instead
passing the optionality through to Rust for handling.
…er_recipients

Add Orchard recipient support to the transaction builder
…yaddress-reject-ua-component

z_listreceivedbyaddress: reject UA component addr (zcash#5537)
Mark z_gettotalbalance and dumpwallet as deprecated
Co-authored-by: str4d <thestr4d@gmail.com>
This tests the following operations:
* add a spending key to the wallet
* add notes from the Orchard bundle component of a transaction to the
  wallet
* detect notes in the wallet that correspond to the spending key
* verify that notes that are not ours are not mistakenly labeled
  as ours
In cases where we want to be able to decode a string that
is known to be a unified address, it doesn't make sense to have
to route through KeyIO::DecodePaymentAddress and then return
an error depending upon the result type, when it's possible to
provide unified address parsing more directly.

KeyIO::DecodePaymentAddress has been modified to delegate
to UnifiedAddress::Parse
…or_orchard

Add Orchard support to the z_gettreestate RPC
…ate.

Co-authored-by: Kris Nuttycombe <kris@nutty.land>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
…d_orchard

Add Rust backend for the Orchard components of the zcashd wallet.
Co-authored-by: Jack Grigg <jack@z.cash>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
nuttycom and others added 29 commits March 17, 2022 11:38
Co-authored-by: ying tong <yingtong@z.cash>
The incorrect extension caused `make distdir-am` to fail due to a
missing rule for the header file.

Closes zcash#5694.
…mited_ua_inputs

Add UnifiedAddress variant to ZTXOSelector
build: Fix `zcash/address/orchard.hpp` filename in `src/Makefile.am`
…rge_master

Merge master branch back to feature/wallet_orchard
This replaces the bool argument with a string argument, enabling us to
add additional privacy strategies. We also alter the default to be
backwards-compatible with existing RPC method usage, by only enabling
the strongest checks if a Unified Address is involved.

Closes zcash#5676.
We now have a full roster of privacy policies. We can graph the
relationships between the policies; arrows point from more-private to
less-private, and each policy is permitted to reveal information covered
by all policies pointing to it (in addition to the extra information it
is permitted to reveal).

                       FullPrivacy
                            v
                   AllowRevealedAmounts
                        v           v
    AllowRevealedRecipients   ---- AllowRevealedSenders
               v             /               v
     AllowFullyTransparent <-  AllowLinkingAccountAddresses
                        v       v
                        NoPrivacy

The synthetic `LegacyCompat` policy now uses the `AllowFullyTransparent`
policy for backwards compatibility, and the `FullPrivacy` policy if the
sender or recipients involve Unified Addresses.

Closes zcash#5677.
Closes zcash#5678.
The missing header reference meant that Gitian builds didn't include the
file in its distribution step, causing subsequent builds to fail with a
'file not found' error.

Closes zcash#5697.
build: Add missing `util/match.h` to `src/Makefile.am`
…to the wallet.

This completes some unfinished work from zcash#5549
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.
z_sendmany: Replace `allowRevealedAmount` with `privacyStrategy`
Co-authored-by: str4d <thestr4d@gmail.com>
One of the invariants that we want to hold for unified addresses
is that we never want change addresses to be visible to users.
This updates address metadata retrieval to also indicate whether
or not an address is associated with a UFVK's internal key,
and omits and flags change addresses in z_viewtransaction output.
Zcash: Only the refactor and addition of hdkeypath to transparent keys.

(cherry picked from commit bitcoin/bitcoin@77c912d)
Also refactors Sapling key export logic to match. Sapling key exports
already have hdkeypath and seedfp (in a different spot in the line).

Sprout key exports are unmodified, because we have removed the ability
to generate new Sprout keys, so there will never be HD Sprout keys.
…nsaction

Add Orchard and Unified Address support to z_viewtransaction
Include HD keypath info in `dumpwallet` and `z_exportwallet`
Add Orchard support to the zcashd wallet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.