message: DecodeHexTx: Break out transaction decoding logic into own function
diff: @@ -117,16 +117,10 @@ static bool CheckTxScriptsSanity(const CMutableTransaction& tx)
  return true;
  }
  -bool DecodeHexTx(CMutableTransaction& tx, const std::string& hex_tx, bool try_no_witness, bool try_witness)
  +static bool DecodeTx(CMutableTransaction& tx, const std::vector<unsigned char>& tx_data, bool try_no_witness, bool try_witness)
  {
  - if (!IsHex(hex_tx)) {
  - return false;
  - }
  -
  - std::vector<unsigned char> txData(ParseHex(hex_tx));
  -
  if (try_witness) {
  - CDataStream ssData(txData, SER_NETWORK, PROTOCOL_VERSION);
  + CDataStream ssData(tx_data, SER_NETWORK, PROTOCOL_VERSION);
  try {
  ssData >> tx;
  // If transaction looks sane, we don't try other mode even if requested
  @@ -139,7 +133,7 @@ bool DecodeHexTx(CMutableTransaction& tx, const std::string& hex_tx, bool try_no
  }
  if (try_no_witness) {
  - CDataStream ssData(txData, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS);
  + CDataStream ssData(tx_data, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS);
  try {
  ssData >> tx;
  if (ssData.empty()) {
  @@ -153,6 +147,16 @@ bool DecodeHexTx(CMutableTransaction& tx, const std::string& hex_tx, bool try_no
  return false;
  }
  +bool DecodeHexTx(CMutableTransaction& tx, const std::string& hex_tx, bool try_no_witness, bool try_witness)
  +{
  + if (!IsHex(hex_tx)) {
  + return false;
  + }
  +
  + std::vector<unsigned char> txData(ParseHex(hex_tx));
  + return DecodeTx(tx, txData, try_no_witness, try_witness);
  +}
  +
  bool DecodeHexBlockHeader(CBlockHeader& header, const std::string& hex_header)
  {
  if (!IsHex(hex_header)) return false;
  