Different wallets may be used for different purposes.  When a notification is triggered, we get the TXID but don't know which wallet is involved.  It would be useful to have different walletnotify actions depending on which wallet is involved by the transaction.

It could be used like (bitcoin.conf):

`walletnotify.walletname=action %s`

Or maybe a more simple and flexible (dynamic-wallets compatible) way:

`walletnotify=action %s %w`

where %w is the name of the wallet.  This way, notify action (and not Bitcoin Core) is responsible for choosing the right action depending on the wallet and it is easier to RPC query the good wallet (ie gettransaction).

if (fExisted || IsMine(tx) || IsFromMe(tx))
        {
            /* Check if any keys in the wallet keypool that were supposed to be unused
             * have appeared in a new transaction. If so, remove those keys from the keypool.
             * This can happen when restoring an old wallet backup that does not contain
             * the mostly recently created transactions from newer versions of the wallet.
             */
            
            for (const CTxOut& txout: tx.vout) {
                if (auto spk_man = m_spk_man.get()) {
                    spk_man->MarkUnusedAddresses(txout.scriptPubKey);
                }
            }
            CWalletTx wtx(this, ptx);
            
            
            wtx.m_confirm = confirm;
            return AddToWallet(wtx, false);
        }
    }
    return false;
}
bool CWallet::TransactionCanBeAbandoned(const uint256& hashTx) const
{
    auto locked_chain = chain().lock();
    LOCK(cs_wallet);
    const CWalletTx* wtx = GetWalletTx(hashTx);
    return wtx && !wtx->isAbandoned() && wtx->GetDepthInMainChain() == 0 && !wtx->InMempool();
}
void CWallet::MarkInputsDirty(const CTransactionRef& tx)