forked from BitcoinUnlimited/BitcoinUnlimited
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4898afc
commit b126b10
Showing
8 changed files
with
90 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
// Copyright (c) 2009-2010 Satoshi Nakamoto | ||
// Copyright (c) 2009-2014 The Bitcoin developers | ||
// Distributed under the MIT software license, see the accompanying | ||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
|
||
#ifndef BITCOIN_POLICY_H | ||
#define BITCOIN_POLICY_H | ||
|
||
#include "consensus/consensus.h" | ||
#include "script/interpreter.h" | ||
#include "script/standard.h" | ||
|
||
#include <string> | ||
|
||
class CCoinsViewCache; | ||
|
||
/** Default for -blockmaxsize and -blockminsize, which control the range of sizes the mining code will create **/ | ||
static const unsigned int DEFAULT_BLOCK_MAX_SIZE = 750000; | ||
static const unsigned int DEFAULT_BLOCK_MIN_SIZE = 0; | ||
/** Default for -blockprioritysize, maximum space for zero/low-fee transactions **/ | ||
static const unsigned int DEFAULT_BLOCK_PRIORITY_SIZE = 50000; | ||
/** The maximum size for transactions we're willing to relay/mine */ | ||
static const unsigned int MAX_STANDARD_TX_SIZE = 100000; | ||
/** Maximum number of signature check operations in an IsStandard() P2SH script */ | ||
static const unsigned int MAX_P2SH_SIGOPS = 15; | ||
/** The maximum number of sigops we're willing to relay/mine in a single tx */ | ||
static const unsigned int MAX_STANDARD_TX_SIGOPS = 100*MAX_BLOCK_SIGOPS/5; | ||
/** | ||
* Standard script verification flags that standard transactions will comply | ||
* with. However scripts violating these flags may still be present in valid | ||
* blocks and we must accept those blocks. | ||
*/ | ||
static const unsigned int STANDARD_SCRIPT_VERIFY_FLAGS = MANDATORY_SCRIPT_VERIFY_FLAGS | | ||
SCRIPT_VERIFY_DERSIG | | ||
SCRIPT_VERIFY_STRICTENC | | ||
SCRIPT_VERIFY_MINIMALDATA | | ||
SCRIPT_VERIFY_NULLDUMMY | | ||
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS | | ||
SCRIPT_VERIFY_CLEANSTACK | | ||
SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY | | ||
SCRIPT_VERIFY_LOW_S; | ||
|
||
/** For convenience, standard but not mandatory verify flags. */ | ||
static const unsigned int STANDARD_NOT_MANDATORY_VERIFY_FLAGS = STANDARD_SCRIPT_VERIFY_FLAGS & ~MANDATORY_SCRIPT_VERIFY_FLAGS; | ||
|
||
bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType); | ||
/** | ||
* Check for standard transaction types | ||
* @return True if all outputs (scriptPubKeys) use only standard transaction forms | ||
*/ | ||
bool IsStandardTx(const CTransaction& tx, std::string& reason); | ||
/** | ||
* Check for standard transaction types | ||
* @param[in] mapInputs Map of previous transactions that have outputs we're spending | ||
* @return True if all inputs (scriptSigs) use only standard transaction forms | ||
*/ | ||
bool AreInputsStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs); | ||
|
||
#endif // BITCOIN_POLICY_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters