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
Simon
7b913c3e5e
Implement Sapling note decryption using full viewing key.
2018-07-20 16:31:48 -07:00
Wladimir J. van der Laan
a9496b08b6
rpc: Register calls where they are defined
...
Split out methods to every module, apart from 'help' and 'stop' which
are implemented in rpcserver.cpp itself.
- This makes it easier to add or remove RPC commands - no longer everything that includes
rpcserver.h has to be rebuilt when there's a change there.
- Cleans up `rpc/server.h` by getting rid of the huge cluttered list of function definitions.
- Removes most of the bitcoin-specific code from rpcserver.cpp and .h.
Continues #7307 for the non-wallet.
2018-07-18 11:07:18 -06:00
Daniel Cousens
4b184205e3
rpc: update inline comments to refer to new file paths
2018-07-18 11:07:17 -06:00
Daniel Cousens
4519a766b6
move rpc* to rpc/
2018-07-18 11:07:16 -06:00
Jonas Schnelli
34aca1b03c
[RPC, Wallet] Move RPC dispatch table registration to wallet/ code
...
Allow extending the rpc dispatch table by appending commands when server is not running.
2018-07-18 11:07:15 -06:00
Homu
aad4b86e95
Auto merge of #3376 - LarryRuane:2728-help-message-experimental, r=bitcartel
...
add extra help how to enable experimental features
Closes #2728 . When the user attempts to execute a disabled experimental RPC, print some nice text explaining how to enable the RPC (either command-line or adding lines to zcash.conf).
2018-07-18 07:45:46 -07:00
Homu
b9bd5ab42c
Auto merge of #3354 - leto:absurd_fee_bug, r=bitcartel
...
Fix absurd fee bug reported in #3281 , with tests
This was ported from the Hush `absurd_fee_bug` PR: https://github.com/MyHush/hush/pull/136
Tests executed with `./qa/pull-tester/rpc-tests.sh wallet` and pass on Ubuntu 16.04. Some tests were added for previously untested behavior as well.
Closes #3281 .
2018-07-17 15:03:08 -07:00
Simon
687bd96cbd
Minor update to address nits in review.
2018-07-17 14:26:38 -07:00
Homu
3835cbb57f
Auto merge of #3263 - str4d:ibd-upstream-changes, r=bitcartel
...
InitialBlockDownload upstream changes
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#7208
- bitcoin/bitcoin#8007
- bitcoin/bitcoin#9053
- Excluding second commit (requires bitcoin/bitcoin#8865 )
- bitcoin/bitcoin#10388
2018-07-17 13:17:27 -07:00
Simon
0b6eeac330
Update and fix per review comments, the test for absurd fee.
2018-07-17 13:00:42 -07:00
Homu
13b41a6760
Auto merge of #3156 - Eirik0:2935-change-indicator, r=bitcartel
...
Add change indicator
This adds to the json returned when calling z_listreceivedbyaddress and z_listuspent an additional field entitiled 'change' which will be either true or false depending on whether or not the note was change from another transaction.
2018-07-17 11:41:03 -07:00
Larry Ruane
66dfcc1369
add extra help how to enable experimental features
2018-07-16 21:31:55 -06:00
Sean Bowe
f23e783600
Decryption and tests of note/outgoing encryption.
2018-07-16 18:34:14 -06:00
Homu
ea0bd9d3b8
Auto merge of #3345 - str4d:sapling-z_validateaddress, r=bitcartel
...
Add Sapling support to z_validateaddress
Part of #3217 .
2018-07-16 15:04:54 -07:00
Eirik Ogilvie-Wigley
0646f749f9
Add change indicator for notes
2018-07-16 14:49:29 -06:00
Homu
b7d058cef3
Auto merge of #3334 - arielgabizon:add_groth_tests, r=bitcartel
...
Extend JoinSplit tests to Groth
As we now have both PGHR and Groth proofs for Sprout - make the joinsplit tests check the Groth proofs as well.
See https://github.com/zcash/zcash/issues/3266
2018-07-16 12:11:12 -07:00
Duke Leto
4b8c52c65c
Improve error message
2018-07-14 05:16:28 +00:00
Duke Leto
75bb5f94f4
Update comment as per @arielgabizon
2018-07-13 19:19:16 +00:00
Ariel Gabizon
589479fd33
Extend Joinsplit tests to Groth
2018-07-13 13:01:34 +02:00
Homu
eea0e2c924
Auto merge of #3390 - arcalinea:3319_discard_sk_if_invalid_ivk, r=str4d
...
Discard sk if ivk == 0
Addresses #3319
2018-07-13 03:16:21 -07:00
Jay Graber
db9f669c15
Discard sk if ivk == 0
2018-07-12 15:05:19 -07:00
Homu
f55bcd1c10
Auto merge of #3374 - rex4539:fix-typos, r=str4d
...
Fix typos
2018-07-12 14:25:15 -07:00
Simon
34bf166e5f
Add encryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.
...
This is part of #3061 to add Sapling note functionality.
2018-07-11 22:03:04 -07:00
Homu
d86f60f382
Auto merge of #3324 - ebfull:sapling-note-encryption, r=ebfull
...
Sapling note encryption implementation
Closes #3055
Implemented along with @gtank and @Eirik0
DH key exchange was implemented in https://github.com/zcash/librustzcash/pull/18
2018-07-11 14:51:57 -07:00
Sean Bowe
7478876271
Minor edits
2018-07-11 15:48:41 -06:00
Jack Grigg
bea879157c
Add Sapling support to z_validateaddress
2018-07-09 15:38:07 +01:00
Homu
579ad3b13e
Auto merge of #3273 - arcalinea:sapling_keys, r=str4d
...
Sapling keys in keystore, wallet
- Add/Have/Get SaplingSpendingKey
- Add/Remove/Have/Get SaplingFullViewingKey
- Have/Get SaplingIncomingViewingKey
- SaplingSpendingKeyMap, SaplingFullViewingKeyMap, SaplingIncomingViewingKeyMap
- GenerateNewSaplingZKey()
Not included: note decryptors, crypted keystore
2018-07-06 15:18:39 -07:00
Dimitris Apostolou
ccf9106501
Fix typos
2018-07-06 14:33:24 +03:00
Jay Graber
2173767365
Add crypted keystore sapling add key
2018-07-05 15:00:00 -07:00
Jay Graber
8e91ebf76c
Change default_address to return SaplingPaymentAddr and not boost::optional
2018-07-05 14:52:51 -07:00
Jay Graber
f82a864dc1
Add StoreAndRetrieveSaplingSpendingKey test
2018-07-05 14:52:51 -07:00
Jay Graber
f4207d0c0e
Add SaplingIncomingViewingKeys map, SaplingFullViewingKey methods
2018-07-05 14:52:46 -07:00
Jay Graber
efb7662d4a
Add Sapling Add/Have/Get to keystore
2018-07-05 14:37:33 -07:00
Larry Ruane
c872c1d2df
Disable libsnark debug logging in Boost tests
2018-07-05 10:16:13 -06:00
Simon
8fc73722e8
make-release.py: Versioning changes for 1.1.2.
2018-07-01 20:07:24 -07:00
Simon
5cbbb7e375
make-release.py: Versioning changes for 1.1.2-rc1.
2018-06-22 16:55:20 -07:00
Homu
d5dcfa2b01
Auto merge of #3346 - bitcartel:3328_alert_non_overwinter_nodes, r=str4d
...
Closes #3328 . Send alert to put non-Overwinter nodes into safe mode.
The alert targets nodes running protocol version <= 170004.
Overwinter compatible nodes run protocol version >= 170005.
2018-06-22 09:40:01 -07:00
Simon
e56117f894
Closes #3328 . Send alert to put non-Overwinter nodes into safe mode.
...
The alert targets nodes running protocol version <= 170004.
Overwinter compatible nodes run protocol version >= 170005.
2018-06-22 09:07:12 -07:00
Homu
f587e61bda
Auto merge of #3259 - leto:signmessage, r=str4d
...
Clarify help that signmessage only works on taddrs
2018-06-22 02:19:12 -07:00
Duke Leto
e5aa9f617b
Fix absurd fee bug reported in #3281 , with tests
2018-06-22 05:20:45 +00:00
Homu
f24d1ff546
Auto merge of #3337 - str4d:getblock-finalsaplingroot, r=bitcartel
...
Add hashFinalSaplingRoot to getblockheader and getblock output
2018-06-19 16:19:13 -07:00
Homu
9acfa0067f
Auto merge of #3258 - Eirik0:3056-anchor-test-cases, r=str4d
...
Add tests for sapling anchors
Closes #3253
2018-06-19 09:28:20 -07:00
Eirik Ogilvie-Wigley
762ee0e896
Rename typename
2018-06-19 10:07:00 -06:00
Eirik Ogilvie-Wigley
115b26cb27
Add BOOST_TEST_CONTEXT to distinguish sprout v. sapling
2018-06-19 10:06:21 -06:00
Homu
2ebde5860e
Auto merge of #3326 - str4d:3058-sapling-addresses, r=str4d
...
Sapling address encodings
This PR enables Sapling keys and addresses to be passed in anywhere Sprout keys
and addresses are used. Doing so will cause crashes until those places are updated
with Sapling support.
Includes code cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#11167
- Only the `ConvertBits()` function.
- bitcoin/bitcoin#11630
Closes #3058 .
2018-06-19 05:12:50 -07:00
Homu
4e3ff06507
Auto merge of #3320 - str4d:macos-tests, r=bitcartel
...
Fix MacOS tests
Includes code cherry-picked from upstream PR bitcoin/bitcoin#8270 .
2018-06-18 19:00:56 -07:00
Sean Bowe
4e1f2daa0d
Add get_esk() function to Sapling note encryption.
2018-06-18 13:14:43 -06:00