Jack Grigg
fa70084c87
Expire Overwinter transactions before the Sapling activation height
2018-05-03 12:27:56 +01:00
Jack Grigg
dc889d7f52
Update CreateNewContextualCMutableTransaction to create Sapling transactions
2018-05-03 12:02:51 +01:00
Jack Grigg
daed9ba7cc
Change JSOutPoint constructor to have js argument be uint64_t
...
Closes #3192 .
2018-05-03 10:47:22 +01:00
Pieter Wuille
c8f9c87bf1
Implement {Encode,Decode}Destination without CBitcoinAddress
2018-05-03 01:13:04 +01:00
João Barbosa
6939c994ef
Remove unused GetKeyID and IsScript methods from CBitcoinAddress
2018-05-03 01:13:04 +01:00
Pieter Wuille
56c43a36bf
Move CBitcoinAddress to base58.cpp
2018-05-03 01:13:04 +01:00
Jack Grigg
b6be3e88bb
Use CBitcoinAddress wrappers in Zcash-specific code
2018-05-03 01:13:04 +01:00
Pieter Wuille
07444da1db
Introduce wrappers around CBitcoinAddress
...
This patch removes the need for the intermediary Base58 type
CBitcoinAddress, by providing {Encode,Decode,IsValid}Destination
function that directly operate on the conversion between strings
and CTxDestination.
2018-05-03 01:12:57 +01:00
Jack Grigg
2c34c1cbff
Update mempool_nu_activation RPC test to exercise both Overwinter and Sapling
...
Closes #3199 .
2018-05-03 01:07:41 +01:00
Homu
9e5398686c
Auto merge of #3206 - bitcartel:3194_polymorphic_note_class, r=str4d
...
Update note classes to be polymorphic
Closes #3194 . Lays foundation for introduction of Sapling notes through refactoring and creation of a class hierarchy for Sprout notes. This PR updates some tests, but otherwise is a no-op.
2018-05-02 08:07:35 -07:00
Homu
53fa6f1315
Auto merge of #3179 - bitcartel:backport_transaction_details_in_getblock_v2bitcartel, r=str4d
...
Add improvements to getblock RPC output
Includes and supercedes #3095 . Includes code cherry-picked from bitcoin/bitcoin#8704 .
2018-05-01 10:19:10 -07:00
Homu
0a8d0c25e8
Auto merge of #3220 - Eirik0:3209-fix-CheckTransaction, r=str4d
...
Implement consensus rules about the number of Spend and Output Descriptions in a transaction
Closes #3209 .
Part of #3065 .
2018-05-01 07:09:52 -07:00
Jack Grigg
1f9dfbb9f0
Fix -Wstring-plus-int warning on clang
2018-05-01 14:55:47 +01:00
Homu
90304c4214
Auto merge of #3213 - str4d:3202-precursor, r=str4d
...
Upstream encoding cleanups
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#7922
- bitcoin/bitcoin#7825
- bitcoin/bitcoin#8317
- bitcoin/bitcoin#9804
- Only the commit that changed `base58.cpp`
Precursor to #3202 .
2018-05-01 05:22:38 -07:00
Homu
23f8b30c88
Auto merge of #3193 - str4d:b9856-badalloc-terminate, r=bitcartel
...
Terminate immediately when allocation fails
Backport of bitcoin/bitcoin#9856
Closes #1498 .
2018-05-01 02:09:51 -07:00
Simon
54a872f0fa
Fix undefined behaviour, calling memcpy with NULL pointer.
...
Identified as part of audit: Least Authority, Issue D.
2018-04-30 16:41:02 -07:00
Simon
9bd8f092c6
Closes #3178 by adding verbosity level improvements to getblock RPC.
...
This is a follow-up commit for d0a1d833520d120bb5a2ac4cf4192047af6afe24
found in PR #3095 in order to fix nits and add a test.
2018-04-30 11:51:59 -07:00
Simon
bf911b3038
Tweaks to d0a1d83 to complete backport of Bitcoin PR #8704
2018-04-30 09:55:30 -07:00
Peter Pratscher
eb78a45a0c
Backported Bitcoin PR #8704 to optionally return full tx details in the getblock rpc call
2018-04-30 09:55:30 -07:00
Marshall Gaucher
b300118002
Merge pull request #2813 from str4d/2074-uacomment
...
Implement uacomment config parameter
2018-04-30 09:12:38 -06: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
9354f8e568
Remove unused SproutNote variables.
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
Eirik Ogilvie-Wigley
812098256f
Coinbase transactions can not have shielded spend or output
2018-04-26 15:53:26 -06:00
Eirik Ogilvie-Wigley
4b4662b06d
Make sure transactions have non-empty outputs
2018-04-26 15:24:59 -06:00
Homu
a2ff78620a
Auto merge of #3191 - Eirik0:3057-sapling-nullifier-set, r=str4d
...
Add sapling nullifier set
PR for https://github.com/zcash/zcash/issues/3057
2018-04-26 05:28:39 -07:00
Jack Grigg
aeb089ecc7
Attempt to log before terminating if prevector allocation fails
2018-04-26 11:30:33 +01:00
Jack Grigg
3c9dbf3ed8
Improve best-effort logging before termination on OOM
...
Suggested by @kallewoof in bitcoin/bitcoin#9856
2018-04-26 11:22:07 +01:00
Sean Bowe
6679855147
Check that duplicate Sapling nullifiers don't exist within a transaction.
2018-04-25 17:10:34 -06:00
Homu
c6ab62191a
Auto merge of #3205 - str4d:3173-missing-return, r=str4d
...
Return result of boost::apply_visitor
Not returning a value at the end of a non-void function is undefined behaviour.
Given that this managed to pass our full test suite, I guess that GCC looks for
un-returned values at the end of a function and uses them as the return value,
if the keyword is missing. Clang OTOH complains, which is how we spotted this:
https://ci.z.cash/#/builders/16/builds/282
2018-04-25 13:50:53 -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
Eirik Ogilvie-Wigley
9669920f75
Rename nullifier caches and maps to indicate sprout nullifiers
2018-04-25 11:26:38 -06:00
Eirik Ogilvie-Wigley
cab341e1a8
Add sapling nullifiers to db and mempool
2018-04-24 17:16:43 -06:00
Jack Grigg
bf605b2644
Return result of boost::apply_visitor
...
Not returning a value at the end of a non-void function is undefined behaviour.
Given that this managed to pass our full test suite, I guess that GCC looks for
un-returned values at the end of a function and uses them as the return value,
if the keyword is missing. Clang OTOH complains, which is how we spotted this:
https://ci.z.cash/#/builders/16/builds/282
2018-04-24 23:04:09 +01:00
Homu
f961e5c3c0
Auto merge of #3195 - str4d:3180-clang-warnings, r=str4d
...
Remove now-unshadowed serialization lines that do nothing
Previously we had both nVersion as a class parameter *and* a serialization
argument, and in several inherited serializers the latter was set to the former,
in order to pass the serialized object's version into underlying parsers. #3180
pulled in the upstream changes to clean this up, and in doing so these lines
became no-ops - setting the class parameter to itself. Clang throws warnings on
this, which turn into errors on the MacOS builder.
We can just remove these, because upstream already had done so in earlier PRs,
indicating that they were not being relied on by underlying parsers.
2018-04-24 14:03:57 -07:00
Eirik Ogilvie-Wigley
708c87f16d
Add enum for nullifier type
2018-04-24 09:57:14 -06:00
Eirik Ogilvie-Wigley
685e936c31
Add sapling nullifier set
2018-04-24 09:57:14 -06:00
Homu
68cf6f3c2d
Auto merge of #3074 - arcalinea:2983_tx_expiry_test_dependent, r=str4d
...
Add test for dependent txs to mempool_tx_expiry.py
Closes #2983
Also replaced absolute blockheight check with a relative height check.
2018-04-23 15:50:16 -07:00
Eirik Ogilvie-Wigley
df960a9ba7
Clarify help text of dumpprivkey
2018-04-23 15:14:56 -06:00
Jeremy Rubin
1b34996b21
Fix subscript[0] in base58.cpp
2018-04-23 22:12:53 +01:00
MarcoFalke
b37b4b2fa3
[rpcwallet] Don't use floating point
2018-04-23 22:12:53 +01:00
Pedro Branco
181c511cd0
Prevent multiple calls to ExtractDestination
2018-04-23 22:12:53 +01:00
Kaz Wesley
63822fbc84
CBase58Data::SetString: cleanse the full vector
...
SetString seems to be passing the length of the wrong variable to
memory_cleanse, resulting in the last byte of the temporary buffer not being
securely erased.
2018-04-23 22:12:45 +01:00
Homu
df1dc9dd91
Auto merge of #3197 - str4d:2907-sapling-v4-tx-innards, r=str4d
...
Sapling v4 transaction format
Builds on #3173 .
2018-04-23 13:35:07 -07:00
Jack Grigg
b1608eed82
Add a constant for Overwinter's transaction version
2018-04-23 20:39:04 +01:00
Jack Grigg
b4f7174a88
Implement SpendDescription and OutputDescription datastructures
...
Co-authored-by: George Tankersley <george@z.cash>
2018-04-23 20:39:00 +01:00