Commit Graph

8140 Commits

Author SHA1 Message Date
Jonathan "Duke" Leto 719508e703 Backport size_on_disk to RPC call getblockchaininfo.
This commit is extracted from upstream PR:
https://github.com/bitcoin/bitcoin/pull/11367
2018-11-14 15:02:39 -08:00
Charlie O'Keefe 0ade29546f Save and restore current_path in TestingSetup constructor/destructor 2018-10-31 15:21:46 -06:00
Homu 97fccdbac5 Auto merge of #3605 - LarryRuane:3604-memo-zeros, r=daira
3604 fix sapling default memo - 0xF6 plus zeros

Closes #3604. For Sapling outputs, set the default memo to `no_memo` instead of all zeros. (See section 5.5 of the Sapling protocol specification.)
2018-10-28 03:15:07 -07:00
Homu aee5072af0 Auto merge of #3628 - bitcartel:3329_safe_mode_alert_for_pre_sapling_nodes, r=daira
Closes #3329. Send alert to put non-Sapling nodes into safe mode.

The alert targets nodes running protocol version <= 170006.
Sapling compatible nodes run protocol version >= 170007.
2018-10-28 01:21:05 -07:00
Jack Grigg ee3fa7020e
Pass parameter paths as native strings to librustzcash 2018-10-27 19:19:02 +13:00
Simon fa46ab10b8 Closes #3329. Send alert to put non-Sapling nodes into safe mode.
The alert targets nodes running protocol version <= 170006.
Sapling compatible nodes run protocol version >= 170007.
2018-10-25 11:44:31 -07:00
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
Larry Ruane 19621a7993 sapling z_sendmany default memo 0xf6 + zeros 2018-10-23 15:13:41 -06: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