message: Update encoding/decoding of witnessunknown/stealth
diff: @@ -65,7 +65,7 @@ public:
  std::vector<unsigned char> data = {0};
  data.reserve(33);
  ConvertBits<8, 5, true>([&](unsigned char c) { data.push_back(c); }, id.begin(), id.end());
  - return bech32::Encode(m_params.Bech32HRPStealth(), data);
  + return bech32::Encode(m_params.Bech32HRPBase(), data);
  }
  std::string operator()(const WitnessV0ScriptHash& id) const
  @@ -73,7 +73,7 @@ public:
  std::vector<unsigned char> data = {0};
  data.reserve(53);
  ConvertBits<8, 5, true>([&](unsigned char c) { data.push_back(c); }, id.begin(), id.end());
  - return bech32::Encode(m_params.Bech32HRPStealth(), data);
  + return bech32::Encode(m_params.Bech32HRPBase(), data);
  }
  std::string operator()(const WitnessUnknown& id) const
  @@ -129,9 +129,14 @@ CTxDestination DecodeDestination(const std::string& str, const CChainParams& par
  if (bech.second.size() > 0 && (bech.first == params.Bech32HRPStealth() || bech.first == params.Bech32HRPBase())) {
  // Bech32 decoding
  int version = bech.second[0]; // The first 5 bit symbol is the witness version (0-16)
  + bool fIsStealth = bech.first == params.Bech32HRPStealth();
  // The rest of the symbols are converted witness program bytes.
  + if (fIsStealth)
  data.reserve(((bech.second.size()) * 5) / 8);
  - if (ConvertBits<5, 8, false>([&](unsigned char c) { data.push_back(c); }, bech.second.begin(), bech.second.end())) {
  + else
  + data.reserve(((bech.second.size() - 1) * 5) / 8);
  +
  + if (ConvertBits<5, 8, false>([&](unsigned char c) { data.push_back(c); }, bech.second.begin() + (fIsStealth ? 0 : 1), bech.second.end())) {
  if (version == 0) {
  {
  WitnessV0KeyHash keyid;
  