Jack Grigg
f55029e7d1
Correctly serialize Groth16 JSDescription for verifyjoinsplit benchmark
6 years ago
Sean Bowe
34f6ea95dc
Adjust tests and benchmarks
6 years ago
Sean Bowe
b7a6c32178
Integrate Groth16 verification and proving.
6 years ago
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.
6 years ago
Jack Grigg
0fe0ca7948
Add contextual comment for GetValueOut() and GetShieldedValueIn()
6 years ago
Simon
67f3577239
Closes #3250 . Memo getter should return by reference, not by value.
6 years ago
Jack Grigg
ae97177c86
Track net value entering and exiting the Sapling circuit
6 years ago
Jack Grigg
97b46f00cc
Add valueBalance to value balances, and enforce its consensus rules
6 years ago
Jack Grigg
93bd00a0d5
Add key_io includes to Zcash-specific code
6 years ago
Pieter Wuille
3d31e09cbb
Split key_io (address/key encodings) off from base58
7 years ago
Pieter Wuille
3e60c9fabd
Stop using CBase58Data for ext keys
7 years ago
Jack Grigg
aa333ee8f2
Implement {Encode,Decode}PaymentAddress etc. without CZCEncoding
6 years ago
Jack Grigg
8bf3a3d700
Introduce wrappers around CZCViewingKey
6 years ago
Jack Grigg
472f75bc2d
Introduce wrappers around CZCSpendingKey
6 years ago
Jack Grigg
80ed13d545
Introduce wrappers around CZCPaymentAddress
This patch removes the need for the intermediary Base58 type
CZCPaymentAddress, by providing {Encode,Decode}PaymentAddress
functions that directly operate on the conversion between strings
and libzcash::PaymentAddress.
6 years ago
Pieter Wuille
f146029b0a
Replace CBitcoinSecret with {Encode,Decode}Secret
7 years ago
Sean Bowe
b4db32f53c
Check Sapling Spend/Output proofs and signatures.
6 years ago
Sean Bowe
55fabd8272
Refactor so that dataToBeSigned can be used later in the function for other purposes.
6 years ago
Sean Bowe
6eea48bf96
Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit.
6 years ago
Jack Grigg
50284985e9
Update sighash tests
6 years ago
Jack Grigg
b391b70736
Implement Sapling signature hash (ZIP 243)
6 years ago
Sean Bowe
40bfb9e5b9
Swap bit endianness of test vectors
6 years ago
Jack Grigg
e935beb810
wallet: Make some arguments const that can be
6 years ago
Jack Grigg
b87e271a9a
wallet: Change IsLockedNote to take a JSOutPoint
This removes the uint64_t -> size_t -> uint64_t round trip, as well as the
JSOutPoint -> parts -> JSOutPoint round trip.
6 years ago
Sean Bowe
f6f97dfb1c
Fix miner tests
6 years ago
Sean Bowe
8c57bbac15
Fix broken error messages.
6 years ago
Sean Bowe
e390a475c1
Fix outdated comment
6 years ago
Sean Bowe
98d2f090ca
Evict transactions with obsolete anchors from the mempool
6 years ago
Sean Bowe
673a0a79b3
Adjust tests to handle Sapling anchor cache
6 years ago
Sean Bowe
31a04d2875
Calculate the correct hashFinalSaplingRoot in the miner.
6 years ago
Sean Bowe
b4ff707605
Add support for Sapling anchor checks in mempool consistency checks.
6 years ago
Sean Bowe
1f8be05b63
Add consensus support for Sapling merkle trees.
6 years ago
Sean Bowe
85b39f57bb
Add `PushSaplingAnchor`
6 years ago
Sean Bowe
c643ff0b51
Add support for PopAnchor(.., SPROUT/SAPLING)
6 years ago
Sean Bowe
27616b9a04
Add support for Sapling anchors in coins/txdb.
6 years ago
Sean Bowe
e814be60fe
Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent.
6 years ago
Sean Bowe
f2c6d214e5
Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec.
6 years ago
Sean Bowe
7b62078782
Remove underscores from gtest test names.
6 years ago
Sean Bowe
7703a673ea
Generalize the PushAnchor implementation behavior.
6 years ago
Sean Bowe
9ea4e387b2
Generalize the PopAnchor implementation behavior.
6 years ago
Sean Bowe
18322f074c
Introduce support for GetBestAnchor(SAPLING).
6 years ago
Sean Bowe
2bd59e1473
Rename PushAnchor to PushSproutAnchor.
6 years ago
Sean Bowe
008f4ee8e7
Rename GetAnchorAt to GetSproutAnchorAt.
6 years ago
Sean Bowe
8b8d70cad9
Rename DB_ANCHOR to DB_SPROUT_ANCHOR.
6 years ago
Sean Bowe
30325eebf5
Add primitive implementation of GetSaplingAnchorEnd.
6 years ago
Sean Bowe
691a3fa2e9
Rename hashReserved to hashSaplingAnchorEnd.
6 years ago
Sean Bowe
08f0728884
Rename hashAnchor to hashSproutAnchor.
6 years ago
Sean Bowe
d455828fdc
Specifically describe anchors as Sprout anchors.
6 years ago
Sean Bowe
28d20bdb11
Rename NullifierType to ShieldedType.
6 years ago
Sean Bowe
2f23a656fb
Add regression tests and test vectors for Sapling merkle tree
6 years ago