Commit Graph

8133 Commits

Author SHA1 Message Date
Eirik Ogilvie-Wigley
81005fb214 Fix error message 2018-10-24 12:05:48 -06:00
Homu
dc3398fa88 Auto merge of #3611 - bitcartel:3467_add_sapling_benchmarks, r=bitcartel
Closes #3467. Add benchmarks for Sapling spends and outputs.

Four new benchmarks are added to RPC zcbenchmark:
- createsaplingspend
- createsaplingoutput
- verifysaplingspend
- verifysaplingoutput
2018-10-23 22:52:22 -07:00
Homu
d2019a4ccd Auto merge of #3581 - Eirik0:3580-unspent-note-cleanup, r=daira
Remove GetUnspentFilteredNotes

Closes #3580

This PR generalized `GetFilteredNotes`, expanding its functionality to also do what we do in `GetUnspentFilteredNotes`. This enables us to remove the latter.
2018-10-22 22:36:05 -07:00
Eirik Ogilvie-Wigley
095eee4f4d Wrap long line and update comments 2018-10-22 10:01:17 -06:00
Homu
32c2c17a91 Auto merge of #3579 - Eirik0:3577-generate-sprout-zkey, r=bitcartel
Make it clear that CWallet::GenerateNewZKey is Sprout specific

Closes https://github.com/zcash/zcash/issues/3577

When adding sapling support we had considered making the method `GenerateNewZKey` generic, but it ended up making more sense to add a second method `GenerateNewSaplingZKey` for sapling support.

This PR changes the name of `GenerateNewZKey` to `GenerateNewSproutZKey` and changes the return type from `libzcash::PaymentAddress` to `libzcash::SproutPaymentAddress` to make it more clear that this is what the method does.
2018-10-18 19:47:46 -07:00
Simon
67d2b79783 Closes #3467. Add benchmarks for Sapling spends and outputs.
Four new benchmarks are added to RPC zcbenchmark:
- createsaplingspend
- createsaplingoutput
- verifysaplingspend
- verifysaplingoutput
2018-10-18 19:10:59 -07:00
Homu
e077fb321b Auto merge of #3541 - leto:amount_docs, r=bitcartel
Clarify in sendmany/z_sendmany rpc docs that amounts are not FP

Fixes #3539

I clarified in the docs that only 8 digits of precision are allowed. For example, if you try 9 digits you will get:
```
zcash-cli z_sendmany $TADDR  "[{\"address\":\"$ZADDR\",\"amount\":0.123456789}]"
error code: -3
error message:
Invalid amount
```
2018-10-18 15:36:34 -07:00
Eirik Ogilvie-Wigley
e92414f91e Remove GetUnspentFilteredNotes 2018-10-18 15:52:13 -06:00
Eirik Ogilvie-Wigley
ef27d7e4b3 Add functionality from GetUnspentFilteredNotes to GetFilteredNotes 2018-10-18 15:52:13 -06:00
Eirik Ogilvie-Wigley
9396b85db8 Remove unspent note entry structs 2018-10-18 15:52:07 -06:00
Simon
0cabb007ae make-release.py: Versioning changes for 2.0.1. 2018-10-14 13:39:40 -07:00
Homu
89f5ee5dec Auto merge of #3599 - bitcartel:update_checkpoints_201, r=bitcartel
Update mainnet checkpoint for block 410100.
2018-10-13 18:19:49 -07:00
Simon
85809c75ad Update mainnet checkpoint for block 410100. 2018-10-13 08:55:38 -07:00
Simon
61caa46619 For #3359. Return error if Sapling addresses passed to RPC z_mergetoaddress.
RPC z_mergetoaddress does not support Sapling yet but the existing error
reporting was not clear to users.
2018-10-13 08:10:10 -07:00
Simon
de1b86a429 For #3359. RPCs transferring funds return error if Sapling addresses are used before Sapling activation. 2018-10-12 23:14:06 -07:00
Homu
527b7feef5 Auto merge of #3592 - Eirik0:z-sendmany-better-error, r=bitcartel
Better error message when sending to both sprout and sapling

