Commit Graph

11861 Commits

Author SHA1 Message Date
Jack Grigg b33a7ec46e
wallet: Don't allow an HDSeed to be overwritten
We can maybe relax this restriction later once we have worked out the UX
implications.
2018-09-03 10:45:37 +01:00
Jack Grigg 4c1a26fb60
Add ZIP 32 usage to release notes 2018-09-03 10:45:37 +01:00
Jack Grigg b7f9a7ae02
wallet: Comment out HDSeed and CHDChain persistence to disk
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.
2018-09-03 10:45:37 +01:00
Jack Grigg c58dae6cda
init: Generate a new HD seed on startup 2018-09-03 10:45:37 +01:00
Jack Grigg 70b4ad2dcd
wallet: Switch from SaplingSpendingKey to SaplingExtendedSpendingKey
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.
2018-09-03 10:45:37 +01:00
Jack Grigg a4ac4fc3f4
wallet: Store Sapling key metadata indexed by ivk
Closes #3426.
2018-09-03 10:45:37 +01:00
Jack Grigg e2416930ea
wallet: Store HDSeed and chain data 2018-09-03 10:45:37 +01:00
Jack Grigg ec653523ad
Store HDSeed in CCryptoKeyStore 2018-09-03 10:45:33 +01:00
Jack Grigg 70c8c25e4b
Store HDSeed in CBasicKeyStore 2018-09-03 10:27:52 +01:00
Jack Grigg 7614198f9d
ZIP 32 Sapling structs 2018-09-03 10:27:52 +01:00
Jack Grigg f8d65e8f03
Update librustzcash with ZIP 32 APIs 2018-09-03 10:27:52 +01:00
Homu edd321609c Auto merge of #3489 - str4d:3215-z_sendmany, r=str4d
Add Sapling support to z_sendmany

Closes #3215.
2018-09-03 00:29:56 -07:00
Jack Grigg af04224522
Fix file permissions of wallet_sapling RPC test 2018-09-03 08:27:33 +01:00
Jack Grigg 0f436a0a26
Fix RPC test that checks exact wording of cleaned-up error message 2018-09-03 08:23:09 +01:00
Jack Grigg 7c02acc5b6
Minor cleanups 2018-09-03 01:28:31 +01:00
Jack Grigg 1ec06e93b1
Rename z_inputs_ to z_sprout_inputs_ 2018-09-03 01:13:18 +01:00
Homu 12c1156f31 Auto merge of #3172 - str4d:mingw32, r=str4d
Windows cross-compile support

Usage on Debian / Ubuntu:

> $ sudo apt install mingw-w64
> $ sudo update-alternatives --config x86_64-w64-mingw32-gcc
> (configure to use POSIX variant)
> $ sudo update-alternatives --config x86_64-w64-mingw32-g++
> (configure to use POSIX variant)
> $ HOST=x86_64-w64-mingw32 ./zcutil/build.sh

