remove witnessEnabled standardness logic

This commit is contained in:
Gregory Sanders 2018-03-13 12:20:07 -04:00
parent b8ba4ebee7
commit fa34426ab1
3 changed files with 6 additions and 9 deletions

View file

@ -33,7 +33,7 @@ CAsset policyAsset;
* DUP CHECKSIG DROP ... repeated 100 times... OP_1 * DUP CHECKSIG DROP ... repeated 100 times... OP_1
*/ */
bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType, const bool witnessEnabled) bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType)
{ {
std::vector<std::vector<unsigned char> > vSolutions; std::vector<std::vector<unsigned char> > vSolutions;
if (!Solver(scriptPubKey, whichType, vSolutions)) if (!Solver(scriptPubKey, whichType, vSolutions))
@ -54,13 +54,10 @@ bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType, const bool w
else if (whichType == TX_TRUE) else if (whichType == TX_TRUE)
return false; return false;
else if (!witnessEnabled && (whichType == TX_WITNESS_V0_KEYHASH || whichType == TX_WITNESS_V0_SCRIPTHASH))
return false;
return whichType != TX_NONSTANDARD; return whichType != TX_NONSTANDARD;
} }
bool IsStandardTx(const CTransaction& tx, std::string& reason, const bool witnessEnabled) bool IsStandardTx(const CTransaction& tx, std::string& reason)
{ {
if (tx.nVersion > CTransaction::MAX_STANDARD_VERSION || tx.nVersion < 1) { if (tx.nVersion > CTransaction::MAX_STANDARD_VERSION || tx.nVersion < 1) {
reason = "version"; reason = "version";
@ -87,7 +84,7 @@ bool IsStandardTx(const CTransaction& tx, std::string& reason, const bool witnes
txnouttype whichType; txnouttype whichType;
BOOST_FOREACH(const CTxOut& txout, tx.vout) { BOOST_FOREACH(const CTxOut& txout, tx.vout) {
if (!::IsStandard(txout.scriptPubKey, whichType, witnessEnabled) && !txout.IsFee()) { if (!::IsStandard(txout.scriptPubKey, whichType) && !txout.IsFee()) {
reason = "scriptpubkey"; reason = "scriptpubkey";
return false; return false;
} }

View file

@ -77,12 +77,12 @@ static const unsigned int STANDARD_NOT_MANDATORY_VERIFY_FLAGS = STANDARD_SCRIPT_
static const unsigned int STANDARD_LOCKTIME_VERIFY_FLAGS = LOCKTIME_VERIFY_SEQUENCE | static const unsigned int STANDARD_LOCKTIME_VERIFY_FLAGS = LOCKTIME_VERIFY_SEQUENCE |
LOCKTIME_MEDIAN_TIME_PAST; LOCKTIME_MEDIAN_TIME_PAST;
bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType, const bool witnessEnabled = false); bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType);
/** /**
* Check for standard transaction types * Check for standard transaction types
* @return True if all outputs (scriptPubKeys) use only standard transaction forms * @return True if all outputs (scriptPubKeys) use only standard transaction forms
*/ */
bool IsStandardTx(const CTransaction& tx, std::string& reason, const bool witnessEnabled = false); bool IsStandardTx(const CTransaction& tx, std::string& reason);
/** /**
* Check for standard transaction types * Check for standard transaction types
* @param[in] mapInputs Map of previous transactions that have outputs we're spending * @param[in] mapInputs Map of previous transactions that have outputs we're spending

View file

@ -1075,7 +1075,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C
// Rather not work on nonstandard transactions (unless -testnet/-regtest) // Rather not work on nonstandard transactions (unless -testnet/-regtest)
std::string reason; std::string reason;
if (fRequireStandard && !IsStandardTx(tx, reason, witnessEnabled)) if (fRequireStandard && !IsStandardTx(tx, reason))
return state.DoS(0, false, REJECT_NONSTANDARD, reason); return state.DoS(0, false, REJECT_NONSTANDARD, reason);
// Only accept nLockTime-using transactions that can be mined in the next // Only accept nLockTime-using transactions that can be mined in the next