mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-13 14:14:00 +01:00
refactor: add UNKNOWN OutputType
add to enum, array and handle UNKNOWN in various case statements
This commit is contained in:
@@ -20,6 +20,7 @@ static const std::string OUTPUT_TYPE_STRING_LEGACY = "legacy";
|
||||
static const std::string OUTPUT_TYPE_STRING_P2SH_SEGWIT = "p2sh-segwit";
|
||||
static const std::string OUTPUT_TYPE_STRING_BECH32 = "bech32";
|
||||
static const std::string OUTPUT_TYPE_STRING_BECH32M = "bech32m";
|
||||
static const std::string OUTPUT_TYPE_STRING_UNKNOWN = "unknown";
|
||||
|
||||
std::optional<OutputType> ParseOutputType(const std::string& type)
|
||||
{
|
||||
@@ -31,6 +32,8 @@ std::optional<OutputType> ParseOutputType(const std::string& type)
|
||||
return OutputType::BECH32;
|
||||
} else if (type == OUTPUT_TYPE_STRING_BECH32M) {
|
||||
return OutputType::BECH32M;
|
||||
} else if (type == OUTPUT_TYPE_STRING_UNKNOWN) {
|
||||
return OutputType::UNKNOWN;
|
||||
}
|
||||
return std::nullopt;
|
||||
}
|
||||
@@ -42,6 +45,7 @@ const std::string& FormatOutputType(OutputType type)
|
||||
case OutputType::P2SH_SEGWIT: return OUTPUT_TYPE_STRING_P2SH_SEGWIT;
|
||||
case OutputType::BECH32: return OUTPUT_TYPE_STRING_BECH32;
|
||||
case OutputType::BECH32M: return OUTPUT_TYPE_STRING_BECH32M;
|
||||
case OutputType::UNKNOWN: return OUTPUT_TYPE_STRING_UNKNOWN;
|
||||
} // no default case, so the compiler can warn about missing cases
|
||||
assert(false);
|
||||
}
|
||||
@@ -61,7 +65,8 @@ CTxDestination GetDestinationForKey(const CPubKey& key, OutputType type)
|
||||
return witdest;
|
||||
}
|
||||
}
|
||||
case OutputType::BECH32M: {} // This function should never be used with BECH32M, so let it assert
|
||||
case OutputType::BECH32M:
|
||||
case OutputType::UNKNOWN: {} // This function should never be used with BECH32M or UNKNOWN, so let it assert
|
||||
} // no default case, so the compiler can warn about missing cases
|
||||
assert(false);
|
||||
}
|
||||
@@ -101,7 +106,8 @@ CTxDestination AddAndGetDestinationForScript(FillableSigningProvider& keystore,
|
||||
return ScriptHash(witprog);
|
||||
}
|
||||
}
|
||||
case OutputType::BECH32M: {} // This function should not be used for BECH32M, so let it assert
|
||||
case OutputType::BECH32M:
|
||||
case OutputType::UNKNOWN: {} // This function should not be used for BECH32M or UNKNOWN, so let it assert
|
||||
} // no default case, so the compiler can warn about missing cases
|
||||
assert(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user