Closes #489.
2018-08-30 14:51:24 -07:00
Jack Grigg e47ccf2a00
libsnark: Use format macro constants for printing fixed-width values 2018-08-30 22:21:25 +01:00
Jack Grigg c53defda9d
libsnark: Force constants used in test comparisons to be unsigned 2018-08-30 21:37:10 +01:00
Homu 791a68cdf5 Auto merge of #2674 - str4d:2469-ci-workers-macos, r=str4d
[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.
2018-08-30 09:00:42 -07:00
Jack Grigg 07d85a6455
Define additional booleans for readability 2018-08-30 09:42:21 +01:00
Homu ad97158836 Auto merge of #3488 - sandakersmann:patch-4, r=bitcartel
Missing comma in debian package copyright license

Missing comma in debian package copyright license
2018-08-29 15:42:30 -07:00
Marius Kjærstad 63c9df9aa1
Missing comma in debian package copyright license
Missing comma in debian package copyright license
2018-08-27 15:53:09 +02:00
Jack Grigg e54c4d2ca1
rpcwallet: Add Sapling support to z_sendmany 2018-08-27 11:36:14 +01:00
Jack Grigg af4057b904
rpcwallet: Prevent use of both Sprout and Sapling addresses in z_sendmany 2018-08-27 11:13:49 +01:00
Jack Grigg 36e2141d92
rpcwallet: Add TransactionBuilder argument to AsyncRPCOperation_sendmany 2018-08-27 11:13:49 +01:00
Jack Grigg 81e0fd2eb9
wallet: Add HaveSpendingKeyForPaymentAddress visitor 2018-08-27 11:13:49 +01:00
Jack Grigg e22c115e78
Move GetSpendingKeyForPaymentAddress visitor into wallet.h
Also fixes it to not use the global pwalletMain.
2018-08-27 11:13:49 +01:00
Homu 7d6d1b853e Auto merge of #3485 - sandakersmann:patch-3, r=daira
Update debian package copyright license

Closes #3483. Fix debian package copyright attribution to match upstream.
2018-08-27 03:01:18 -07:00
Homu c53884d20a Auto merge of #3436 - str4d:3214-z_getbalance, r=str4d
Add Sapling support to z_getbalance and z_gettotalbalance

Also includes preparatory changes for various other RPCs that depend on `GetFilteredNotes` etc.

Closes #3214.
2018-08-24 21:01:53 -07:00
Jack Grigg 573de712ab
rpc: Clarify ivk balance issues in help text 2018-08-25 01:09:12 +01:00
Homu 6868aaff00 Auto merge of #3468 - sandakersmann:patch-1, r=bitcartel
Fix copyright attribution to match upstream

This has to be included to not violate the license.

Ref: https://github.com/bitcoin/bitcoin/blob/master/COPYING
2018-08-24 14:13:09 -07:00
Marius Kjærstad 0200e5ed36
Update debian package copyright license
Fix debian package copyright attribution to match upstream.
2018-08-24 20:25:00 +02:00
Homu ad8d4d831c Auto merge of #3427 - mdr0id:readme_update_rtd, r=daira
Readme update for ReadtheDocs migration

This PR is intended to provide a README that points to new ReadtheDocs locations.
2018-08-23 13:28:44 -07:00
Homu 582ca87bd4 Auto merge of #3451 - zancas:master, r=daira
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.
2018-08-23 11:23:23 -07:00
mdr0id 48f1728009 Resolve final edits for README
Update README.md

Update README with final edits
2018-08-22 13:21:35 -07:00
Jack Grigg d316992f55
rpc: Clarify Sprout shielded addresses in help text 2018-08-22 12:33:30 +01:00
Jack Grigg 6c6ed24310
libsnark: Fix stale comment 2018-08-21 18:06:23 +01:00
Jack Grigg 8b3d0ef4e3
libsnark: Use mp_limb_t cast instead of uint64_t when masking bigint.data 2018-08-21 18:05:14 +01:00
Jack Grigg fa92a21a40
libsnark: Adjust SHA256 K value type to match the constant
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.
2018-08-21 18:04:50 +01:00
Jack Grigg 831b6af932
Metrics UI: Fall back to 80 cols if GetConsoleScreenBufferInfo() fails 2018-08-21 16:54:40 +01:00
Homu 622751da12 Auto merge of #3444 - LarryRuane:2982-mininode-version, r=str4d
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.
2018-08-20 09:48:51 -07:00
Jack Grigg 053cb3497d
Add Sapling support to z_getbalance and z_gettotalbalance
Closes #3214

Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
2018-08-20 11:35:06 +01:00
Jack Grigg 94e99acda6
Add Sapling support to GetFilteredNotes() and GetUnspentFilteredNotes()
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>
2018-08-20 11:34:54 +01:00
Homu 20f87bc226 Auto merge of #3422 - bitcartel:3061_track_notes_based_on_3062, r=str4d
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.
2018-08-17 14:42:52 -07:00
Jack Grigg c9339bb61f
test: Fix comment in WalletTests.FindMySaplingNotes 2018-08-17 21:39:16 +01:00
Jack Grigg bce692390f
configure: Don't add -ldl to RUST_LIBS for mingw32 2018-08-17 18:54:04 +01:00
David Mercer 8a16251eda
libsnark: convert 0ul to UINT64_C(0) 2018-08-17 18:54:04 +01:00
David Mercer 32d3a3352e
libsnark: convert long long and unsigned long to C++11 fixed-width types
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2018-08-17 18:53:59 +01:00
Jack Grigg 7d65dcf4d9
depends: Pass correct compiler, linker, and flags into googletest 2018-08-17 16:47:03 +01:00