Open dooglus opened 7 years ago
In wallet.cpp
:
if (!fHaveGUI) {
// If default receiving address gets used, replace it with a new one
if (vchDefaultKey.IsValid()) {
CScript scriptDefaultKey;
scriptDefaultKey.SetDestination(vchDefaultKey.GetID());
BOOST_FOREACH(const CTxOut& txout, wtx.vout)
{
if (txout.scriptPubKey == scriptDefaultKey)
{
CPubKey newDefaultKey;
if (GetKeyFromPool(newDefaultKey))
{
SetDefaultKey(newDefaultKey);
SetAddressBookName(vchDefaultKey.GetID(), "");
}
}
}
}
}
So if we were to break;
after SetAddressBookName()
that would fix it?
I just made a new wallet and deliberately set the keypool to be small, since I'll only be using it for staking. I put this in
clam.conf
:Then I sent some coins to the wallet. I split the coins into 99 separate outputs, all going to the same address. When the transaction was received I saw this in the wallet's
debug.log
:ie. it looks like it created 99 new addresses in the wallet. I understand that the wallet wants to create a new receiving address when the previous one was used, but it shouldn't be creating more than one of them since only one address was used.
Edit: I should mention that this was using the unreleased code on the master branch, with the 'reindex' fixes, etc.