#ifndef H_BITCOIN_SCRIPT
#define H_BITCOIN_SCRIPT
+#include "keystore.h"
+#include "bignum.h"
+#include "util.h"
+
#include <string>
#include <vector>
-#include <boost/foreach.hpp>
-
-#include "keystore.h"
-#include "bignum.h"
-#include "base58.h"
typedef std::vector<uint8_t> valtype;
inline std::string StackString(const std::vector<std::vector<unsigned char> >& vStack)
{
std::string str;
- BOOST_FOREACH(const std::vector<unsigned char>& vch, vStack)
+ for (const std::vector<unsigned char>& vch : vStack)
{
if (!str.empty())
str += " ";
CScript(const uint8_t* pbegin, const uint8_t* pend) : std::vector<uint8_t>(pbegin, pend) { }
#endif
+ CScript& operator=(const CScript&) = default;
+
CScript& operator+=(const CScript& b)
{
insert(end(), b.begin(), b.end());
CScript& operator<<(const CPubKey& key)
{
- std::vector<uint8_t> vchKey = key.Raw();
+ std::vector<uint8_t> vchKey(key.begin(), key.end());
return (*this) << vchKey;
}
void SetDestination(const CTxDestination& address);
void SetAddress(const CBitcoinAddress& dest);
- void SetMultisig(int nRequired, const std::vector<CKey>& keys);
+ void SetMultisig(int nRequired, const std::vector<CPubKey>& keys);
void PrintHex() const
printf("%s\n", ToString().c_str());
}
- CScriptID GetID() const
- {
- return CScriptID(Hash160(*this));
- }
+ CScriptID GetID() const;
};
bool IsCanonicalPubKey(const std::vector<unsigned char> &vchPubKey, unsigned int flags);