diff options
author | fanquake <fanquake@gmail.com> | 2021-08-04 13:38:36 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2021-08-04 19:20:32 +0800 |
commit | 32fa49a18497a9b8c72e36a72ae96e7b23930223 (patch) | |
tree | 5cb3394183c123b5e0db66a7694c6afa99a8565e /src/rpc/misc.cpp | |
parent | 3308c61091b6b7cb22569f3abadea6d001295c90 (diff) | |
download | bitcoin-32fa49a18497a9b8c72e36a72ae96e7b23930223.tar.xz |
make ParseOutputType return a std::optional<OutputType>
Diffstat (limited to 'src/rpc/misc.cpp')
-rw-r--r-- | src/rpc/misc.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 5178ce60e8..1a94abf6d3 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -24,6 +24,7 @@ #include <util/strencodings.h> #include <util/system.h> +#include <optional> #include <stdint.h> #include <tuple> #ifdef HAVE_MALLOC_INFO @@ -128,12 +129,13 @@ static RPCHelpMan createmultisig() // Get the output type OutputType output_type = OutputType::LEGACY; if (!request.params[2].isNull()) { - if (!ParseOutputType(request.params[2].get_str(), output_type)) { + std::optional<OutputType> parsed = ParseOutputType(request.params[2].get_str()); + if (!parsed) { throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Unknown address type '%s'", request.params[2].get_str())); - } - if (output_type == OutputType::BECH32M) { + } else if (parsed.value() == OutputType::BECH32M) { throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "createmultisig cannot create bech32m multisig addresses"); } + output_type = parsed.value(); } // Construct using pay-to-script-hash: |