wallet: avoid extra IsSpentKey -> GetWalletTx lookups

This commit is contained in:
furszy committed 2022-06-08 11:22:40 -03:00
1 parent 3d8a282257
commit 4b83bf8dbc
3 files changed
+4 -4

No files matched your search

+2 -2
View File
@@ -205,8 +205,8 @@ CAmount CachedTxGetAvailableCredit(const CWallet& wallet, const CWalletTx& wtx,
CAmount nCredit = 0;
uint256 hashTx = wtx.GetHash();
for (unsigned int i = 0; i < wtx.tx->vout.size(); i++) {
if (!wallet.IsSpent(COutPoint(hashTx, i)) && (allow_used_addresses || !wallet.IsSpentKey(hashTx, i))) {
const CTxOut &txout = wtx.tx->vout[i];
const CTxOut& txout = wtx.tx->vout[i];
if (!wallet.IsSpent(COutPoint(hashTx, i)) && (allow_used_addresses || !wallet.IsSpentKey(txout.scriptPubKey))) {
nCredit += OutputGetCredit(wallet, txout, filter);
if (!MoneyRange(nCredit))
throw std::runtime_error(std::string(__func__) + " : value out of range");
+1 -1
View File
@@ -649,7 +649,7 @@ RPCHelpMan listunspent()
CTxDestination address;
const CScript& scriptPubKey = out.txout.scriptPubKey;
bool fValidAddress = ExtractDestination(scriptPubKey, address);
bool reused = avoid_reuse && pwallet->IsSpentKey(out.outpoint.hash, out.outpoint.n);
bool reused = avoid_reuse && pwallet->IsSpentKey(scriptPubKey);
if (destinations.size() && (!fValidAddress || !destinations.count(address)))
continue;
+1 -1
View File
@@ -191,7 +191,7 @@ CoinsResult AvailableCoins(const CWallet& wallet,
continue;
}
if (!allow_used_addresses && wallet.IsSpentKey(wtxid, i)) {
if (!allow_used_addresses && wallet.IsSpentKey(output.scriptPubKey)) {
continue;
}