Commit Graph

12128 Commits

Author SHA1 Message Date
Simon 4c4e1718b1 Update qa test as offline regtest nodes need branch id passed in. 2018-09-21 17:16:44 -07:00
Jack Grigg 34e222c18e
Revert "Disable Sapling features on mainnet"
This reverts commit 554e00e8f9.
2018-09-21 23:43:31 +01:00
Homu 09476a5fdb Auto merge of #3536 - bitcartel:3533_replace_assert_with_exception, r=str4d
Replace Sapling support-related asserts with JSON errors

This helps prevent users from triggering an assert if they pass in Sapling addresses to RPC calls which do not fully support Sapling yet: z_mergetoaddress, z_importviewingkey and z_exportviewingkey.

Part of #3533.
2018-09-21 15:35:51 -07: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
Eirik Ogilvie-Wigley c10249f3de Remove unused import 2018-09-19 14:41:02 -06: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 379c7439a0 Auto merge of #3479 - Eirik0:rpc-test-cleanup, r=bitcartel
Rpc test cleanup

The main purpose of this PR was to inline the method 'wait_for_async_operation_id' from util.py in tests where we were doing this manually. To make it work in all cases, I had to change the method to return the result in the case where the call failed. I also did a bit of general clean up (removing semicolons) in the files which I changed.
2018-09-18 20:05:39 -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 3501519bc8 Update qa test to check for Sapling related JSON fields. 2018-09-17 10:01:50 -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 19697025c6 Add test for signing raw transactions offline 2018-09-17 10:27:37 -06:00
Eirik Ogilvie-Wigley 5602e1f1a6 Allow passing timeout parameter to wait_and_assert_operationid_status 2018-09-14 18:41:14 -06:00
Eirik Ogilvie-Wigley e39f0e16c2 Remove unused imports 2018-09-14 18:41:14 -06:00
Eirik Ogilvie-Wigley 4d89d020a6 Remove unneeded semicolons 2018-09-14 18:41:14 -06:00
Eirik Ogilvie-Wigley f081d9cb02 Use utility method to wait for async operations 2018-09-14 18:41:14 -06:00
Eirik Ogilvie-Wigley 611f93244b Allow more information to be returned when an async rpc fails 2018-09-14 18:41:14 -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 8e057ad9ee
qa: Test both Overwinter and Sapling peer management 2018-09-12 12:15:37 +01: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
Homu 88f52f0ffc Auto merge of #3492 - str4d:zip32, r=str4d
Use ZIP 32 for all Sapling spending keys

The wallet now only stores Sapling extended spending keys, and thus can
only be used with keys generated from an HDSeed via ZIP 32. This means
that all Sapling keys and addresses generated by users can be recovered
as long as they have a backup that includes the seed.

Depends on zcash/librustzcash#29

Closes #3380.
2018-09-11 04:47:14 -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