Commit Graph

8118 Commits

Author SHA1 Message Date
Eirik Ogilvie-Wigley
83c4e360da Address need not be optional when adding sapling keys 2018-09-27 15:44:04 -06:00
Homu
e6f6c5d08c Auto merge of #3535 - bitcartel:fix_regtest_signrawtransaction, r=str4d
Do not use APPROX_RELEASE_HEIGHT to get consensus branch id in regtest mode.

Closes #3534
2018-09-22 11:35:27 -07:00
Homu
fbbbb1cc82 Auto merge of #3537 - str4d:enable-sapling-features, r=bitcartel
Enable Sapling features on mainnet

Reverts the last commit from #3458.
2018-09-21 17:32:56 -07:00
Jack Grigg
34e222c18e Revert "Disable Sapling features on mainnet"
This reverts commit 554e00e8f9.
2018-09-21 23:43:31 +01:00
Simon
f1cb49ac86 For #3533. Replace asserts with JSON errors.
This helps prevent users from triggering an assert if they pass in
Sapling addresses to RPC calls: z_mergetoaddress, z_importviewingkey
and z_exportviewingkey.
2018-09-21 15:01:45 -07:00
Simon
18f8abb62d Closes #3534. Do not use APPROX_RELEASE_HEIGHT to get consensus branch
id when in regtest mode.

Co-authored-by: Larry Ruane <larryruane@gmail.com>
2018-09-21 11:10:15 -07:00
Homu
36243f41f1 Auto merge of #3520 - Eirik0:3327-sign-offline, r=bitcartel
Fix signing raw transactions with unsynced offline nodes

This PR address the issue in two different ways:

- In `signrawtransaction` we determine the consensus branch ID (which we then later use to construct the transaction) using the chain height. We now also consider the `APPROX_RELEASE_HEIGHT` as this is a better estimation than 0 for the height of the chain if we are unsynced. (This in and of itself solves the Overwinter signing issue).
- We have added an additional parameter to `signrawtransaction` to allow manually overriding the consensus branch ID that zcashd determines we are on. This allows users to work around corner cases where the first strategy is still insufficient.

Closes #3327.
2018-09-19 15:02:52 -07:00
Homu
25c3f903c1 Auto merge of #3491 - Eirik0:3218-sapling-import-export-wallet, r=str4d
Add Sapling support to z_importwallet and z_exportwallet

Includes code adapted from upstream PR https://github.com/bitcoin/bitcoin/pull/8323

Closes #3218.
2018-09-19 12:15:48 -07:00
Homu
75c1dbc5eb Auto merge of #3452 - LarryRuane:3399-peer-ban-test, r=bitcartel
Test peer banning logic in both pre- and post-initial block download states

The DoS ban scores are different for each, and it's nice to test both.

Follow-on from #3410.
2018-09-19 10:25:23 -07:00
Homu
4fc1066b6f Auto merge of #3516 - str4d:3506-sendmany-sapling-t-ovk, r=ebfull
Generate an ovk to encrypt outCiphertext for t-addr senders

Closes #3506.
2018-09-18 18:10:52 -07:00
Jack Grigg
bb4b6982e3 Generate an ovk to encrypt outCiphertext for t-addr senders
Closes #3506.
2018-09-19 00:51:30 +01:00
Jack Grigg
bd3c860cb4 Use ovk directly in the TransactionBuilder API instead of fvk 2018-09-18 23:26:31 +01:00
Homu
e95bdeabbf Auto merge of #3521 - bitcartel:sapling_json_data, r=str4d
Add Sapling fields to JSON RPC output using TxToJSON.

Related to #3063 to add Sapling support to wallet RPCs.
2018-09-18 12:13:14 -07:00
Homu
49356ed798 Auto merge of #3512 - str4d:3487-nu-peer-management, r=ebfull
Make NU peer management logic upgrade-agnostic

Closes #3487.
2018-09-18 04:25:54 -07:00
Simon
9ba7479de1 Add Sapling fields to JSON RPC output using TxToJSON. 2018-09-17 09:44:43 -07:00
Eirik Ogilvie-Wigley
36a490677c Allow passing branchId when calling signrawtransaction 2018-09-17 10:27:39 -06:00
Eirik Ogilvie-Wigley
40b9527301 Incorporate APPROX_RELEASE_HEIGHT when determining what consensus branch to sign with 2018-09-17 10:27:39 -06:00
Eirik Ogilvie-Wigley
b37dc4e22f Don't export empty zip32 metadata 2018-09-14 18:36:24 -06:00
Eirik Ogilvie-Wigley
2fe39561ec Export zip32 metadata with sapling keys 2018-09-14 17:27:20 -06:00
Eirik Ogilvie-Wigley
ae807af413 Export comment on HDSeed and fingerprint with wallet 2018-09-14 17:26:02 -06:00
Jonas Schnelli
002753ae64 [Wallet] ensure CKeyMetadata.hdMasterKeyID will be cleared during SetNull()
Zcash: modified for zip32
2018-09-14 17:17:24 -06:00
Jonas Schnelli
82e71233b0 [Wallet] print hd masterkeyid in getwalletinfo
Zcash: modified for zip32
2018-09-14 16:59:56 -06:00
Jonas Schnelli
b6d1af89f2 [Wallet] extend CKeyMetadata with HD keypath
Zcash: modified for zip32
2018-09-14 16:59:51 -06:00
Eirik Ogilvie-Wigley
9bcf90e2de Add sapling support to z_importwallet 2018-09-14 16:16:03 -06:00
Eirik Ogilvie-Wigley
0f03de5536 Return more information when adding a spending key 2018-09-14 16:00:47 -06:00
Eirik Ogilvie-Wigley
fcab001b1e Move AddSpendingKeyToWallet 2018-09-14 15:44:03 -06:00
Eirik Ogilvie-Wigley
a0783bb957 Rename AddZKey to include sprout 2018-09-14 15:07:15 -06:00
Eirik Ogilvie-Wigley
5e360fb29f Add sapling spending keys to z_exportwallet 2018-09-14 15:07:15 -06:00
Eirik Ogilvie-Wigley
d6b31d59b5 Rename map to include sprout 2018-09-14 15:07:15 -06:00
Larry Ruane
6206d86237 Test peer banning logic in both pre- and post-initial block download states 2018-09-12 13:30:01 -06:00
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