|
|
|
@ -457,6 +457,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn)
@@ -457,6 +457,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn)
|
|
|
|
|
return false; |
|
|
|
|
#ifndef QT_GUI |
|
|
|
|
// 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) |
|
|
|
@ -471,6 +472,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn)
@@ -471,6 +472,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn)
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
// since AddToWallet is called directly for self-originating transactions, check for consumption of own coins
|
|
|
|
|
WalletUpdateSpent(wtx); |
|
|
|
@ -1199,8 +1201,8 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
@@ -1199,8 +1201,8 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
|
|
|
|
|
// post-backup change.
|
|
|
|
|
|
|
|
|
|
// Reserve a new key pair from key pool
|
|
|
|
|
CPubKey vchPubKey = reservekey.GetReservedKey(); |
|
|
|
|
// assert(mapKeys.count(vchPubKey));
|
|
|
|
|
CPubKey vchPubKey; |
|
|
|
|
assert(reservekey.GetReservedKey(vchPubKey)); // should never fail, as we just unlocked
|
|
|
|
|
|
|
|
|
|
// Fill a vout to ourself
|
|
|
|
|
// TODO: pass in scriptChange instead of reservekey so
|
|
|
|
@ -1737,7 +1739,7 @@ set< set<CTxDestination> > CWallet::GetAddressGroupings()
@@ -1737,7 +1739,7 @@ set< set<CTxDestination> > CWallet::GetAddressGroupings()
|
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CPubKey CReserveKey::GetReservedKey() |
|
|
|
|
bool CReserveKey::GetReservedKey(CPubKey& pubkey) |
|
|
|
|
{ |
|
|
|
|
if (nIndex == -1) |
|
|
|
|
{ |
|
|
|
@ -1745,14 +1747,17 @@ CPubKey CReserveKey::GetReservedKey()
@@ -1745,14 +1747,17 @@ CPubKey CReserveKey::GetReservedKey()
|
|
|
|
|
pwallet->ReserveKeyFromKeyPool(nIndex, keypool); |
|
|
|
|
if (nIndex != -1) |
|
|
|
|
vchPubKey = keypool.vchPubKey; |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
else { |
|
|
|
|
if (pwallet->vchDefaultKey.IsValid()) { |
|
|
|
|
printf("CReserveKey::GetReservedKey(): Warning: Using default key instead of a new key, top up your keypool!"); |
|
|
|
|
vchPubKey = pwallet->vchDefaultKey; |
|
|
|
|
} else |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
assert(vchPubKey.IsValid()); |
|
|
|
|
return vchPubKey; |
|
|
|
|
pubkey = vchPubKey; |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void CReserveKey::KeepKey() |
|
|
|
|