From fa6801366d76a34f51a7d60be7d3710ed8e722db Mon Sep 17 00:00:00 2001 From: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz> Date: Fri, 6 Feb 2026 13:17:57 +0100 Subject: [PATCH] refactor: [rpc] Remove confusing and brittle integral casts (take 2) --- src/core_io.cpp | 12 ++++++------ src/rest.cpp | 2 +- src/rpc/blockchain.cpp | 2 +- src/rpc/mining.cpp | 2 +- src/rpc/net.cpp | 6 +++--- src/rpc/node.cpp | 12 ++++++------ src/rpc/rawtransaction.cpp | 2 +- src/rpc/server.cpp | 2 +- src/wallet/rpc/coins.cpp | 6 +++--- src/wallet/rpc/transactions.cpp | 2 +- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/core_io.cpp b/src/core_io.cpp index a4b726cd669..90eb65cd544 100644 --- a/src/core_io.cpp +++ b/src/core_io.cpp @@ -439,7 +439,7 @@ void TxToUniv(const CTransaction& tx, const uint256& block_hash, UniValue& entry entry.pushKV("size", tx.ComputeTotalSize()); entry.pushKV("vsize", (GetTransactionWeight(tx) + WITNESS_SCALE_FACTOR - 1) / WITNESS_SCALE_FACTOR); entry.pushKV("weight", GetTransactionWeight(tx)); - entry.pushKV("locktime", (int64_t)tx.nLockTime); + entry.pushKV("locktime", tx.nLockTime); UniValue vin{UniValue::VARR}; vin.reserve(tx.vin.size()); @@ -457,7 +457,7 @@ void TxToUniv(const CTransaction& tx, const uint256& block_hash, UniValue& entry in.pushKV("coinbase", HexStr(txin.scriptSig)); } else { in.pushKV("txid", txin.prevout.hash.GetHex()); - in.pushKV("vout", (int64_t)txin.prevout.n); + in.pushKV("vout", txin.prevout.n); UniValue o(UniValue::VOBJ); o.pushKV("asm", ScriptToAsmStr(txin.scriptSig, true)); o.pushKV("hex", HexStr(txin.scriptSig)); @@ -482,14 +482,14 @@ void TxToUniv(const CTransaction& tx, const uint256& block_hash, UniValue& entry ScriptToUniv(prev_txout.scriptPubKey, /*out=*/o_script_pub_key, /*include_hex=*/true, /*include_address=*/true); UniValue p(UniValue::VOBJ); - p.pushKV("generated", bool(prev_coin.fCoinBase)); - p.pushKV("height", uint64_t(prev_coin.nHeight)); + p.pushKV("generated", static_cast(prev_coin.fCoinBase)); + p.pushKV("height", prev_coin.nHeight); p.pushKV("value", ValueFromAmount(prev_txout.nValue)); p.pushKV("scriptPubKey", std::move(o_script_pub_key)); in.pushKV("prevout", std::move(p)); } } - in.pushKV("sequence", (int64_t)txin.nSequence); + in.pushKV("sequence", txin.nSequence); vin.push_back(std::move(in)); } entry.pushKV("vin", std::move(vin)); @@ -502,7 +502,7 @@ void TxToUniv(const CTransaction& tx, const uint256& block_hash, UniValue& entry UniValue out(UniValue::VOBJ); out.pushKV("value", ValueFromAmount(txout.nValue)); - out.pushKV("n", (int64_t)i); + out.pushKV("n", i); UniValue o(UniValue::VOBJ); ScriptToUniv(txout.scriptPubKey, /*out=*/o, /*include_hex=*/true, /*include_address=*/true); diff --git a/src/rest.cpp b/src/rest.cpp index b91b229a1f0..21d1f692869 100644 --- a/src/rest.cpp +++ b/src/rest.cpp @@ -1065,7 +1065,7 @@ static bool rest_getutxos(const std::any& context, HTTPRequest* req, const std:: UniValue utxos(UniValue::VARR); for (const CCoin& coin : outs) { UniValue utxo(UniValue::VOBJ); - utxo.pushKV("height", (int32_t)coin.nHeight); + utxo.pushKV("height", coin.nHeight); utxo.pushKV("value", ValueFromAmount(coin.out.nValue)); // include the script in a json output diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index a883570f94b..0cc1eb8782b 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -1097,7 +1097,7 @@ static RPCHelpMan gettxoutsetinfo() CHECK_NONFATAL(stats.total_amount.has_value()); ret.pushKV("total_amount", ValueFromAmount(stats.total_amount.value())); if (!stats.index_used) { - ret.pushKV("transactions", static_cast(stats.nTransactions)); + ret.pushKV("transactions", stats.nTransactions); ret.pushKV("disk_size", stats.nDiskSize); } else { CCoinsStats prev_stats{}; diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index d0efa84fb71..ee80b903248 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -983,7 +983,7 @@ static RPCHelpMan getblocktemplate() result.pushKV("version", block.nVersion); result.pushKV("rules", std::move(aRules)); result.pushKV("vbavailable", std::move(vbavailable)); - result.pushKV("vbrequired", int(0)); + result.pushKV("vbrequired", 0); result.pushKV("previousblockhash", block.hashPrevBlock.GetHex()); result.pushKV("transactions", std::move(transactions)); diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp index c6359c37dc7..5c54e207973 100644 --- a/src/rpc/net.cpp +++ b/src/rpc/net.cpp @@ -235,7 +235,7 @@ static RPCHelpMan getpeerinfo() } obj.pushKV("network", GetNetworkName(stats.m_network)); if (stats.m_mapped_as != 0) { - obj.pushKV("mapped_as", uint64_t(stats.m_mapped_as)); + obj.pushKV("mapped_as", stats.m_mapped_as); } ServiceFlags services{statestats.their_services}; obj.pushKV("services", strprintf("%016x", services)); @@ -958,7 +958,7 @@ static RPCHelpMan getnodeaddresses() for (const CAddress& addr : vAddr) { UniValue obj(UniValue::VOBJ); - obj.pushKV("time", int64_t{TicksSinceEpoch(addr.nTime)}); + obj.pushKV("time", TicksSinceEpoch(addr.nTime)); obj.pushKV("services", static_cast>(addr.nServices)); obj.pushKV("address", addr.ToStringAddr()); obj.pushKV("port", addr.GetPort()); @@ -1127,7 +1127,7 @@ UniValue AddrmanEntryToJSON(const AddrInfo& info, const CConnman& connman) } ret.pushKV("port", info.GetPort()); ret.pushKV("services", static_cast>(info.nServices)); - ret.pushKV("time", int64_t{TicksSinceEpoch(info.nTime)}); + ret.pushKV("time", TicksSinceEpoch(info.nTime)); ret.pushKV("network", GetNetworkName(info.GetNetClass())); ret.pushKV("source", info.source.ToStringAddr()); ret.pushKV("source_network", GetNetworkName(info.source.GetNetClass())); diff --git a/src/rpc/node.cpp b/src/rpc/node.cpp index c922b27f688..93d860d4dd0 100644 --- a/src/rpc/node.cpp +++ b/src/rpc/node.cpp @@ -113,12 +113,12 @@ static UniValue RPCLockedMemoryInfo() { LockedPool::Stats stats = LockedPoolManager::Instance().stats(); UniValue obj(UniValue::VOBJ); - obj.pushKV("used", uint64_t(stats.used)); - obj.pushKV("free", uint64_t(stats.free)); - obj.pushKV("total", uint64_t(stats.total)); - obj.pushKV("locked", uint64_t(stats.locked)); - obj.pushKV("chunks_used", uint64_t(stats.chunks_used)); - obj.pushKV("chunks_free", uint64_t(stats.chunks_free)); + obj.pushKV("used", stats.used); + obj.pushKV("free", stats.free); + obj.pushKV("total", stats.total); + obj.pushKV("locked", stats.locked); + obj.pushKV("chunks_used", stats.chunks_used); + obj.pushKV("chunks_free", stats.chunks_free); return obj; } diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index 0604aa94515..5885422be7c 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -1092,7 +1092,7 @@ static RPCHelpMan decodepsbt() result.pushKV("global_xpubs", std::move(global_xpubs)); // PSBT version - result.pushKV("psbt_version", static_cast(psbtx.GetVersion())); + result.pushKV("psbt_version", psbtx.GetVersion()); // Proprietary UniValue proprietary(UniValue::VARR); diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp index 01fb815a967..cddd62f4aa5 100644 --- a/src/rpc/server.cpp +++ b/src/rpc/server.cpp @@ -219,7 +219,7 @@ static RPCHelpMan getrpcinfo() for (const RPCCommandExecutionInfo& info : g_rpc_server_info.active_commands) { UniValue entry(UniValue::VOBJ); entry.pushKV("method", info.method); - entry.pushKV("duration", int64_t{Ticks(SteadyClock::now() - info.start)}); + entry.pushKV("duration", Ticks(SteadyClock::now() - info.start)); active_commands.push_back(std::move(entry)); } diff --git a/src/wallet/rpc/coins.cpp b/src/wallet/rpc/coins.cpp index e4fb3843e68..5dc3391ded7 100644 --- a/src/wallet/rpc/coins.cpp +++ b/src/wallet/rpc/coins.cpp @@ -667,9 +667,9 @@ RPCHelpMan listunspent() CAmount ancestor_fees; pwallet->chain().getTransactionAncestry(out.outpoint.hash, ancestor_count, descendant_count, &ancestor_size, &ancestor_fees); if (ancestor_count) { - entry.pushKV("ancestorcount", uint64_t(ancestor_count)); - entry.pushKV("ancestorsize", uint64_t(ancestor_size)); - entry.pushKV("ancestorfees", uint64_t(ancestor_fees)); + entry.pushKV("ancestorcount", ancestor_count); + entry.pushKV("ancestorsize", ancestor_size); + entry.pushKV("ancestorfees", ancestor_fees); } } entry.pushKV("spendable", true); // Any coins we list are always spendable diff --git a/src/wallet/rpc/transactions.cpp b/src/wallet/rpc/transactions.cpp index 6fe964584c0..34ebdea79c7 100644 --- a/src/wallet/rpc/transactions.cpp +++ b/src/wallet/rpc/transactions.cpp @@ -47,7 +47,7 @@ static void WalletTxToJSON(const CWallet& wallet, const CWalletTx& wtx, UniValue mempool_conflicts.push_back(mempool_conflict.GetHex()); entry.pushKV("mempoolconflicts", std::move(mempool_conflicts)); entry.pushKV("time", wtx.GetTxTime()); - entry.pushKV("timereceived", int64_t{wtx.nTimeReceived}); + entry.pushKV("timereceived", wtx.nTimeReceived); // Add opt-in RBF status std::string rbfStatus = "no";