|
|
@ -469,7 +469,7 @@ RPCHelpMan importpubkey()
|
|
|
|
if (!IsHex(request.params[0].get_str()))
|
|
|
|
if (!IsHex(request.params[0].get_str()))
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey must be a hex string");
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey must be a hex string");
|
|
|
|
std::vector<unsigned char> data(ParseHex(request.params[0].get_str()));
|
|
|
|
std::vector<unsigned char> data(ParseHex(request.params[0].get_str()));
|
|
|
|
CPubKey pubKey(data.begin(), data.end());
|
|
|
|
CPubKey pubKey(data);
|
|
|
|
if (!pubKey.IsFullyValid())
|
|
|
|
if (!pubKey.IsFullyValid())
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey is not a valid public key");
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey is not a valid public key");
|
|
|
|
|
|
|
|
|
|
|
@ -871,7 +871,7 @@ static std::string RecurseImportData(const CScript& script, ImportData& import_d
|
|
|
|
|
|
|
|
|
|
|
|
switch (script_type) {
|
|
|
|
switch (script_type) {
|
|
|
|
case TxoutType::PUBKEY: {
|
|
|
|
case TxoutType::PUBKEY: {
|
|
|
|
CPubKey pubkey(solverdata[0].begin(), solverdata[0].end());
|
|
|
|
CPubKey pubkey(solverdata[0]);
|
|
|
|
import_data.used_keys.emplace(pubkey.GetID(), false);
|
|
|
|
import_data.used_keys.emplace(pubkey.GetID(), false);
|
|
|
|
return "";
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -893,7 +893,7 @@ static std::string RecurseImportData(const CScript& script, ImportData& import_d
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case TxoutType::MULTISIG: {
|
|
|
|
case TxoutType::MULTISIG: {
|
|
|
|
for (size_t i = 1; i + 1< solverdata.size(); ++i) {
|
|
|
|
for (size_t i = 1; i + 1< solverdata.size(); ++i) {
|
|
|
|
CPubKey pubkey(solverdata[i].begin(), solverdata[i].end());
|
|
|
|
CPubKey pubkey(solverdata[i]);
|
|
|
|
import_data.used_keys.emplace(pubkey.GetID(), false);
|
|
|
|
import_data.used_keys.emplace(pubkey.GetID(), false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return "";
|
|
|
|
return "";
|
|
|
@ -997,7 +997,7 @@ static UniValue ProcessImportLegacy(ImportData& import_data, std::map<CKeyID, CP
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey \"" + str + "\" must be a hex string");
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey \"" + str + "\" must be a hex string");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
auto parsed_pubkey = ParseHex(str);
|
|
|
|
auto parsed_pubkey = ParseHex(str);
|
|
|
|
CPubKey pubkey(parsed_pubkey.begin(), parsed_pubkey.end());
|
|
|
|
CPubKey pubkey(parsed_pubkey);
|
|
|
|
if (!pubkey.IsFullyValid()) {
|
|
|
|
if (!pubkey.IsFullyValid()) {
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey \"" + str + "\" is not a valid public key");
|
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey \"" + str + "\" is not a valid public key");
|
|
|
|
}
|
|
|
|
}
|
|
|
|