When trying to send to both Sprout and Sapling (not currently supported with z_sendmany) we were getting the following error in our operation result: `general exception: boost::bad_get: failed value get using boost::get`.

This PR changes this to fail with a better error message before the async operation begins:
```
error code: -8
error message:
Cannot send to both Sprout and Sapling addresses using z_sendmany
```
2018-10-12 15:30:34 -07:00
Eirik Ogilvie-Wigley
0917c84d9a Better error message when sending to both sprout and sapling
Co-authored-by mdr0id <marshall@z.cash>
2018-10-12 14:12:21 -06:00
Simon
cd10562c73 Resolves Sapling nullifier persistence issue when importing a key.
During a rescan, a CWalletTx was persisted to disk before it had its
note data set.  This meant that upon restart, the CWalletTx would
potentially be missing its nullifiers causing the wallet's balance
to include notes which had already been spent.

The resolution is to ensure that after a rescan, a CWalletTx is
persisted after it has had its nullifiers set correctly.

Co-authored-by: Eirik Ogilvie-Wigley <eirik@z.cash>
2018-10-11 21:25:53 -07:00
Eirik Ogilvie-Wigley
3f824a908b Fix HDSeed comment 2018-10-10 16:00:59 -06:00
Eirik Ogilvie-Wigley
6829be1902 Remove unnecessary call to IsValidPaymentAddress 2018-10-08 16:25:29 -06:00
Eirik Ogilvie-Wigley
d6ad8cef2c GenerateNewSproutZKey can return a SproutPaymentAddress 2018-10-08 14:52:58 -06:00
Eirik Ogilvie-Wigley
92fc29a3f4 Rename GenerateNewZKey to include Sprout 2018-10-08 14:23:03 -06:00
mdr0id
94360cd098 make-release.py: Versioning changes for 2.0.1-rc1. 2018-10-08 12:23:18 -07:00
Homu
c2bb0ec67f Auto merge of #3517 - mdr0id:3388_persist_wallet, r=str4d
Sapling support for persisting wallet to disk

Closes #3388. Closes #3061.
2018-10-08 09:53:34 -07:00
Jack Grigg
5513faccf6 Ignore decoding errors during -zapwallettxes
The undecoded wallet transaction is logged before proceeding, so later
recovery of metadata might be possible. But the fact that the user is
using -zapwallettxes is a clear indicator that they want
transactions removed from their wallet, so this is the priority.
2018-10-06 12:18:56 +01:00
Simon
cb9cff5fdc Fix deadlock from calling CWallet::AddSaplingIncomingViewingKey instead of CBasicKeyStore::AddSaplingIncomingViewingKey 2018-10-05 21:15:08 -07:00
Homu
72f6925de1 Auto merge of #3567 - bitcartel:3546_estimate_tx_size, r=bitcartel
For #3546. Improve estimated tx size for Sapling outputs.
2018-10-05 20:33:38 -07:00
Homu
a513798710 Auto merge of #3566 - bitcartel:3546_prohibit_sapling_map_orphans, r=bitcartel
For #3546. Shielded tx with missing inputs are not treated as orphans.
2018-10-05 17:09:29 -07:00
Jack Grigg
3e471410f1 Persist Sapling payment address to IVK map
This ensures we remember any diversified addresses manually generated
outside the wallet.
2018-10-06 00:45:39 +01:00
mdr0id
9ce6f8425b Add gtest coverage of Sapling wallet persistence 2018-10-06 00:01:22 +01:00
mdr0id
fe92bc700a Adding in rpc wallet sap for test_bitcoin 2018-10-06 00:01:21 +01:00
mdr0id
48a93fd2e0 Serialize Sapling data in CWalletTx
If 2.0.0 nodes upgrade to 2.0.1 after Sapling has activated, the v4 Sapling
transactions in their wallet will be treated as corrupt, and a rescan will be
triggered which will overwrite the old-format transactions with the new
Sapling-aware format.
2018-10-06 00:01:20 +01:00
mdr0id
2fcf06077f Persist Sapling key material in the wallet to disk 2018-10-06 00:01:14 +01:00
Jack Grigg
1b79de781c Store ExtFVK with encrypted Sapling spending key instead of FVK
This ensures that even when the wallet is encrypted, we can derive the default
Sapling payment address for our spending keys.
2018-10-05 23:13:32 +01:00
Homu
aede10d3c2 Auto merge of #3559 - str4d:3552-testnet-min-difficulty-blocks, r=bitcartel
Allow minimum-difficulty blocks on testnet

