mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
[wallet] [moveonly] Move CAffectedKeysVisitor
This commit is contained in:
parent
659c096134
commit
cab8557e35
@ -80,6 +80,38 @@ std::string COutput::ToString() const
|
|||||||
return strprintf("COutput(%s, %d, %d) [%s]", tx->GetHash().ToString(), i, nDepth, FormatMoney(tx->tx->vout[i].nValue));
|
return strprintf("COutput(%s, %d, %d) [%s]", tx->GetHash().ToString(), i, nDepth, FormatMoney(tx->tx->vout[i].nValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class CAffectedKeysVisitor : public boost::static_visitor<void> {
|
||||||
|
private:
|
||||||
|
const CKeyStore &keystore;
|
||||||
|
std::vector<CKeyID> &vKeys;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CAffectedKeysVisitor(const CKeyStore &keystoreIn, std::vector<CKeyID> &vKeysIn) : keystore(keystoreIn), vKeys(vKeysIn) {}
|
||||||
|
|
||||||
|
void Process(const CScript &script) {
|
||||||
|
txnouttype type;
|
||||||
|
std::vector<CTxDestination> vDest;
|
||||||
|
int nRequired;
|
||||||
|
if (ExtractDestinations(script, type, vDest, nRequired)) {
|
||||||
|
for (const CTxDestination &dest : vDest)
|
||||||
|
boost::apply_visitor(*this, dest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void operator()(const CKeyID &keyId) {
|
||||||
|
if (keystore.HaveKey(keyId))
|
||||||
|
vKeys.push_back(keyId);
|
||||||
|
}
|
||||||
|
|
||||||
|
void operator()(const CScriptID &scriptId) {
|
||||||
|
CScript script;
|
||||||
|
if (keystore.GetCScript(scriptId, script))
|
||||||
|
Process(script);
|
||||||
|
}
|
||||||
|
|
||||||
|
void operator()(const CNoDestination &none) {}
|
||||||
|
};
|
||||||
|
|
||||||
const CWalletTx* CWallet::GetWalletTx(const uint256& hash) const
|
const CWalletTx* CWallet::GetWalletTx(const uint256& hash) const
|
||||||
{
|
{
|
||||||
LOCK(cs_wallet);
|
LOCK(cs_wallet);
|
||||||
@ -3629,38 +3661,6 @@ void CWallet::ListLockedCoins(std::vector<COutPoint>& vOutpts) const
|
|||||||
|
|
||||||
/** @} */ // end of Actions
|
/** @} */ // end of Actions
|
||||||
|
|
||||||
class CAffectedKeysVisitor : public boost::static_visitor<void> {
|
|
||||||
private:
|
|
||||||
const CKeyStore &keystore;
|
|
||||||
std::vector<CKeyID> &vKeys;
|
|
||||||
|
|
||||||
public:
|
|
||||||
CAffectedKeysVisitor(const CKeyStore &keystoreIn, std::vector<CKeyID> &vKeysIn) : keystore(keystoreIn), vKeys(vKeysIn) {}
|
|
||||||
|
|
||||||
void Process(const CScript &script) {
|
|
||||||
txnouttype type;
|
|
||||||
std::vector<CTxDestination> vDest;
|
|
||||||
int nRequired;
|
|
||||||
if (ExtractDestinations(script, type, vDest, nRequired)) {
|
|
||||||
for (const CTxDestination &dest : vDest)
|
|
||||||
boost::apply_visitor(*this, dest);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void operator()(const CKeyID &keyId) {
|
|
||||||
if (keystore.HaveKey(keyId))
|
|
||||||
vKeys.push_back(keyId);
|
|
||||||
}
|
|
||||||
|
|
||||||
void operator()(const CScriptID &scriptId) {
|
|
||||||
CScript script;
|
|
||||||
if (keystore.GetCScript(scriptId, script))
|
|
||||||
Process(script);
|
|
||||||
}
|
|
||||||
|
|
||||||
void operator()(const CNoDestination &none) {}
|
|
||||||
};
|
|
||||||
|
|
||||||
void CWallet::GetKeyBirthTimes(std::map<CTxDestination, int64_t> &mapKeyBirth) const {
|
void CWallet::GetKeyBirthTimes(std::map<CTxDestination, int64_t> &mapKeyBirth) const {
|
||||||
AssertLockHeld(cs_wallet); // mapKeyMetadata
|
AssertLockHeld(cs_wallet); // mapKeyMetadata
|
||||||
mapKeyBirth.clear();
|
mapKeyBirth.clear();
|
||||||
|
Loading…
Reference in New Issue
Block a user