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
4f18c693c3
Auto merge of #3272 - bitcartel:3061_sapling_add_notes, r=bitcartel
...
Add SaplingNote class
Part of #3061 , adding SaplingNote class.
2018-06-12 16:58:38 -07:00
Simon
268e5dfa50
Return optional for Sapling commitments and nullifiers.
...
Unlike Sprout, they are not always computable in Sapling.
2018-06-12 14:40:17 -07:00
Simon
d17f8d1cc7
Refactor and replace factory method random() with constructor.
2018-06-12 14:37:15 -07:00
Simon
36e2e7cc32
Add SaplingNote class and test_sapling_note unit test.
2018-06-12 14:37:05 -07:00
Ariel Gabizon
e1a3461cc2
Improve/Fix variable names
...
ZCProof was too general. pubKeyHash was actually the JoinSplit pubkey
itself.
2018-06-09 20:27:35 -07:00
Jack Grigg
bec3e62bc1
Implement encoding and decoding of Sapling keys and addresses
2018-06-07 17:28:50 +12:00
Homu
80338c07e5
Auto merge of #3237 - str4d:std-array, r=str4d
...
Replace boost::array with std::array
2018-06-06 19:36:57 -07:00
Jay Graber
87c9994cb2
Make diversifier functions return option
2018-06-04 07:47:46 -07:00
Jay Graber
0da9aac63e
s/SaplingInViewingKey/SaplingIncomingViewingKey
2018-06-04 04:59:07 -07:00
Jay Graber
dd099401a3
Fix default_address()
2018-06-01 04:03:27 -07:00
Jay Graber
52d81ff794
Update librustzcash dependency, address comments
2018-06-01 01:48:28 -07:00
Jay Graber
84e3a2212f
Change librustzcash dependency hash to work for new Sapling classes
2018-06-01 00:04:13 -07:00
Jay Graber
11acfe6e9f
Add Sapling key classes to wallet, with new librustzcash APIs
2018-06-01 00:04:13 -07:00
Jack Grigg
a6bbb26e08
Replace boost::array with std::array
2018-05-26 00:12:57 +12:00
Simon
47db75426f
Closes #3301 . Non-void function should not have empty definition.
2018-05-23 21:04:51 -07:00
Sean Bowe
b7a6c32178
Integrate Groth16 verification and proving.
2018-05-14 16:26:23 -06:00
Jack Grigg
e5eab182b5
Use boost::variant to represent shielded addresses and keys
...
libzcash::PaymentAddress has been renamed to libzcash::SproutPaymentAddress,
and a new typedef boost::variant is now libzcash::PaymentAddress. Similarly
for ViewingKey and SpendingKey.
A new class InvalidEncoding is introduced as the default boost::variant
option for each address and key type; it is used during decoding instead
of boost::optional.
All address and key storage functions in the wallet have been modified to
refer specifically to the Sprout types, as they are used very precisely.
In most other cases, the more general type is leveraged as much as possible,
and we convert to the Sprout type when necessary. This will be subsequently
wrapped in, or replaced with, context-specific functions once Sapling
types are implemented.
2018-05-11 17:14:49 -04:00
Homu
73f5cb1213
Auto merge of #3257 - bitcartel:3250_fix_segfault_memo, r=ebfull
...
Closes #3250 . Memo getter should return by reference, not by value.
2018-05-10 08:47:06 -07:00
Simon
67f3577239
Closes #3250 . Memo getter should return by reference, not by value.
2018-05-09 21:52:33 -07:00
Homu
08f74ed026
Auto merge of #3240 - str4d:remove-obsolete-binaries, r=str4d
...
Remove obsolete CreateJoinSplit and GenerateParams binaries
2018-05-09 13:50:25 -07:00
Sean Bowe
2b002a7e60
Add implementation of Sapling merkle tree
2018-05-07 13:46:06 -06:00
Sean Bowe
a7cbb8475f
Abstract uncommitted and depth personalization for IncrementalMerkleTree.
2018-05-07 13:46:06 -06:00
Homu
8ef1d333b5
Auto merge of #2894 - per-gron:dont-export-unless-needed, r=str4d
...
Make some globals static that can be
I wrote this patch as part of making a Bazel build system but it really is independent from that so I'm putting this as a separate PR.
External linkage does not help and just encourages sloppy dependencies (ie using symbols only declared in a cpp file in some other cpp file) and can lead to weird issues when there are name collisions.
2018-05-04 15:05:43 -07:00
Jack Grigg
11aa594440
Remove obsolete CreateJoinSplit and GenerateParams binaries
2018-05-03 13:18:03 +01:00
Simon
debf6af9f8
Move memo member varible from SproutNotePlaintext to BaseNotePlaintext.
...
Add memo() accessor to BaseNotePlaintext.
2018-04-26 15:05:30 -07:00
Simon
d266f40393
Create class hierarchy for SproutNotePlaintext.
...
BaseNotePlaintext contains member variable for common attribute, value.
2018-04-26 15:05:30 -07:00
Simon
5020a93631
Refactoring: rename NotePlaintext --> SproutNotePlaintext
...
Also renames:
CNotePlaintextEntry --> CSproutNotePlaintextEntry
CUnspentNotePlaintextEntry --> CUnspentSproutNotePlaintextEntry
2018-04-26 15:05:30 -07:00
Simon
5f4fa1a954
Add virtual destructor to SproutNote and BaseNote
...
Also add test to make sure default copy constructors are okay.
2018-04-26 15:05:30 -07:00
Simon
5d99e3e92f
Refactoring: SproutNote member variable value moved to BaseNote.
...
All notes have a value, so the member variable has been moved to the
base class, and direct member access has been replaced with a getter.
2018-04-26 15:05:19 -07:00
Simon
b230fe6836
Refactoring: Rename class libzcash::Note to libzcash::SproutNote.
2018-04-25 11:33:24 -07:00
Simon
bef33bbc73
Refactoring: libzcash::Note is now a subclass of libzcash::BaseNote.
2018-04-25 11:33:16 -07:00
Jack Grigg
68a1a592ca
Remove nType and nVersion from Zcash-specific code
2018-04-17 13:09:47 +01:00
Jack Grigg
4fe053e6e8
Move explicit instantiation of IncrementalMerkleTree::emptyroots into header
...
Fixes a -Wundefined-var-template warning with clang.
2018-03-28 18:29:19 +02:00
Jack Grigg
d58ed91af0
Optimise serialization of MerklePath, avoiding ambiguity of std::vector<bool>
...
The serialization enforces a maximum supported Merkle tree depth of 64.
Closes #2831 .
2018-03-28 18:26:08 +02:00
Per Grön
39d2e9e0cb
Make some globals static that can be
...
External linkage does not help and just encourages sloppy dependencies
and can lead to weird issues when there are name collisions.
2018-01-22 18:20:47 +01:00
Jack Grigg
49cf707d2c
Add Base58 encoding of viewing keys
2017-12-20 00:46:33 +00:00
Jack Grigg
aa666c9673
Implement viewing key storage in the keystore
2017-12-04 17:17:18 +00:00
Jack Grigg
642a1caf93
ViewingKey -> ReceivingKey per zcash/zips#117
2017-12-04 17:17:18 +00:00
syd
4e4aa5b6ec
Get rid of underscore prefixes for include guards.
...
This is because they may conflict with reserved names. Also took
this opportunity to make the guards in the zcash subdir a bit
more uniform by having them all conform to ZC_<...>_H_
This closes #1272
2017-11-28 14:57:58 -05:00
Jack Grigg
fee8835388
Mark libsnark includes as library includes
2017-11-15 16:49:10 +00:00
Homu
c8ecd49574
Auto merge of #2159 - bitcartel:1.0.7_payment_disclosure, r=str4d
...
Payment disclosure (experimental feature)
2017-11-14 14:06:22 -08:00
Simon
45232b1961
Add payment disclosure as experimental feature.
2017-11-14 13:29:05 -08:00
Ariel Gabizon
4305a56221
boost::format -> tinyformat
2017-11-01 02:11:49 +13:00
Sean Bowe
394f41853b
Integrate low memory prover.
2017-11-01 02:11:49 +13:00
Sean Bowe
1a9543d064
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
2017-10-21 15:42:41 +03:00
Jack Grigg
51fde9ea08
Use a more specific exception class for note decryption failure
...
Closes #1545 .
2017-01-31 23:05:19 +01:00
Eran Tromer
894a0b3295
CreateJoinSplit: add start_profiling() call
...
This solves the problem of profiling output displaying nonsensical large time values.
2017-01-05 11:30:23 -05:00
zkbot
57a0725ae1
Auto merge of #1946 - str4d:blockchain-stats-num-commitments, r=ebfull
...
Add total number of commitments to getblockchaininfo
2016-12-16 21:47:53 +00:00
Jack Grigg
d0ce704abe
Add a tool for profiling the creation of JoinSplits
2016-12-17 02:43:43 +13:00