Bitcoin Core  31.0.0
P2P Digital Currency
outputtype.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-present The Bitcoin Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 
6 #ifndef BITCOIN_OUTPUTTYPE_H
7 #define BITCOIN_OUTPUTTYPE_H
8 
9 #include <addresstype.h>
10 #include <script/signingprovider.h>
11 
12 #include <array>
13 #include <optional>
14 #include <string>
15 #include <string_view>
16 #include <vector>
17 
18 enum class OutputType {
19  LEGACY,
21  BECH32,
22  BECH32M,
23  UNKNOWN,
24 };
25 
26 static constexpr auto OUTPUT_TYPES = std::array{
31 };
32 
33 std::optional<OutputType> ParseOutputType(std::string_view str);
34 const std::string& FormatOutputType(OutputType type);
35 std::string FormatAllOutputTypes();
36 
43 
45 std::optional<OutputType> OutputTypeFromDestination(const CTxDestination& dest);
46 
47 #endif // BITCOIN_OUTPUTTYPE_H
std::string FormatAllOutputTypes()
Definition: outputtype.cpp:49
std::optional< OutputType > ParseOutputType(std::string_view str)
Definition: outputtype.cpp:23
OutputType
Definition: outputtype.h:18
static constexpr auto OUTPUT_TYPES
Definition: outputtype.h:26
CTxDestination AddAndGetDestinationForScript(FlatSigningProvider &keystore, const CScript &script, OutputType)
Get a destination of the requested type (if possible) to the specified script.
Definition: outputtype.cpp:54
const std::string & FormatOutputType(OutputType type)
Definition: outputtype.cpp:37
Serialized script, used inside transaction inputs and outputs.
Definition: script.h:404
std::variant< CNoDestination, PubKeyDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessV1Taproot, PayToAnchor, WitnessUnknown > CTxDestination
A txout script categorized into standard templates.
Definition: addresstype.h:143
std::optional< OutputType > OutputTypeFromDestination(const CTxDestination &dest)
Get the OutputType for a CTxDestination.
Definition: outputtype.cpp:80