From 2528c349d483839be2180b75e2bb5bd1a79f6851 Mon Sep 17 00:00:00 2001 From: Srdjan Obucina Date: Mon, 16 Mar 2020 23:47:25 +0100 Subject: [PATCH] Fix public key processing, its Hex not Base58 encoded --- .../plugins/peerplays_sidechain/bitcoin_utils.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/plugins/peerplays_sidechain/bitcoin_utils.cpp b/libraries/plugins/peerplays_sidechain/bitcoin_utils.cpp index 73ca615f..53441820 100644 --- a/libraries/plugins/peerplays_sidechain/bitcoin_utils.cpp +++ b/libraries/plugins/peerplays_sidechain/bitcoin_utils.cpp @@ -761,8 +761,14 @@ bytes add_signatures_to_unsigned_tx(const bytes &unsigned_tx, const std::vector< std::string get_weighted_multisig_address(const std::vector> &public_keys) { std::vector> key_data; - for (auto p : public_keys) - key_data.push_back(std::make_pair(fc::ecc::public_key::from_base58(p.first), p.second)); + for (auto p : public_keys) { + fc::ecc::public_key_data kd; + for (uint32_t i = 0; i < p.first.length(); i += 2) { + std::string byte_str = p.first.substr(i, 2); + kd.data[i / 2] = (char)std::strtol(byte_str.c_str(), NULL, 16); + } + key_data.push_back(std::make_pair(fc::ecc::public_key(kd), p.second)); + } bytes redeem_script = generate_redeem_script(key_data); return p2wsh_address_from_redeem_script(redeem_script); }