Send RPC command to bitcoin node to recreate multisig wallet
This commit is contained in:
parent
f0a8e8e376
commit
0b491510c4
1 changed files with 8 additions and 16 deletions
|
|
@ -256,38 +256,30 @@ void peerplays_sidechain_plugin_impl::son_event_processing_loop()
|
||||||
|
|
||||||
void peerplays_sidechain_plugin_impl::recreate_primary_wallet()
|
void peerplays_sidechain_plugin_impl::recreate_primary_wallet()
|
||||||
{
|
{
|
||||||
ilog(__FUNCTION__);
|
|
||||||
chain::database& d = plugin.database();
|
chain::database& d = plugin.database();
|
||||||
|
|
||||||
ilog(__FUNCTION__);
|
|
||||||
const auto& idx_swi = d.get_index_type<son_wallet_index>().indices().get<by_id>();
|
const auto& idx_swi = d.get_index_type<son_wallet_index>().indices().get<by_id>();
|
||||||
auto obj = idx_swi.rbegin();
|
auto obj = idx_swi.rbegin();
|
||||||
if (obj != idx_swi.rend()) {
|
if (obj != idx_swi.rend()) {
|
||||||
|
|
||||||
ilog(__FUNCTION__);
|
|
||||||
if ((obj->addresses.find(sidechain_type::bitcoin) == obj->addresses.end()) ||
|
if ((obj->addresses.find(sidechain_type::bitcoin) == obj->addresses.end()) ||
|
||||||
(obj->addresses.at(sidechain_type::bitcoin).empty())) {
|
(obj->addresses.at(sidechain_type::bitcoin).empty())) {
|
||||||
ilog(__FUNCTION__);
|
|
||||||
auto active_sons = d.get_global_properties().active_sons;
|
auto active_sons = d.get_global_properties().active_sons;
|
||||||
vector<string> son_pubkeys_bitcoin;
|
vector<string> son_pubkeys_bitcoin;
|
||||||
for ( const son_info& si : active_sons ) {
|
for ( const son_info& si : active_sons ) {
|
||||||
son_pubkeys_bitcoin.push_back(si.sidechain_public_keys.at(sidechain_type::bitcoin));
|
son_pubkeys_bitcoin.push_back(si.sidechain_public_keys.at(sidechain_type::bitcoin));
|
||||||
}
|
}
|
||||||
ilog(__FUNCTION__);
|
|
||||||
string reply_str = net_manager->recreate_primary_wallet(sidechain_type::bitcoin, son_pubkeys_bitcoin);
|
string reply_str = net_manager->recreate_primary_wallet(sidechain_type::bitcoin, son_pubkeys_bitcoin);
|
||||||
ilog(reply_str);
|
|
||||||
|
|
||||||
std::stringstream ss(reply_str);
|
std::stringstream ss(reply_str);
|
||||||
boost::property_tree::ptree json;
|
boost::property_tree::ptree pt;
|
||||||
boost::property_tree::read_json( ss, json );
|
boost::property_tree::read_json( ss, pt );
|
||||||
|
if( pt.count( "error" ) && pt.get_child( "error" ).empty() ) {
|
||||||
if (json.count( "result" )) {
|
d.modify(*obj, [&, &obj, &pt](son_wallet_object &swo) {
|
||||||
//if (json.get_child( "result" ).count( "address" )) {
|
std::stringstream ss;
|
||||||
d.modify(*obj, [&, &obj, &json](son_wallet_object &swo) {
|
boost::property_tree::json_parser::write_json(ss, pt.get_child("result"));
|
||||||
ilog(__FUNCTION__);
|
swo.addresses[sidechain_type::bitcoin] = ss.str();
|
||||||
swo.addresses[sidechain_type::bitcoin] = json.get_child("result").get_value<std::string>();;
|
});
|
||||||
});
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue