[rpc] Add address type option to addmultisigaddress
This commit is contained in:
parent
95941396ff
commit
886a92f25f
1 changed files with 14 additions and 6 deletions
|
@ -1169,9 +1169,8 @@ UniValue addmultisigaddress(const JSONRPCRequest& request)
|
|||
return NullUniValue;
|
||||
}
|
||||
|
||||
if (request.fHelp || request.params.size() < 2 || request.params.size() > 3)
|
||||
{
|
||||
std::string msg = "addmultisigaddress nrequired [\"key\",...] ( \"account\" )\n"
|
||||
if (request.fHelp || request.params.size() < 2 || request.params.size() > 4) {
|
||||
std::string msg = "addmultisigaddress nrequired [\"key\",...] ( \"account\" \"address_type\" )\n"
|
||||
"\nAdd a nrequired-to-sign multisignature address to the wallet. Requires a new wallet backup.\n"
|
||||
"Each key is a Bitcoin address or hex-encoded public key.\n"
|
||||
"This functionality is only intended for use with non-watchonly addresses.\n"
|
||||
|
@ -1186,6 +1185,7 @@ UniValue addmultisigaddress(const JSONRPCRequest& request)
|
|||
" ...,\n"
|
||||
" ]\n"
|
||||
"3. \"account\" (string, optional) DEPRECATED. An account to assign the addresses to.\n"
|
||||
"4. \"address_type\" (string, optional) The address type to use. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\". Default is set by -addresstype.\n"
|
||||
|
||||
"\nResult:\n"
|
||||
"{\n"
|
||||
|
@ -1224,10 +1224,18 @@ UniValue addmultisigaddress(const JSONRPCRequest& request)
|
|||
}
|
||||
}
|
||||
|
||||
OutputType output_type = g_address_type;
|
||||
if (!request.params[3].isNull()) {
|
||||
output_type = ParseOutputType(request.params[3].get_str(), output_type);
|
||||
if (output_type == OUTPUT_TYPE_NONE) {
|
||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Unknown address type '%s'", request.params[3].get_str()));
|
||||
}
|
||||
}
|
||||
|
||||
// Construct using pay-to-script-hash:
|
||||
CScript inner = CreateMultisigRedeemscript(required, pubkeys);
|
||||
pwallet->AddCScript(inner);
|
||||
CTxDestination dest = pwallet->AddAndGetDestinationForScript(inner, g_address_type);
|
||||
CTxDestination dest = pwallet->AddAndGetDestinationForScript(inner, output_type);
|
||||
pwallet->SetAddressBook(dest, strAccount, "send");
|
||||
|
||||
// Return old style interface
|
||||
|
@ -3519,7 +3527,7 @@ static const CRPCCommand commands[] =
|
|||
{ "hidden", "resendwallettransactions", &resendwallettransactions, {} },
|
||||
{ "wallet", "abandontransaction", &abandontransaction, {"txid"} },
|
||||
{ "wallet", "abortrescan", &abortrescan, {} },
|
||||
{ "wallet", "addmultisigaddress", &addmultisigaddress, {"nrequired","keys","account"} },
|
||||
{ "wallet", "addmultisigaddress", &addmultisigaddress, {"nrequired","keys","account","address_type"} },
|
||||
{ "hidden", "addwitnessaddress", &addwitnessaddress, {"address","p2sh"} },
|
||||
{ "wallet", "backupwallet", &backupwallet, {"destination"} },
|
||||
{ "wallet", "bumpfee", &bumpfee, {"txid", "options"} },
|
||||
|
|
Loading…
Reference in a new issue