Sapling keys generated from the seed are not yet persisted, so we don't
want to persist the seed or chain state either, otherwise the wallet
could end up in an inconsistent state.
Some tests are temporarily disabled because commenting out HDSeed
persistence breaks invariants inside CCryptoKeyStore.
Revert this commit during the PR for #3388.
The wallet now only stores Sapling extended spending keys, and thus can
only be used with keys generated from an HDSeed via ZIP 32.
Note that not all Sapling keys in the wallet will correspond to the
wallet's HDSeed, as a standalone Sapling xsk can be imported via
z_importkey. However, it must have been generated from a seed itself,
and thus is more likely to be backed up elsewhere.
[ci-workers] Add support for MacOSX
Also alters the `unix.yml` script to install all Python modules in a virtualenv, and adds curl and cmake dependencies.
Closes#2469.
Add Sapling support to z_getbalance and z_gettotalbalance
Also includes preparatory changes for various other RPCs that depend on `GetFilteredNotes` etc.
Closes#3214.
Revise help output for z_sendmany
The previous version of the usage message for z_sendmany used the word "Change"
in an ambiguous way.
The intent was to describe "Change" the noun that indicates the portion of a
transaction's funds that are returned to the payer, however the context did not
provide an immediate cue to differentiate from the verb form meaning
"to alter". Indeed, in other help strings in the same file that meaning of the
word is correct, i.e. the verb form is used. Moreover a typo in the form of a
missing "a" later in the same sentence exacerbated the problem, by decreasing
readability precisely where context could reduce confusion.
When used, it is cast to an integer_coeff_t, which is currently a long.
On LP64 systems, this cast is lossless. Issues with LLP64 systems will
be addressed later.
generalize mininode.py protocol versioning
Fixes#2982 -- replace `overwintered` boolean argument to NodeConn constructor with a protocol version integer, so that adding Sapling (and beyond) will be easier.
This could in future be refactored to be generic over PaymentAddress and
NotePlaintext in the return type, but for now let's be explicit about which
returned notes are for Sprout vs Sapling, and handle them separately.
Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
Track Sapling notes and nullifiers in the wallet (in-memory only, no persistence to disk)
Part of #3061. Add in-memory tracking of Sapling notes and nullifiers to the wallet.