Check for pending blocks in change_seed action (#768)
This commit is contained in:
parent
5b693895c0
commit
6b5e215e5a
1 changed files with 12 additions and 0 deletions
|
@ -1305,6 +1305,7 @@ rai::public_key rai::wallet::change_seed (MDB_txn * transaction_a, rai::raw_key
|
|||
rai::raw_key prv;
|
||||
store.deterministic_key (prv, transaction_a, i);
|
||||
rai::keypair pair (prv.data.to_string ());
|
||||
// Check if account received at least 1 block
|
||||
auto latest (node.ledger.latest (transaction_a, pair.pub));
|
||||
if (!latest.is_zero ())
|
||||
{
|
||||
|
@ -1313,6 +1314,17 @@ rai::public_key rai::wallet::change_seed (MDB_txn * transaction_a, rai::raw_key
|
|||
// i/64 - Check additional accounts for large wallets. I.e. 64000/64 = 1000 accounts to check
|
||||
n = i + 64 + (i / 64);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Check if there are pending blocks for account
|
||||
rai::account end (pair.pub.number () + 1);
|
||||
for (auto ii (node.store.pending_begin (transaction_a, rai::pending_key (pair.pub, 0))), nn (node.store.pending_begin (transaction_a, rai::pending_key (end, 0))); ii != nn; ++ii)
|
||||
{
|
||||
count = i;
|
||||
n = i + 64 + (i / 64);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (uint32_t i (0); i < count; ++i)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue