Use block times for 'hard' OP_EVAL switchover, and refactored EvalScript

so it takes a flag for how to interpret OP_EVAL.
Also increased IsStandard size of scriptSigs to 500 bytes, so
a 3-of-3 multisig transaction IsStandard.
This commit is contained in:
Gavin Andresen
2011-11-08 13:20:29 -05:00
parent a0871afb2b
commit 2a45a494b0
14 changed files with 178 additions and 178 deletions

View File

@@ -4,8 +4,9 @@
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#include "headers.h"
#include "db.h"
#include "crypter.h"
#include "db.h"
#include "script.h"
std::vector<unsigned char> CKeyStore::GenerateNewKey()
{
@@ -33,10 +34,10 @@ bool CBasicKeyStore::AddKey(const CKey& key)
return true;
}
bool CBasicKeyStore::AddCScript(const uint160 &hash, const std::vector<unsigned char>& data)
bool CBasicKeyStore::AddCScript(const uint160 &hash, const CScript& redeemScript)
{
CRITICAL_BLOCK(cs_KeyStore)
mapData[hash] = data;
mapScripts[hash] = redeemScript;
return true;
}
@@ -44,19 +45,19 @@ bool CBasicKeyStore::HaveCScript(const uint160& hash) const
{
bool result;
CRITICAL_BLOCK(cs_KeyStore)
result = (mapData.count(hash) > 0);
result = (mapScripts.count(hash) > 0);
return result;
}
bool CBasicKeyStore::GetCScript(const uint160 &hash, std::vector<unsigned char>& dataOut) const
bool CBasicKeyStore::GetCScript(const uint160 &hash, CScript& redeemScriptOut) const
{
CRITICAL_BLOCK(cs_KeyStore)
{
DataMap::const_iterator mi = mapData.find(hash);
if (mi != mapData.end())
ScriptMap::const_iterator mi = mapScripts.find(hash);
if (mi != mapScripts.end())
{
dataOut = (*mi).second;
redeemScriptOut = (*mi).second;
return true;
}
}