Homu
0e0f5e4ea7
Auto merge of #3496 - bitcartel:3442_sapling_note_locking, r=str4d
...
Add Sapling note locking to the CWallet class
Closes #3442 .
2018-09-12 09:07:14 -07:00
Jack Grigg
c861137624
net: Check against the current epoch's version when disconnecting peers
2018-09-12 10:17:33 +01:00
Jack Grigg
feee210af6
net: Check against the next epoch's version when evicting peers
2018-09-12 10:10:22 +01:00
Jack Grigg
07d3f947ec
Extract a helper method for finding the next epoch
2018-09-12 10:07:44 +01:00
Jack Grigg
ebf4c0671e
net: Check against the current epoch's version when rejecting nodes
2018-09-12 09:27:28 +01:00
Homu
d2b5a2daeb
Auto merge of #3502 - wo01:fix-num_bits, r=bitcartel
...
Fix assertion failure in circuit.merkle_tree_gadget_weirdness test on Windows
zcash-gtest.exe fails
```
[ RUN ] circuit.merkle_tree_gadget_weirdness
Assertion failed!
Program: C:\zcash-gtest.exe
File: ./snark/libsnark/gadgetlib1/gadgets/basic_gadgets.tcc, Line 50
Expression: this->pb.lc_val(packed).as_bigint().num_bits() <= bits.size()
```
The argument type of `__builtin_clzl()` function is unsigned long.
So, we need to replace `__builtin_clzl` with `__builtin_clzll`. (The argument type of `__builtin_clzll()` is unsigned long long (64bit)).
2018-09-11 17:02:09 -07:00
Homu
396bdaf00f
Auto merge of #3307 - gtank:3187-refactor-checkblock, r=bitcartel
...
Refactor ContextualCheckBlock tests
This cleans up and condenses our quadratically-scaling transaction format / consensus rule tests. They still technically scale quadratically, but should be much more readable and manageable now - all that remains in the individual test cases is the specific version flag tweaking we're trying to test.
Closes #3187 .
2018-09-11 14:53:59 -07:00
Simon
17b6a9d376
Update comment for test ContextualCheckBlockTest.BlockSproutRulesRejectOtherTx
2018-09-11 14:49:47 -07:00
Jack Grigg
94549326c9
Bugfix: Use time instead of block height for Sapling key metadata
2018-09-11 12:45:25 +01:00
Simon
761f8c8bb8
Add unit test SaplingNoteLocking
2018-09-04 14:56:08 -07:00
Simon
b1c693e532
Add methods to store SaplingOutPoint in setLockedSaplingNotes
2018-09-04 14:56:08 -07:00
Simon
0f62cacf0c
Refactor: rename ListLockedNotes -> ListLockedSproutNotes
2018-09-04 14:56:08 -07:00
Simon
9ae73247e2
Refactor: rename UnlockAllNotes -> UnlockAllSproutNotes
2018-09-04 14:56:08 -07:00
Simon
d358d145ca
Refactor: rename setLockedNotes -> setLockedSproutNotes
2018-09-04 14:55:58 -07: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
WO
3786db4fb9
The long data type is replaced with int64_t
2018-09-01 00:57:11 +09:00
WO
c1992b5834
long -> int64_t
2018-09-01 00:37:57 +09:00
WO
a7102acb7e
Add an assert for num_bits function
2018-08-31 19:56:20 +09:00
WO
ccb58e2cab
Fix a bug of Windows binary
2018-08-31 12:36:36 +09: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
2962a72e35
Rename GetFirstBlockTransaction() to GetFirstBlockCoinbaseTx()
2018-08-30 14:58:19 +01:00
Jack Grigg
d7bcbfaee4
Fix test after refactor to check bacd-cb-height rule on a genesis block
2018-08-30 14:50:57 +01:00
Jack Grigg
fb22b3bbd8
Revert NU activation heights in reverse order
...
Ensures that global state remains consistent.
2018-08-30 14:44:50 +01:00
Jack Grigg
d70d103ee0
Ensure SCOPED_TRACE falls out of scope when necessary
2018-08-30 14:41:56 +01:00
George Tankersley
e601446adc
Refactor ContextualCheckBlock tests
...
Combines some of the needlessly separate tests. Each formerly separate
test is tagged with a SCOPED_TRACE to make sure logs are still useful.
2018-08-30 14:39:07 +01:00
George Tankersley
ec7466b62f
Refactor ContextualCheckBlock tests ( #3187 )
...
Initial cleanup. Reduces duplication of code, especially around
constructing transactions, resetting the activation heights, and setting
up the EXPECT calls for accepting and rejecting tests.
Also adds a bunch of comments explaining the test plan and what
particular parts of the test are doing.
2018-08-30 14:37:19 +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
Simon
303f80fb1e
Fix comment in CWallet::SyncMetaData.
2018-08-08 12:03:10 -07:00
Simon
3c3d1f0a38
Clean up wallet unit tests: replace .value() with .get() for clarity.
...
This is to avoid confusion with note.value().
2018-08-08 12:03:10 -07:00
Simon
58a1224d63
Update wallet unit tests to revert upgraded network parameters.
2018-08-08 12:03:10 -07:00
Simon
52d162319d
Add new wallet test: MarkAffectedSaplingTransactionsDirty
...
Also rename MarkAffectedTransactionsDirty to MarkAffectedSproutTransactionsDirty.
2018-08-08 12:03:10 -07:00
Simon
eba096f24e
Add new wallet test: GetConflictedSaplingNotes
2018-08-08 12:03:10 -07:00
Simon
a5ca7967a4
Add new wallet test: SetSaplingNoteAddrsInCWalletTx.
2018-08-08 12:03:10 -07:00
Simon
3afc6ce219
Update CWallet::GetConflicts for Sapling.
2018-08-08 12:03:10 -07:00
Simon
6d8ea4fa82
Fix typo in parameter name.
2018-08-08 12:03:10 -07:00
Simon
9fe34549b1
Fix inaccurate comments in test.
2018-08-08 12:03:10 -07:00
Simon
668ca2974a
Fix typo in variable name in test.
2018-08-08 12:03:10 -07:00
Simon
992a82c649
Rename wallet tests for clarity between Sprout and Sapling.
2018-08-08 12:03:10 -07:00
Simon
f13387486e
Add new wallet tests: SpentSaplingNoteIsFromMe.
2018-08-08 12:03:10 -07:00
Simon
fba4168049
Add new wallet test: UpdatedSaplingNoteData.
2018-08-08 12:03:10 -07:00
Simon
e5df6ec5cc
Add new wallet test: NavigateFromSaplingNullifierToNote
...
Checks caching of Sapling nullifier and mapping to its SaplingOutPoint.
2018-08-08 12:03:10 -07:00
Simon
2f6481f835
Add two new wallet tests: FindMySaplingNotes, SaplingNullifierIsSpent.
2018-08-08 12:03:10 -07:00
Simon
c343e2db9a
Fix code review nits.
2018-08-08 12:03:10 -07:00
Simon
3b6dd486b4
Refactor IsSpent(nullifier) for Sprout and Sapling domain separation.
...
We need separate functions for checking Sprout and Sapling nullifiers,
because they are in separate domains and aren't guaranteed to be
collision-resistant (otherwise there is a possibility of a nullifier
collision, however remote, between Sprout and Sapling causing the spend
of one to prevent the spend of the other).
2018-08-08 12:03:10 -07:00
Simon
ec064abbdf
Iterate over mapSaplingFullViewingKeys with ivk->fvk mapping (1:1).
...
When diversified addresses are supported, iterating over
mapSaplingIncomingViewingKeys will be inefficient as the mapping will
be addresses->ivk (n:1).
2018-08-08 12:03:10 -07:00
Simon
28d3dc8532
Add test for CWalletTx::SetSaplingNoteData()
2018-08-08 12:03:10 -07:00
Simon
f12daeb44a
Clean up names of unit tests in gtest/test_wallet.cpp.
2018-08-08 12:03:10 -07:00
Simon
edfc6a787f
Update CWallet::IsSpent() to check Sapling nullifiers.
2018-08-08 12:03:10 -07:00
Simon
ad1e90dd34
Add caching and updating of Sapling note nullifier.
2018-08-08 12:03:10 -07:00
Simon
f9816408b2
Update CWalletTx::GetAmounts() to return COutputEntry for Sapling valueBalance.
2018-08-08 12:03:10 -07:00
Simon
f686388991
Cleanup CWalletTx::GetAmounts() for clarity. No-op.
2018-08-08 12:03:10 -07:00
Simon
c47c1e9363
Remove dead code in CWalletTx::GetAmounts() as filed in issue #3434 .
2018-08-08 12:03:10 -07:00
Simon
d7cf640bbf
Create CWallet::IsSaplingNullifierFromMe()
2018-08-08 12:03:10 -07:00
Simon
037cacf2ce
Rename IsFromMe(nullifier) to IsSproutNullifierFromMe(nullifier).
2018-08-08 12:03:10 -07:00
Simon
78584ef794
Create CWallet::FindMySaplingNotes()
2018-08-08 12:03:09 -07:00
Simon
d4d0ec7e95
Update test to pass in required cm to SaplingNotePlaintext::decrypt().
2018-08-08 12:03:09 -07:00
Sean Bowe
69c4391b0f
Check commitment validity within the decryption API for Sapling note plaintexts.
2018-08-08 12:03:09 -07:00
Simon
52332fb417
Create CWallet::AddToSaplingSpends() to track Sapling nullifiers.
2018-08-08 12:03:09 -07:00
Simon
3a83e7c9a4
Update CWallet::UpdatedNoteData() for Sapling.
2018-08-08 12:03:09 -07:00
Simon
dae1c4204a
Update CWallet::MarkAffectedTransactionsDirty() for Sapling.
2018-08-08 12:03:09 -07:00
Simon
a132719da5
Add ivk member variable and equality comparators to SaplingNoteData class.
2018-08-08 12:02:27 -07:00
Za Wilcox
da85cdfe27
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-08 12:57:27 -06:00
Simon
3438e26cc3
Rename mapTxNullifiers to mapTxSproutNullifiers.
2018-08-08 11:37:38 -07:00
Simon
d5e490d9f2
Rename CWallet::AddToSpends methods for clarity.
2018-08-08 11:37:38 -07:00
Simon
f41bf503e1
Rename mapNullifiersToNotes to mapSproutNullifiersToNotes.
2018-08-08 11:37:38 -07:00
Simon
618206c7d5
Rename GetNoteNullifier to GetSproutNoteNullifier.
2018-08-08 11:37:38 -07:00
Simon
57faf44e61
Rename FindMyNotes to FindMySproutNotes.
2018-08-08 11:37:38 -07:00
Homu
40f320e0ee
Auto merge of #3443 - daira:testnet-rollback, r=str4d
...
Support testnet rollback.
Part of #1302 . Closes #2905 .
2018-08-08 05:28:08 -07:00
Jack Grigg
13751895c7
Move RewindBlockIndex log message inside rewindLength check
2018-08-08 12:08:29 +01:00
Homu
0c5733fc22
Auto merge of #3448 - ebfull:sapling-params, r=bitcartel
...
Switch to use the official Sapling parameters
2018-08-07 11:20:10 -07:00
Eirik Ogilvie-Wigley
7929851626
Only include the change field if we have a spending key
2018-08-06 09:58:40 -06:00
Jack Grigg
d0372cff5e
Adjust Makefile so that common can be used by the wallet
2018-08-05 10:41:06 +01:00
Jack Grigg
0ecdd0f30a
chainparams: Add BIP 44 coin type (as registered in SLIP 44)
2018-08-05 10:41:06 +01:00
Jonas Schnelli
4922d1c19a
Fix test_bitcoin circular dependency issue
2018-08-05 10:41:06 +01:00
Cory Fields
6a753e4f9c
crypter: shuffle Makefile so that crypto can be used by the wallet
...
Wallet must come before crypto, otherwise linking fails on some platforms.
Includes a tangentially-related general cleanup rather than making the Makefile
sloppier.
2018-08-05 10:41:07 +01:00
Sean Bowe
198dfd3c36
Switch to use the official Sapling parameters.
2018-08-04 16:28:39 -06:00
Homu
aa32786576
Auto merge of #3396 - arcalinea:3389_sapling_crypter, r=str4d
...
Update CCryptoKeyStore with Sapling support
Sapling crypter overrides for various `CCryptoKeyStore` functions such as:
- `HaveSaplingSpendingKey()`
- `GetSaplingSpendingKey()`
Also includes some changes to prepare for diversified addresses and ZIP 32.
Closes #3389
2018-08-03 09:48:22 -07:00
Jack Grigg
25d5e80cbe
Rename *SpendingKey -> *SproutSpendingKey
...
Also GetPaymentAddresses -> GetSproutPaymentAddresses
2018-08-03 10:10:26 +01:00
Jack Grigg
f84cf5f817
Formatting nits
2018-08-03 02:25:51 +01:00
Jack Grigg
4c77517772
Rename *ViewingKey* -> *SproutViewingKey*
2018-08-03 02:23:38 +01:00
Jack Grigg
74f5b010df
Rename Serialized*Size -> SerializedSprout*Size
2018-08-03 01:57:40 +01:00
Jack Grigg
93fcf892d4
Rename SpendingKeyMap -> SproutSpendingKeyMap
2018-08-03 01:47:30 +01:00
Jack Grigg
5175a7f07b
Pass SaplingPaymentAddress to store through the CKeyStore
2018-08-03 01:01:45 +01:00
Jack Grigg
bc6344b350
Add CWallet::AddCryptedSaplingSpendingKey() hook
...
To be filled in when we implement Sapling persistence to disk.
2018-08-03 00:23:08 +01:00
Jack Grigg
9c9258c4f8
Remove outdated comment
2018-08-03 00:23:08 +01:00
Jack Grigg
4a89221ffc
Check for unencrypted Sapling keys in CCryptoKeyStore::SetCrypted()
2018-08-03 00:23:08 +01:00
Jack Grigg
0adba6789b
Add Sapling decryption check to CCryptoKeyStore::Unlock()
2018-08-03 00:23:08 +01:00
Jack Grigg
e8a949c153
Rename CryptedSpendingKeyMap -> CryptedSproutSpendingKeyMap
2018-08-03 00:23:08 +01:00
Jack Grigg
adf2eadba2
Rename DecryptSpendingKey -> DecryptSproutSpendingKey
2018-08-03 00:23:08 +01:00
Jay Graber
85beb9c9ca
Add Sapling keys to CCryptoKeyStore::EncryptKeys
2018-08-03 00:23:08 +01:00
Jay Graber
55f2889396
Add Sapling have/get sk crypter overrides
2018-08-03 00:23:08 +01:00
Daira Hopwood
66856b2b3c
Support testnet rollback.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-08-02 23:10:30 +01:00
Sean Bowe
d9ef8f622e
Check the hash of the (Sapling+) zk-SNARK parameters during initialization.
2018-08-02 12:18:13 -06:00
Homu
871e1726c6
Auto merge of #3340 - Eirik0:rename-merkle-typedefs, r=str4d
...
Rename merkle tree typedefs to include Sprout
This is to be consistent with the naming convention we have been using to distinguish Sprout/Sapling.
2018-08-01 20:48:17 -07:00
Homu
16117c0d5a
Auto merge of #3439 - ebfull:fix-ecc, r=ebfull
...
Don't call ECC_Start/ECC_Stop outside the test harness.
2018-08-01 17:23:14 -07:00
Sean Bowe
80bd573dc2
Make changes to gtest ECC behavior suggested by @str4d.
2018-08-01 16:53:27 -06:00
Sean Bowe
262d21bcbb
Don't call ECC_Start/ECC_Stop outside the test harness.
2018-08-01 16:45:12 -06:00
Homu
0361f789fe
Auto merge of #3246 - str4d:checkpoint-304600, r=bitcartel
...
Add some more checkpoints, up to the 1.1.0 release
2018-08-01 13:55:34 -07:00
Homu
066cc9c6c7
Auto merge of #3429 - str4d:3217-sapling-address-creation, r=str4d
...
Add Sapling support to z_getnewaddress and z_listaddresses
Closes #3217 .
2018-08-01 12:01:39 -07:00
Jack Grigg
40dc060cb0
test: Update rpc_wallet_z_importexport to account for Sapling changes
2018-08-01 19:59:57 +01:00
Eirik Ogilvie-Wigley
7d379f18c5
Rename test objects to include sprout or sapling
2018-08-01 10:52:58 -06:00
Eirik Ogilvie-Wigley
8ea8ef9850
Rename Witnesses to include sprout or sapling
2018-08-01 10:41:36 -06:00
Eirik Ogilvie-Wigley
4fc309f0f5
Rename Merkle Trees to include sprout or sapling
2018-08-01 10:31:09 -06:00
Jack Grigg
4fab49e173
test: Another assert in wallet_zkeys_tests.store_and_load_sapling_zkeys
2018-08-01 09:46:32 +01:00
Homu
d84f14ec4a
Auto merge of #3417 - str4d:sapling-tx-builder, r=ebfull
...
TransactionBuilder for Sapling and transparent transactions
This PR includes zcash/librustzcash#24 , and will create a testnet chain split once merged into master (and once a Sapling transaction is mined).
2018-07-31 23:44:29 -07:00
Sean Bowe
a310f6c5fa
Relocate ECC_Start() to avoid test failures.
2018-08-01 00:42:02 -06:00
Jack Grigg
fbd029d99d
Formatting
2018-07-31 23:28:42 +01:00
Sean Bowe
3d75e8b3e7
Move `extern params` to beginning of `test_checktransaction`.
2018-07-31 08:33:33 -06:00
Sean Bowe
291895fac7
Ensure sum of valueBalance and all vpub_new's does not exceed MAX_MONEY inside of CheckTransactionWithoutProofVerification.
2018-07-30 22:35:31 -06:00
Sean Bowe
04ed758e37
Fix bug in return value.
2018-07-30 22:03:40 -06:00
Homu
a11e6aaacc
Auto merge of #3336 - arcalinea:expiryheight-createrawtransaction, r=bitcartel
...
Take expiryheight as param to createrawtransaction
Addresses #3333
2018-07-30 13:56:34 -07:00
Simon
f01c11bd0f
Add tests for expiryheight parameter of RPC createrawtransaction.
2018-07-30 10:24:10 -07:00
Jack Grigg
3f4ad5967b
Fix block hash for checkpoint at height 270000
2018-07-30 17:45:04 +01:00
Jack Grigg
eec85c4388
Add Sapling support to z_getnewaddress and z_listaddresses
2018-07-30 16:24:20 +01:00
Jack Grigg
281b51e567
Raise the 90-character limit on Bech32 encodings
...
Regtest addresses are 91 characters, and ZIP 32's Bech32 encoding will
be significantly longer.
2018-07-30 16:01:22 +01:00
Jack Grigg
4715b31c76
Implement CKeyStore::GetSaplingPaymentAddresses()
2018-07-30 16:01:22 +01:00
Jack Grigg
54a868cf0a
Rename xsk to expsk
...
xsk will be used for ZIP 32 extended spending keys, so renaming here to
reduce confusion.
2018-07-30 14:26:29 +01:00
Jack Grigg
a8dd4b0cf1
TransactionBuilder: Make fee configurable
2018-07-30 12:52:48 +01:00
Jack Grigg
45c0d1ec84
TransactionBuilder: Add change output to transaction
2018-07-30 12:46:18 +01:00
Homu
6b9c962725
Auto merge of #3410 - LarryRuane:3399-peer-ban, r=bitcartel
...
don't ban peers when loading pre-overwinter blocks
Addresses #3399 . If we see an invalid transaction (from our peers who are up to date, post-overwinter) during initial block download, don't invoke DoS (logging messages, blocking these peers). Instead, simply ignore the transaction.
2018-07-30 03:46:37 -07:00
Jack Grigg
3466b4677e
TransactionBuilder: Add support for transparent inputs and outputs
2018-07-30 11:03:29 +01:00
Simon
87d55e1322
Clean up help messages for RPC createrawtransaction.
...
Also return error if expiryheight used when Overwinter not active.
2018-07-29 20:57:33 -07:00
Jay Graber
76277ad8af
Take expiryheight as param to createrawtransaction
2018-07-29 19:13:54 -07:00
Jay Graber
501de644ab
Refactor into visitors and throw errors for invalid key or address.
2018-07-29 18:42:41 -07:00
Jay Graber
8dd1dbcfe4
Add Sapling to rpc_wallet_z_importexport test
2018-07-29 16:15:06 -07:00
Jay Graber
dd4c8a3c70
Add Sapling support to z_importkey
2018-07-29 16:15:06 -07:00
Jay Graber
2afc8eb0ec
Add Sapling support to z_exportkey
2018-07-29 16:15:06 -07:00
Jack Grigg
3fd0a269e1
test: Move ECC_Start() call into src/gtest/main.cpp
2018-07-27 17:18:49 +02:00
Jack Grigg
25bb05de23
Formatting
2018-07-27 12:17:14 +02:00
Jack Grigg
e5dc5228ea
TransactionBuilder: Check that all anchors in a transaction are identical
...
This reduces the amount of information that is leaked by the choice of anchor.
In future we will make a protocol change to enforce that all inputs use the
same anchor.
2018-07-27 09:46:38 +02:00
Larry Ruane
772f87aaeb
don't ban peers when loading pre-overwinter blocks
2018-07-26 12:29:04 -06:00
Simon
2f0b2a256d
Clean up for rebase: rename mapNoteData to mapSproutNoteData.
2018-07-25 20:47:41 -07:00
Simon
d9fe33b86f
Only check for a valid Sapling anchor after Sapling activation.
...
Before Sapling activates, hashFinalSaplingRoot is 0x0, which is
not a valid anchor. After Sapling activates, the empty root value
of 0x3e49... is a valid anchor.
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
3a5f66c880
Add parameter for version in GetValidReceive
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
e6b0a8b9ee
Add getter and setter for sapling note data and update tests
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
29523dc778
Remove extra indentation
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
8e8279e728
Rename sprout specific methods
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
45de2eda07
Increment sapling note witnesses
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
f86ee1c252
Pass sapling merkle tree when incrementing witnesses
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
4a0bc6047e
Extract method for incrementing witness heights
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
f6d0d5ec43
Extract methods for incrementing witnesses
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
b538024806
Extract method for copying previous witnesses
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
403b9b4e4d
Clear sapling witness cache
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
9d804cc619
Decrement sapling note witnesses
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
be43b7469d
Add sapling note data and map
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
00ed92343d
Add out point for sapling note data
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
3c868d2b03
Consolidate for loops
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
49695a97b5
Remove redundant curly braces
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
005f3ad1dd
Rename note data to include sprout
2018-07-25 20:47:40 -07:00
Jack Grigg
e691e21f40
TransactionBuilder with support for creating Sapling-only transactions
2018-07-25 11:35:10 +02:00
Jack Grigg
70a7535ae8
Expose note position in IncrementalMerkleWitness
2018-07-24 14:54:07 +02:00
Jack Grigg
66a519f55d
Alter SaplingNote::nullifier() to take a SaplingFullViewingKey
...
This means the API will work if you only have a SaplingExtendedSpendingKey,
as will be the case with ZIP 32.
2018-07-24 14:54:01 +02:00
Homu
a7a62b724b
Auto merge of #3391 - bitcartel:3061_sapling_note_encryption, r=ebfull
...
Sapling note plaintext (encryption and decryption)
Add encryption and decryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.
This is part of #3061 to add Sapling note functionality.
2018-07-24 03:27:28 -07:00
Simon
e739ca2ef2
Rename AttemptSaplingEncDecryptionUsingFullViewingKey and use function overloading.
2018-07-23 10:48:26 -07:00