Add number of required signatures parameter for addmultisigaddress

This commit is contained in:
Srdjan Obucina 2020-03-21 03:25:32 +01:00
parent 0a63eed265
commit 75b1324e5a
2 changed files with 5 additions and 4 deletions

View file

@ -21,7 +21,7 @@ class bitcoin_rpc_client {
public:
bitcoin_rpc_client(std::string _ip, uint32_t _rpc, std::string _user, std::string _password, std::string _wallet, std::string _wallet_password);
std::string addmultisigaddress(const std::vector<std::string> public_keys);
std::string addmultisigaddress(const uint32_t nrequired, const std::vector<std::string> public_keys);
std::string createpsbt(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs);
std::string createrawtransaction(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs);
std::string createwallet(const std::string &wallet_name);

View file

@ -31,10 +31,10 @@ bitcoin_rpc_client::bitcoin_rpc_client(std::string _ip, uint32_t _rpc, std::stri
authorization.val = "Basic " + fc::base64_encode(user + ":" + password);
}
std::string bitcoin_rpc_client::addmultisigaddress(const std::vector<std::string> public_keys) {
std::string bitcoin_rpc_client::addmultisigaddress(const uint32_t nrequired, const std::vector<std::string> public_keys) {
std::string body = std::string("{\"jsonrpc\": \"1.0\", \"id\":\"addmultisigaddress\", "
"\"method\": \"addmultisigaddress\", \"params\": [");
std::string params = "2, [";
std::string params = std::to_string(nrequired) + ", [";
std::string pubkeys = "";
for (std::string pubkey : public_keys) {
if (!pubkeys.empty()) {
@ -786,7 +786,8 @@ void sidechain_net_handler_bitcoin::recreate_primary_wallet() {
for (const son_info &si : active_sons) {
son_pubkeys_bitcoin.push_back(si.sidechain_public_keys.at(sidechain_type::bitcoin));
}
string reply_str = bitcoin_client->addmultisigaddress(son_pubkeys_bitcoin);
uint32_t nrequired = son_pubkeys_bitcoin.size() * 2 / 3 + 1;
string reply_str = bitcoin_client->addmultisigaddress(nrequired, son_pubkeys_bitcoin);
std::stringstream active_pw_ss(reply_str);
boost::property_tree::ptree active_pw_pt;