Commit Graph

206 Commits

Author SHA1 Message Date
Jack Grigg
81e0fd2eb9 wallet: Add HaveSpendingKeyForPaymentAddress visitor 2018-08-27 11:13:49 +01:00
Jack Grigg
e22c115e78 Move GetSpendingKeyForPaymentAddress visitor into wallet.h
Also fixes it to not use the global pwalletMain.
2018-08-27 11:13:49 +01:00
Anton Lysakov
fd2fd9a7e5 Errors printout define moved to wallet.h 2018-08-25 03:59:03 +07:00
Jack Grigg
053cb3497d Add Sapling support to z_getbalance and z_gettotalbalance
Closes #3214

Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
2018-08-20 11:35:06 +01:00
Jack Grigg
94e99acda6 Add Sapling support to GetFilteredNotes() and GetUnspentFilteredNotes()
This could in future be refactored to be generic over PaymentAddress and
NotePlaintext in the return type, but for now let's be explicit about which
returned notes are for Sprout vs Sapling, and handle them separately.

Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
2018-08-20 11:34:54 +01:00
Simon
6d8ea4fa82 Fix typo in parameter name. 2018-08-08 12:03:10 -07:00
Simon
c343e2db9a Fix code review nits. 2018-08-08 12:03:10 -07:00
Simon
3b6dd486b4 Refactor IsSpent(nullifier) for Sprout and Sapling domain separation.
We need separate functions for checking Sprout and Sapling nullifiers,
because they are in separate domains and aren't guaranteed to be
collision-resistant (otherwise there is a possibility of a nullifier
collision, however remote, between Sprout and Sapling causing the spend
of one to prevent the spend of the other).
2018-08-08 12:03:10 -07:00
Simon
ad1e90dd34 Add caching and updating of Sapling note nullifier. 2018-08-08 12:03:10 -07:00
Simon
d7cf640bbf Create CWallet::IsSaplingNullifierFromMe() 2018-08-08 12:03:10 -07:00
Simon
037cacf2ce Rename IsFromMe(nullifier) to IsSproutNullifierFromMe(nullifier). 2018-08-08 12:03:10 -07:00
Simon
78584ef794 Create CWallet::FindMySaplingNotes() 2018-08-08 12:03:09 -07:00
Simon
52332fb417 Create CWallet::AddToSaplingSpends() to track Sapling nullifiers. 2018-08-08 12:03:09 -07:00
Simon
dae1c4204a Update CWallet::MarkAffectedTransactionsDirty() for Sapling. 2018-08-08 12:03:09 -07:00
Simon
a132719da5 Add ivk member variable and equality comparators to SaplingNoteData class. 2018-08-08 12:02:27 -07:00
Simon
3438e26cc3 Rename mapTxNullifiers to mapTxSproutNullifiers. 2018-08-08 11:37:38 -07:00
Simon
d5e490d9f2 Rename CWallet::AddToSpends methods for clarity. 2018-08-08 11:37:38 -07:00
Simon
f41bf503e1 Rename mapNullifiersToNotes to mapSproutNullifiersToNotes. 2018-08-08 11:37:38 -07:00
Simon
618206c7d5 Rename GetNoteNullifier to GetSproutNoteNullifier. 2018-08-08 11:37:38 -07:00
Simon
57faf44e61 Rename FindMyNotes to FindMySproutNotes. 2018-08-08 11:37:38 -07:00
Michael Toutonghi
5034d1c134 Sync with latest Komodo changes 2018-08-06 12:52:22 -07:00
Jack Grigg
25d5e80cbe Rename *SpendingKey -> *SproutSpendingKey
Also GetPaymentAddresses -> GetSproutPaymentAddresses
2018-08-03 10:10:26 +01:00
Jack Grigg
4c77517772 Rename *ViewingKey* -> *SproutViewingKey* 2018-08-03 02:23:38 +01:00
Jack Grigg
5175a7f07b Pass SaplingPaymentAddress to store through the CKeyStore 2018-08-03 01:01:45 +01:00
Jack Grigg
bc6344b350 Add CWallet::AddCryptedSaplingSpendingKey() hook
To be filled in when we implement Sapling persistence to disk.
2018-08-03 00:23:08 +01:00
Eirik Ogilvie-Wigley
8ea8ef9850 Rename Witnesses to include sprout or sapling 2018-08-01 10:41:36 -06:00
Eirik Ogilvie-Wigley
4fc309f0f5 Rename Merkle Trees to include sprout or sapling 2018-08-01 10:31:09 -06:00
Eirik Ogilvie-Wigley
e6b0a8b9ee Add getter and setter for sapling note data and update tests 2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
8e8279e728 Rename sprout specific methods 2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
45de2eda07 Increment sapling note witnesses 2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
f86ee1c252 Pass sapling merkle tree when incrementing witnesses 2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
be43b7469d Add sapling note data and map 2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
005f3ad1dd Rename note data to include sprout 2018-07-25 20:47:40 -07:00
Michael Toutonghi
17d0160a17 Cleanup nonce changes 2018-07-20 19:57:46 -07:00
Michael Toutonghi
c5325a3256 PoS improvements 2018-07-18 17:42:15 -07:00
Jonas Schnelli
34aca1b03c [RPC, Wallet] Move RPC dispatch table registration to wallet/ code
Allow extending the rpc dispatch table by appending commands when server is not running.
2018-07-18 11:07:15 -06:00
Homu
13b41a6760 Auto merge of #3156 - Eirik0:2935-change-indicator, r=bitcartel
Add change indicator

This adds to the json returned when calling z_listreceivedbyaddress and z_listuspent an additional field entitiled 'change' which will be either true or false depending on whether or not the note was change from another transaction.
2018-07-17 11:41:03 -07:00
Eirik Ogilvie-Wigley
0646f749f9 Add change indicator for notes 2018-07-16 14:49:29 -06:00
jl777
72953c8342 Syntax 2018-07-11 03:00:38 -11:00
jl777
1cdb961ba2 Fix PoW mining in mixed PoS/PoW, fix orphaned stake tx 2018-07-11 02:51:42 -11:00
Jay Graber
efb7662d4a Add Sapling Add/Have/Get to keystore 2018-07-05 14:37:33 -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
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
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
miketout
ef70c5b2de Updated miner messages 2018-05-05 07:52:02 -07:00