Commit Graph

636 Commits

Author SHA1 Message Date
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
jl777
719aa8b19e Test 2018-06-28 23:42:32 -11:00
jl777
817ad14d08 Fix 2018-06-28 23:39:32 -11:00
jl777
85df50842b syntax 2018-06-28 23:33:52 -11:00
jl777
76471d5658 CTxOut 2018-06-28 23:32:14 -11:00
jl777
a55973aeea :: 2018-06-28 23:31:32 -11:00
jl777
1bc74c28cf -donation option to donate 5% rewards to a pubkey 2018-06-28 21:58:03 -11:00
Michael Toutonghi
1a0fc30896 Fix importaddress with rescan error that prevented picking up UTXOs 2018-06-23 15:03:44 -07:00
Michael Toutonghi
20ab1c9174 mining performance boost 2018-06-10 00:12:28 -07:00
Michael Toutonghi
31bbe2343f fix staking UTXO value 2018-05-17 22:20:57 -07:00
Michael Toutonghi
1fae37f6bf Working proof of stake with new algorithm 2018-05-15 00:54:18 -07:00
Michael Toutonghi
1f722359c1 Verus Proof of Stake Compete with Additional ant-fork protection on block 1 2018-05-13 18:59:06 -07: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
1942f7a42b Auto merge of #3242 - str4d:3058-key-encoding-refactor, r=str4d
Key encoding refactor

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#11372
  - Only the first three commits (the fourth commit depends on #2390)

Part of #3058.
2018-05-11 12:21:29 -07:00
jl777
a5b7fef44b Test 2018-05-10 12:56:52 +03:00
jl777
bd070d8bce Prevent relaying expired tx 2018-05-10 12:55:14 +03:00
Jack Grigg
97b46f00cc Add valueBalance to value balances, and enforce its consensus rules 2018-05-09 11:34:41 +01:00
miketout
c2f6623fdf Add blocks to maturity in transaction JSON for listtransactions RPC API 2018-05-09 02:06:55 -07:00
miketout
204cf3fcba Enable seamless spending of timelocked coinbases through z_shieldcoinbase 2018-05-09 00:49:09 -07:00
Pieter Wuille
3d31e09cbb Split key_io (address/key encodings) off from base58 2018-05-08 21:39:56 +01:00
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.
2018-05-08 21:39:55 +01:00
miketout
ea340a1443 Recognizing CLTV transactions more broadly 2018-05-08 13:33:14 -07:00
Homu
0a98b97524 Auto merge of #3236 - str4d:3192-jsoutpoint-constructor, r=str4d
Change JSOutPoint constructor to have js argument be uint64_t

Closes #3192.
2018-05-08 02:50:04 -07:00
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
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
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
25fee3509a Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING 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
miketout
90e7502158 Enabled recognition of time locked transactions as watch only or spendable, depending on time 2018-05-02 22:20:03 -07: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
miketout
48d800c2c6 Merge all Komodo changes, including proof of stake, crypto conditions, passport, etc. 2018-05-02 03:24:21 -07:00
Simon
5020a93631 Refactoring: rename NotePlaintext --> SproutNotePlaintext
Also renames:
CNotePlaintextEntry --> CSproutNotePlaintextEntry
CUnspentNotePlaintextEntry --> CUnspentSproutNotePlaintextEntry
2018-04-26 15:05:30 -07:00
Michael Toutonghi
29bd53a102 Rewrite time locks, coinbase validation, and script functions in C++ for easier integration 2018-04-20 18:38:39 -07:00
jl777
8eb43ab4ff Decrement notes for assetchains, need to test 2018-04-20 00:23:58 +03:00
jl777
e86c03cf07 -walletprefetch 2018-04-17 16:34:07 +03:00
jl777
cf53fd7c3d Test 2018-04-17 16:25:27 +03:00
jl777
b7fae74e58 Test 2018-04-17 15:31:35 +03:00
jl777
5f5802ae29 Test 2018-04-17 15:30:23 +03:00
jl777
b8add6a466 Init speedup test 2018-04-17 12:53:59 +03:00