436 | @@ -437,8 +437,10 @@ static UniValue decoderawtransaction(const JSONRPCRequest& request)
437 | "\nReturn a JSON object representing the serialized, hex-encoded transaction.\n",
438 | {
439 | {"hexstring", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "The transaction hex string"},
440 | - {"iswitness", RPCArg::Type::BOOL, /* default */ "depends on heuristic tests", "Whether the transaction hex is a serialized witness transaction\n"
441 | - " If iswitness is not present, heuristic tests will be used in decoding"},
442 | + {"iswitness", RPCArg::Type::BOOL, /* default */ "depends on heuristic tests",
443 | + "Whether the transaction hex is a serialized witness transaction.\n"
444 | + "This boolean should reflect whether the transaction has inputs, if known by the caller.\n"
445 | + "If it is not set, heuristic tests will be used in decoding."},
In commit "rpc: Document iswitness flag" (faee652f971e5422c4df1dff3f36c9089aaf587f)
Maybe drop this sentence and just use the same "If not present, If true..., If false..." text from converttopsbt. I think the converttopsbt explanation is a little clearer, and that it's better to keep the text consistent in all three methods so readers don't have to parse text closely to see where differences are.
Sipa's explanation and advice from the bug also seem very helpful and so might be worth incorporating too:
Force pushed to use the same docstring everywhere