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); }