aboutsummaryrefslogtreecommitdiff
path: root/src/script/standard.h
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2014-09-11 19:15:29 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2014-09-16 19:14:32 +0200
commit0be990ba34110184c8a5a2c04094311dab5cd84c (patch)
tree2eb24931c396ae0dc0c57fee42f345c581bd58c6 /src/script/standard.h
parentab3834baae2e48708de2be74217eaf9da9081fc3 (diff)
Move CTxDestination from script/script to script/standard
Diffstat (limited to 'src/script/standard.h')
-rw-r--r--src/script/standard.h17
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