diff --git a/rai/node/wallet.cpp b/rai/node/wallet.cpp index a801ef82..691e95ce 100644 --- a/rai/node/wallet.cpp +++ b/rai/node/wallet.cpp @@ -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) {