When using `listsinceblock` to fetch transactions since the last record observed, there is a relevant detail missed that I would like to record in the ledger: `blockheight`.

It is unreasonable for my wallet interface to do an RPC lookup for every new blockhash just to get the height number. There could be hundreds of transactions or even thousands and they could all be processed with a simple call to `listsinceblock` if it wasn't for the lack of `blockheight`.

Currently it looks like:

> "blockhash": "0000000000000000000549800794b27ab10d5e16ac6ad16a7c4a13dae756f80d",
> "blockindex": 1120,
> "blocktime": 1572073467,

I would like it to look like:

> "blockhash": "0000000000000000000549800794b27ab10d5e16ac6ad16a7c4a13dae756f80d",
> "blockindex": 1120,
> "blocktime": 1572073467,
> "blockheight": 601091,

I have the same request regarding the output of `gettransaction` also.

Thanks in advance.


CMutableTransaction mtx;
    if (!DecodeHexTx(mtx, request.params[0].get_str(), true)) {
        throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
    }
    
    auto locked_chain = pwallet->chain().lock();
    LOCK(pwallet->cs_wallet);
    EnsureWalletIsUnlocked(pwallet);
    
    std::map<COutPoint, Coin> coins;
    for (const CTxIn& txin : mtx.vin) {
        coins[txin.prevout]; 
    }
    pwallet->chain().findCoins(coins);
    
    ParsePrevouts(request.params[1], nullptr, coins);
    return SignTransaction(mtx, &*pwallet->GetLegacyScriptPubKeyMan(), coins, request.params[2]);
}
static UniValue bumpfee(const JSONRPCRequest& request)
{
    std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
    CWallet* const pwallet = wallet.get();
    if (!EnsureWalletIsAvailable(pwallet, request.fHelp))
        return NullUniValue;
            RPCHelpMan{"bumpfee",
                "\nBumps the fee of an opt-in-RBF transaction T, replacing it with a new transaction B.\n"
                "An opt-in RBF transaction with the given txid must be in the wallet.\n"
                "The command will pay the additional fee by reducing change outputs or adding inputs when necessary. It may add a new change output if one does not already exist.\n"
                "If `totalFee` (DEPRECATED) is given, adding inputs is not supported, so there must be a single change output that is big enough or it will fail.\n"
                "All inputs in the original transaction will be included in the replacement transaction.\n"