message: Implement CWallet::IsSpentKey for non-LegacySPKMans
diff: @@ -776,9 +776,15 @@ bool CWallet::IsSpentKey(const uint256& hash, unsigned int n) const
  const CWalletTx* srctx = GetWalletTx(hash);
  if (srctx) {
  assert(srctx->tx->vout.size() > n);
  + CTxDestination dest;
  + if (!ExtractDestination(srctx->tx->vout[n].scriptPubKey, dest)) {
  + return false;
  + }
  + if (GetDestData(dest, "used", nullptr)) {
  + return true;
  + }
  + if (IsLegacy()) {
  LegacyScriptPubKeyMan* spk_man = GetLegacyScriptPubKeyMan();
  - // When descriptor wallets arrive, these additional checks are
  - // likely superfluous and can be optimized out
  assert(spk_man != nullptr);
  for (const auto& keyid : GetAffectedKeys(srctx->tx->vout[n].scriptPubKey, *spk_man)) {
  WitnessV0KeyHash wpkh_dest(keyid);
  @@ -795,6 +801,7 @@ bool CWallet::IsSpentKey(const uint256& hash, unsigned int n) const
  }
  }
  }
  + }
  return false;
  }
  