Commit Graph

8015 Commits

Author SHA1 Message Date
Jack Grigg
94549326c9 Bugfix: Use time instead of block height for Sapling key metadata 2018-09-11 12:45:25 +01:00
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
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
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
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
Jack Grigg
07d85a6455 Define additional booleans for readability 2018-08-30 09:42:21 +01: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
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
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
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
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
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
2456eb80ae Metrics UI: Tell Windows users how to stop zcashd
Ctrl+C is not configured for Windows, as it does not work (yet):
https://github.com/Microsoft/vscode/issues/9347
https://github.com/Microsoft/console/issues/57
2018-08-17 16:46:41 +01:00
Jack Grigg
8fa09c244a Metrics UI: Enable virtual terminal sequence processing on Windows
https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
2018-08-17 16:46:29 +01:00
Jack Grigg
c5b26acad8 Use boost::filesystem::path::string() instead of path::native()
This fixes a mingw32 conversion error during cross-compilation.
2018-08-17 16:46:18 +01:00
Jack Grigg
1dae6e9336 Pass correct compiler, linker, and flags into libsnark 2018-08-17 16:45:55 +01:00
Jack Grigg
d10a762fb8 Clean up libzcash CPPFLAGS, CXXFLAGS, and LDFLAGS
By using the flags defined through ./configure instead, libzcash will react to
configuration and build system changes (such as PIC_FLAGS being empty for
Windows builds).
2018-08-17 16:44:05 +01:00
Jack Grigg
ceca40d68f Measure Windows console size for metrics UI
Co-authored-by: David Mercer <radix42@gmail.com>
2018-08-17 16:43:43 +01:00
Simon
94f7201424 make-release.py: Versioning changes for 2.0.0. 2018-08-15 17:51:39 -07:00
Sean Bowe
955b328ad1 Sapling mainnet activation height 2018-08-15 12:09:31 -06:00
Sean Bowe
f791ce00eb Always write the empty root down as the best root, since we may roll back. 2018-08-14 15:17:30 -06:00
Jack Grigg
554e00e8f9 Disable Sapling features on mainnet
Also places them behind an experimental features flag on testnet
2018-08-13 14:18:18 +01:00
Jack Grigg
dfcf33fe15 test: Use regtest in key_tests/zs_address_test 2018-08-13 14:17:17 +01:00
Jack Grigg
e7ca4eb3c3 test: gtest for Sapling encoding and decoding 2018-08-13 13:20:07 +01:00
Sean Bowe
3e9aec2a37 make-release.py: Versioning changes for 2.0.0-rc1. 2018-08-09 16:46:45 +00:00
Homu
75286ba19b Auto merge of #3438 - Eirik0:3424-change-field-improvement, r=bitcartel
Only include the change field if we have a spending key

Closes #3424
2018-08-08 13:47:40 -07:00