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).
This commit is contained in:
parent
28d3dc8532
commit
ec064abbdf
|
@ -1617,8 +1617,8 @@ mapSaplingNoteData_t CWallet::FindMySaplingNotes(const CTransaction &tx) const
|
||||||
// Protocol Spec: 4.19 Block Chain Scanning (Sapling)
|
// Protocol Spec: 4.19 Block Chain Scanning (Sapling)
|
||||||
for (uint32_t i = 0; i < tx.vShieldedOutput.size(); ++i) {
|
for (uint32_t i = 0; i < tx.vShieldedOutput.size(); ++i) {
|
||||||
const OutputDescription output = tx.vShieldedOutput[i];
|
const OutputDescription output = tx.vShieldedOutput[i];
|
||||||
for (auto it = mapSaplingIncomingViewingKeys.begin(); it != mapSaplingIncomingViewingKeys.end(); ++it) {
|
for (auto it = mapSaplingFullViewingKeys.begin(); it != mapSaplingFullViewingKeys.end(); ++it) {
|
||||||
SaplingIncomingViewingKey ivk = it->second;
|
SaplingIncomingViewingKey ivk = it->first;
|
||||||
auto result = SaplingNotePlaintext::decrypt(output.encCiphertext, ivk, output.ephemeralKey, output.cm);
|
auto result = SaplingNotePlaintext::decrypt(output.encCiphertext, ivk, output.ephemeralKey, output.cm);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue