mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
Merge #11027: [RPC] Only return hex field once in getrawtransaction
6bbdafcPass serialization flags and whether to include hex to TxToUniv (Andrew Chow)e029c6eOnly return hex field once in getrawtransaction (Andrew Chow) Pull request description: The hex is already returned in `TxToUniv()`, no need to give it out a second time in getrawtransaction itself. Tree-SHA512: 270289f2d6dea37f51f5a42db3dae5debdbe83c6b504fccfd3391588da986ed474592c6655d522dc51022d4b08fa90ed1ebb249afe036309f95adfe3652cb262
This commit is contained in:
@@ -31,6 +31,6 @@ UniValue ValueFromAmount(const CAmount& amount);
|
|||||||
std::string FormatScript(const CScript& script);
|
std::string FormatScript(const CScript& script);
|
||||||
std::string EncodeHexTx(const CTransaction& tx, const int serializeFlags = 0);
|
std::string EncodeHexTx(const CTransaction& tx, const int serializeFlags = 0);
|
||||||
void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool fIncludeHex);
|
void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool fIncludeHex);
|
||||||
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry);
|
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry, bool include_hex = true, int serialize_flags = 0);
|
||||||
|
|
||||||
#endif // BITCOIN_CORE_IO_H
|
#endif // BITCOIN_CORE_IO_H
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey,
|
|||||||
out.pushKV("addresses", a);
|
out.pushKV("addresses", a);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry)
|
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry, bool include_hex, int serialize_flags)
|
||||||
{
|
{
|
||||||
entry.pushKV("txid", tx.GetHash().GetHex());
|
entry.pushKV("txid", tx.GetHash().GetHex());
|
||||||
entry.pushKV("hash", tx.GetWitnessHash().GetHex());
|
entry.pushKV("hash", tx.GetWitnessHash().GetHex());
|
||||||
@@ -207,5 +207,7 @@ void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry)
|
|||||||
if (!hashBlock.IsNull())
|
if (!hashBlock.IsNull())
|
||||||
entry.pushKV("blockhash", hashBlock.GetHex());
|
entry.pushKV("blockhash", hashBlock.GetHex());
|
||||||
|
|
||||||
entry.pushKV("hex", EncodeHexTx(tx)); // the hex-encoded transaction. used the name "hex" to be consistent with the verbose output of "getrawtransaction".
|
if (include_hex) {
|
||||||
|
entry.pushKV("hex", EncodeHexTx(tx, serialize_flags)); // the hex-encoded transaction. used the name "hex" to be consistent with the verbose output of "getrawtransaction".
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ UniValue blockToJSON(const CBlock& block, const CBlockIndex* blockindex, bool tx
|
|||||||
if(txDetails)
|
if(txDetails)
|
||||||
{
|
{
|
||||||
UniValue objTx(UniValue::VOBJ);
|
UniValue objTx(UniValue::VOBJ);
|
||||||
TxToUniv(*tx, uint256(), objTx);
|
TxToUniv(*tx, uint256(), objTx, true, RPCSerializationFlags());
|
||||||
txs.push_back(objTx);
|
txs.push_back(objTx);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ void TxToJSON(const CTransaction& tx, const uint256 hashBlock, UniValue& entry)
|
|||||||
// Blockchain contextual information (confirmations and blocktime) is not
|
// Blockchain contextual information (confirmations and blocktime) is not
|
||||||
// available to code in bitcoin-common, so we query them here and push the
|
// available to code in bitcoin-common, so we query them here and push the
|
||||||
// data into the returned UniValue.
|
// data into the returned UniValue.
|
||||||
TxToUniv(tx, uint256(), entry);
|
TxToUniv(tx, uint256(), entry, true, RPCSerializationFlags());
|
||||||
|
|
||||||
if (!hashBlock.IsNull()) {
|
if (!hashBlock.IsNull()) {
|
||||||
entry.push_back(Pair("blockhash", hashBlock.GetHex()));
|
entry.push_back(Pair("blockhash", hashBlock.GetHex()));
|
||||||
@@ -160,13 +160,10 @@ UniValue getrawtransaction(const JSONRPCRequest& request)
|
|||||||
: "No such mempool transaction. Use -txindex to enable blockchain transaction queries") +
|
: "No such mempool transaction. Use -txindex to enable blockchain transaction queries") +
|
||||||
". Use gettransaction for wallet transactions.");
|
". Use gettransaction for wallet transactions.");
|
||||||
|
|
||||||
std::string strHex = EncodeHexTx(*tx, RPCSerializationFlags());
|
|
||||||
|
|
||||||
if (!fVerbose)
|
if (!fVerbose)
|
||||||
return strHex;
|
return EncodeHexTx(*tx, RPCSerializationFlags());
|
||||||
|
|
||||||
UniValue result(UniValue::VOBJ);
|
UniValue result(UniValue::VOBJ);
|
||||||
result.push_back(Pair("hex", strHex));
|
|
||||||
TxToJSON(*tx, hashBlock, result);
|
TxToJSON(*tx, hashBlock, result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -483,7 +480,7 @@ UniValue decoderawtransaction(const JSONRPCRequest& request)
|
|||||||
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
|
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
|
||||||
|
|
||||||
UniValue result(UniValue::VOBJ);
|
UniValue result(UniValue::VOBJ);
|
||||||
TxToUniv(CTransaction(std::move(mtx)), uint256(), result);
|
TxToUniv(CTransaction(std::move(mtx)), uint256(), result, false);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user