Jack Grigg
1b79de781c
Store ExtFVK with encrypted Sapling spending key instead of FVK
...
This ensures that even when the wallet is encrypted, we can derive the default
Sapling payment address for our spending keys.
2018-10-05 23:13:32 +01:00
mdr0id
87ae893d75
Revert "wallet: Comment out HDSeed and CHDChain persistence to disk"
...
This reverts commit b7f9a7ae02 .
2018-10-05 17:46:43 +01:00
Homu
967bbbc486
Auto merge of #3561 - bitcartel:3560_update_sapling_note_data, r=bitcartel
...
Closes #3560 . Update Sapling note data correctly when importing a key.
2018-10-04 15:37:34 -07:00
Homu
325ba00336
Auto merge of #3542 - Eirik0:3511-update-address-mapping, r=bitcartel
...
Add newly discovered sapling addresses to the wallet when decrypting
Closes #3511
2018-10-03 21:49:32 -07:00
Simon
f0dcfceb81
Closes #3560 . Update Sapling note data correctly when importing a key.
2018-10-03 15:40:50 -07:00
Eirik Ogilvie-Wigley
a4ecd0fa72
Add newly discovered sapling addresses to the wallet
2018-10-01 09:34:25 -06:00
Larry Ruane
e4f0d6a8de
Sapling support for z_listreceivedbyaddress
2018-09-27 16:59:29 -06:00
Eirik Ogilvie-Wigley
83c4e360da
Address need not be optional when adding sapling keys
2018-09-27 15:44:04 -06:00
Eirik Ogilvie-Wigley
2fe39561ec
Export zip32 metadata with sapling keys
2018-09-14 17:27:20 -06:00
Jonas Schnelli
b6d1af89f2
[Wallet] extend CKeyMetadata with HD keypath
...
Zcash: modified for zip32
2018-09-14 16:59:51 -06:00
Eirik Ogilvie-Wigley
9bcf90e2de
Add sapling support to z_importwallet
2018-09-14 16:16:03 -06:00
Eirik Ogilvie-Wigley
0f03de5536
Return more information when adding a spending key
2018-09-14 16:00:47 -06:00
Eirik Ogilvie-Wigley
fcab001b1e
Move AddSpendingKeyToWallet
2018-09-14 15:44:03 -06:00
Eirik Ogilvie-Wigley
a0783bb957
Rename AddZKey to include sprout
2018-09-14 15:07:15 -06:00
Eirik Ogilvie-Wigley
5e360fb29f
Add sapling spending keys to z_exportwallet
2018-09-14 15:07:15 -06:00
Eirik Ogilvie-Wigley
d6b31d59b5
Rename map to include sprout
2018-09-14 15:07:15 -06:00
Homu
0e0f5e4ea7
Auto merge of #3496 - bitcartel:3442_sapling_note_locking, r=str4d
...
Add Sapling note locking to the CWallet class
Closes #3442 .
2018-09-12 09:07:14 -07:00
Simon
b1c693e532
Add methods to store SaplingOutPoint in setLockedSaplingNotes
2018-09-04 14:56:08 -07:00
Simon
0f62cacf0c
Refactor: rename ListLockedNotes -> ListLockedSproutNotes
2018-09-04 14:56:08 -07:00
Simon
9ae73247e2
Refactor: rename UnlockAllNotes -> UnlockAllSproutNotes
2018-09-04 14:56:08 -07:00
Simon
d358d145ca
Refactor: rename setLockedNotes -> setLockedSproutNotes
2018-09-04 14:55:58 -07:00
Jack Grigg
b7f9a7ae02
wallet: Comment out HDSeed and CHDChain persistence to disk
...
Sapling keys generated from the seed are not yet persisted, so we don't
want to persist the seed or chain state either, otherwise the wallet
could end up in an inconsistent state.
Some tests are temporarily disabled because commenting out HDSeed
persistence breaks invariants inside CCryptoKeyStore.
Revert this commit during the PR for #3388 .
2018-09-03 10:45:37 +01:00
Jack Grigg
70b4ad2dcd
wallet: Switch from SaplingSpendingKey to SaplingExtendedSpendingKey
...
The wallet now only stores Sapling extended spending keys, and thus can
only be used with keys generated from an HDSeed via ZIP 32.
Note that not all Sapling keys in the wallet will correspond to the
wallet's HDSeed, as a standalone Sapling xsk can be imported via
z_importkey. However, it must have been generated from a seed itself,
and thus is more likely to be backed up elsewhere.
2018-09-03 10:45:37 +01:00
Jack Grigg
a4ac4fc3f4
wallet: Store Sapling key metadata indexed by ivk
...
Closes #3426 .
2018-09-03 10:45:37 +01:00
Jack Grigg
e2416930ea
wallet: Store HDSeed and chain data
2018-09-03 10:45:37 +01:00
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
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
303f80fb1e
Fix comment in CWallet::SyncMetaData.
2018-08-08 12:03:10 -07:00
Simon
3afc6ce219
Update CWallet::GetConflicts for Sapling.
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
ec064abbdf
Iterate over mapSaplingFullViewingKeys with ivk->fvk mapping (1:1).
...
When diversified addresses are supported, iterating over
mapSaplingIncomingViewingKeys will be inefficient as the mapping will
be addresses->ivk (n:1).
2018-08-08 12:03:10 -07:00
Simon
edfc6a787f
Update CWallet::IsSpent() to check Sapling nullifiers.
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
f9816408b2
Update CWalletTx::GetAmounts() to return COutputEntry for Sapling valueBalance.
2018-08-08 12:03:10 -07:00
Simon
f686388991
Cleanup CWalletTx::GetAmounts() for clarity. No-op.
2018-08-08 12:03:10 -07:00
Simon
c47c1e9363
Remove dead code in CWalletTx::GetAmounts() as filed in issue #3434 .
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
3a83e7c9a4
Update CWallet::UpdatedNoteData() for Sapling.
2018-08-08 12:03:09 -07:00
Simon
dae1c4204a
Update CWallet::MarkAffectedTransactionsDirty() for Sapling.
2018-08-08 12:03:09 -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