wallet2: fix refresh retry when a block/tx fails to parse

It would switch to a new set of blocks and fail, getting out of sync
with the hash chain in the process
This commit is contained in:
moneromooo-monero 2018-08-04 12:41:15 +00:00
parent b219c24c3a
commit 62511df622
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
1 changed files with 5 additions and 4 deletions

View File

@ -2498,10 +2498,6 @@ void wallet2::refresh(bool trusted_daemon, uint64_t start_height, uint64_t & blo
break;
}
// switch to the new blocks from the daemon
blocks_start_height = next_blocks_start_height;
blocks = std::move(next_blocks);
parsed_blocks = std::move(next_parsed_blocks);
first = false;
// handle error from async fetching thread
@ -2509,6 +2505,11 @@ void wallet2::refresh(bool trusted_daemon, uint64_t start_height, uint64_t & blo
{
throw std::runtime_error("proxy exception in refresh thread");
}
// switch to the new blocks from the daemon
blocks_start_height = next_blocks_start_height;
blocks = std::move(next_blocks);
parsed_blocks = std::move(next_parsed_blocks);
}
catch (const std::exception&)
{