Commit Graph

2110 Commits

Author SHA1 Message Date
Homu
333b9a0d0b Auto merge of #3170 - ebfull:sapling-merkle-tree, r=ebfull
Sapling merkle tree implementation

Closes #3056.

Please also review https://github.com/zcash/librustzcash/pull/8

This PR:

1. Introduces ZCSaplingIncrementalMerkleTree using Pedersen hashes.
2. Adds support for Sapling anchors into consensus rules. (Adds commitments, checks anchors are correct, handles block (dis)connects, etc.)
3. Handles mempool eviction for obsolete anchors.
4. Enforces correctness of block's Sapling root field
5. Changes miner to correctly apply the Sapling root to the block header
6. Handles mempool consistency checks for anchors
2018-05-07 20:37:46 -07:00
miketout
fab1429d48 Enable time locked transactions to be recognized in the wallet 2018-05-07 15:58:53 -07:00
Jack Grigg
e935beb810 wallet: Make some arguments const that can be 2018-05-07 22:13:26 +01:00
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.
2018-05-07 21:56:57 +01:00
Sean Bowe
18322f074c Introduce support for GetBestAnchor(SAPLING). 2018-05-07 13:46:06 -06:00
Sean Bowe
008f4ee8e7 Rename GetAnchorAt to GetSproutAnchorAt. 2018-05-07 13:46:06 -06:00
Sean Bowe
08f0728884 Rename hashAnchor to hashSproutAnchor. 2018-05-07 13:46:06 -06:00
Homu
1d4235dce7 Auto merge of #3239 - str4d:sapling-default-tx-version, r=str4d
Update CreateNewContextualCMutableTransaction for Sapling

Part of #3063.
2018-05-07 12:27:47 -07:00
jl777
db4b45a62b Test 2018-05-07 19:08:49 +03:00
jl777
56c6c06b39 Test 2018-05-07 17:48:32 +03:00
jl777
f31815fc3c Test 2018-05-07 17:39:01 +03:00
jl777
3566cdf6e6 Test 2018-05-07 17:26:20 +03:00
jl777
1500012776 Test 2018-05-07 17:13:49 +03:00
jl777
0eb15e9463 Test 2018-05-07 17:08:28 +03:00
jl777
3ed2e7334c Test 2018-05-07 17:07:38 +03:00
jl777
6d04359865 Test 2018-05-07 17:00:35 +03:00
jl777
e6a3570c42 Test 2018-05-07 16:48:04 +03:00
jl777
a9bad5a300 test 2018-05-07 15:47:18 +03:00
jl777
ff1ee86e6a Test 2018-05-07 15:31:23 +03:00
jl777
0b18f1230c Test 2018-05-07 15:16:20 +03:00
jl777
c4eb1abbfc Test 2018-05-07 15:12:34 +03:00
jl777
39fefa6be9 Test 2018-05-07 14:34:20 +03:00
jl777
f8fb4922da Test 2018-05-07 14:14:12 +03:00
jl777
469e1de39f Test 2018-05-07 14:04:18 +03:00
jl777
496f1fd267 Test 2018-05-07 13:57:43 +03:00
miketout
39267c3553 Reduce default difficulty 2018-05-06 13:06:14 -07:00
miketout
ef70c5b2de Updated miner messages 2018-05-05 07:52:02 -07:00
miketout
e980a26ddd Enable time locked coin bases to be used as normal coinbase transactions with longer maturity, fix max_money 2018-05-04 16:33:34 -07:00
Jack Grigg
892ae945f7 Rework z_sendmany z-address recipient limit
From Sapling, the z-address recipients could require either JSDescriptions or
OutputDescriptions. Instead of trying to give an exact number in the help text,
rely on transaction size estimation to guide user behaviour.
2018-05-04 11:17:30 +01:00
Jack Grigg
25fee3509a Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING 2018-05-04 11:17:30 +01:00
Jack Grigg
ddcee7e13a Benchmark the largest valid Sapling transaction in validatelargetx
11130 inputs results in a transaction between 1992301 and 2003431 bytes.
2018-05-04 11:17:30 +01:00
Jack Grigg
15ec5525e3 Raise 100kB transaction size limit from Sapling activation
Closes #2864.
2018-05-04 11:17:30 +01:00
Homu
d97bfb766b Auto merge of #3228 - str4d:3058-taddr-encoding-refactor, r=str4d
Refactor t-address encoding

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#11117
- bitcoin/bitcoin#11259
  - Only the second commit (first is for QT code)
- bitcoin/bitcoin#11167
  - Only the first commit (the rest are not part of the t-address encoding refactor).

Part of #3058. Precursor to #3202.
2018-05-03 18:12:22 -07:00
Jack Grigg
fa70084c87 Expire Overwinter transactions before the Sapling activation height 2018-05-03 12:27:56 +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
miketout
90e7502158 Enabled recognition of time locked transactions as watch only or spendable, depending on time 2018-05-02 22:20:03 -07: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
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
miketout
48d800c2c6 Merge all Komodo changes, including proof of stake, crypto conditions, passport, etc. 2018-05-02 03:24:21 -07: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
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
jl777
247428bdb2 Test 2018-04-25 15:47:19 +03:00
jl777
94d3d09da0 Test 2018-04-25 15:37:32 +03:00
Eirik Ogilvie-Wigley
df960a9ba7 Clarify help text of dumpprivkey 2018-04-23 15:14:56 -06: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