Merge pull request #4461

7dd11711 wallet2: fix transfers between subaddresses hitting the sanity check (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2018-09-29 22:17:21 +02:00
parent effcbf2060
commit 4a2664f743
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD

View File

@ -1707,10 +1707,14 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
} }
// remove change sent to the spending subaddress account from the list of received funds // remove change sent to the spending subaddress account from the list of received funds
uint64_t sub_change = 0;
for (auto i = tx_money_got_in_outs.begin(); i != tx_money_got_in_outs.end();) for (auto i = tx_money_got_in_outs.begin(); i != tx_money_got_in_outs.end();)
{ {
if (subaddr_account && i->first.major == *subaddr_account) if (subaddr_account && i->first.major == *subaddr_account)
{
sub_change += i->second;
i = tx_money_got_in_outs.erase(i); i = tx_money_got_in_outs.erase(i);
}
else else
++i; ++i;
} }
@ -1755,7 +1759,7 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
} }
} }
uint64_t total_received_2 = 0; uint64_t total_received_2 = sub_change;
for (const auto& i : tx_money_got_in_outs) for (const auto& i : tx_money_got_in_outs)
total_received_2 += i.second; total_received_2 += i.second;
if (total_received_1 != total_received_2) if (total_received_1 != total_received_2)