This is a consensus rule change on testnet that will result in a chain split (leaving the stuck chain, as desired).

Reverts #2766 and part of #1338.
Closes #3552.
2018-10-05 12:24:42 -07:00
Simon
4dcc48b8cb For #3546. Improve estimated tx size for Sapling outputs. 2018-10-05 11:16:20 -07:00
Simon
c94f4477e8 For #3546. Shielded tx with missing inputs are not treated as orphans. 2018-10-05 10:48:03 -07:00
mdr0id
87ae893d75 Revert "wallet: Comment out HDSeed and CHDChain persistence to disk"
This reverts commit b7f9a7ae02.
2018-10-05 17:46:43 +01:00
Homu
625797a037 Auto merge of #3518 - str4d:3216-z_shieldcoinbase, r=str4d
Add Sapling support to z_shieldcoinbase

Part of #3216.
2018-10-05 03:33:16 -07:00
Jack Grigg
2b47b0de7d Position PoW.MinDifficultyRules test after rule activates 2018-10-05 00:10:17 +01:00
Homu
967bbbc486 Auto merge of #3561 - bitcartel:3560_update_sapling_note_data, r=bitcartel
Closes #3560. Update Sapling note data correctly when importing a key.
2018-10-04 15:37:34 -07:00
Jack Grigg
4c90270469 Explicitly check the min-difficulty flag against boost::none
It isn't clear how a boost::optional that holds 0 (which is the case for
regtest) is coerced to a boolean, unless you pore over the Boost
documentation. An explicit check is clearer.
2018-10-04 23:29:11 +01:00
Jack Grigg
1f7ee4af70 Rename min-difficulty flag to remove off-by-one in the name 2018-10-04 23:26:05 +01:00
Homu
4ba35551d4 Auto merge of #3510 - arcalinea:3378_z_listunspent, r=bitcartel
Sapling support for z_listunspent

Closes #3378.
2018-10-04 11:39:14 -07:00
Larry Ruane
27a6a99cb0 fix z_listunspent includeWatchonly logic 2018-10-04 12:26:36 -06:00
Jack Grigg
b86dc98047 Only enable min-difficulty blocks on testnet from a particular height
The min-difficulty change is a bilateral consensus rule change, and so
must be conditionally enabled in order for the earlier section of the
chain to synchronise.

Technically this could be implemented as a network upgrade, but as this will
never be deployed to mainnet, a targeted fork will suffice.
2018-10-04 14:05:27 +01:00
Homu
325ba00336 Auto merge of #3542 - Eirik0:3511-update-address-mapping, r=bitcartel
Add newly discovered sapling addresses to the wallet when decrypting

Closes #3511
2018-10-03 21:49:32 -07:00
Simon
f0dcfceb81 Closes #3560. Update Sapling note data correctly when importing a key. 2018-10-03 15:40:50 -07:00
Jack Grigg
1702a86455 Allow minimum-difficulty blocks on testnet and regtest
A block may be mined with nBits set to the minimum difficulty if its
nTime is set more than six block intervals (15 minutes) after its parent
block.

This is a consensus rule change on testnet that will result in a chain
split (as desired).
2018-10-03 17:50:17 +01:00
Jack Grigg
639e46b4d7 Revert "Remove testnet-only difficulty rules"
This reverts commit 333ea3c426.
2018-10-03 16:15:03 +01:00