diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp index b0c9d7d4..2ffd4c19 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp @@ -1355,16 +1355,13 @@ void sidechain_net_handler_bitcoin::on_changed_objects(const vector().indices().get(); auto swo = swi.find(id); if (swo != swi.end()) { - std::stringstream pw_ss(swo->addresses.at(sidechain)); - boost::property_tree::ptree pw_pt; - boost::property_tree::read_json(pw_ss, pw_pt); - - std::string pw_redeem_script = ""; - - if (pw_pt.count("redeemScript")) { - pw_redeem_script = pw_pt.get("redeemScript"); - bitcoin_client->importaddress(pw_redeem_script); + auto sons = swo.sons; + vector son_pubkeys_bitcoin; + for (const son_info &si : active_sons) { + son_pubkeys_bitcoin.push_back(si.sidechain_public_keys.at(sidechain_type::bitcoin)); } + uint32_t nrequired = son_pubkeys_bitcoin.size() * 2 / 3 + 1; + bitcoin_client->addmultisigaddress(nrequired, son_pubkeys_bitcoin); } } }