diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-09-17 12:08:53 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-09-17 13:04:54 +0200 |
commit | 69dd8c919aa3a1b88af34265f828fe0a58a55014 (patch) | |
tree | 672551d1afcb67ad45a24450ac753cfbd31d2e1e /src/script/standard.h | |
parent | 651a1fcf813983e8e5f6f180e062a5111e900dad (diff) | |
parent | 0be990ba34110184c8a5a2c04094311dab5cd84c (diff) |
Merge pull request #4899
0be990b Move CTxDestination from script/script to script/standard (Pieter Wuille)
Diffstat (limited to 'src/script/standard.h')
-rw-r--r-- | src/script/standard.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/script/standard.h b/src/script/standard.h index 6c17a9394e..ead79b82a2 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -45,6 +45,20 @@ enum txnouttype TX_NULL_DATA, }; +class CNoDestination { +public: + friend bool operator==(const CNoDestination &a, const CNoDestination &b) { return true; } + friend bool operator<(const CNoDestination &a, const CNoDestination &b) { return true; } +}; + +/** A txout script template with a specific destination. It is either: + * * CNoDestination: no destination set + * * CKeyID: TX_PUBKEYHASH destination + * * CScriptID: TX_SCRIPTHASH destination + * A CTxDestination is the internal data type encoded in a CBitcoinAddress + */ +typedef boost::variant<CNoDestination, CKeyID, CScriptID> CTxDestination; + const char* GetTxnOutputType(txnouttype t); bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, std::vector<std::vector<unsigned char> >& vSolutionsRet); @@ -53,4 +67,7 @@ bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType); bool ExtractDestination(const CScript& scriptPubKey, CTxDestination& addressRet); bool ExtractDestinations(const CScript& scriptPubKey, txnouttype& typeRet, std::vector<CTxDestination>& addressRet, int& nRequiredRet); +CScript GetScriptForDestination(const CTxDestination& dest); +CScript GetScriptForMultisig(int nRequired, const std::vector<CPubKey>& keys); + #endif // H_BITCOIN_SCRIPT_STANDARD |