Fabcoin Core  0.16.2
P2P Digital Currency
Classes | Typedefs | Enumerations | Functions
interpreter.h File Reference
#include "script_error.h"
#include "primitives/transaction.h"
#include <vector>
#include <stdint.h>
#include <string>
Include dependency graph for interpreter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PrecomputedTransactionData
 
class  BaseSignatureChecker
 
class  TransactionSignatureChecker
 
class  MutableTransactionSignatureChecker
 

Typedefs

typedef std::vector< unsigned char > valtype
 

Enumerations

enum  { SIGHASH_ALL = 1, SIGHASH_NONE = 2, SIGHASH_SINGLE = 3, SIGHASH_ANYONECANPAY = 0x80 }
 Signature hash types/flags. More...
 
enum  {
  SCRIPT_VERIFY_NONE = 0, SCRIPT_VERIFY_P2SH = (1U << 0), SCRIPT_VERIFY_STRICTENC = (1U << 1), SCRIPT_VERIFY_DERSIG = (1U << 2),
  SCRIPT_VERIFY_LOW_S = (1U << 3), SCRIPT_VERIFY_NULLDUMMY = (1U << 4), SCRIPT_VERIFY_SIGPUSHONLY = (1U << 5), SCRIPT_VERIFY_MINIMALDATA = (1U << 6),
  SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS = (1U << 7), SCRIPT_VERIFY_CLEANSTACK = (1U << 8), SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY = (1U << 9), SCRIPT_VERIFY_CHECKSEQUENCEVERIFY = (1U << 10),
  SCRIPT_VERIFY_WITNESS = (1U << 11), SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM = (1U << 12), SCRIPT_VERIFY_MINIMALIF = (1U << 13), SCRIPT_VERIFY_NULLFAIL = (1U << 14),
  SCRIPT_VERIFY_WITNESS_PUBKEYTYPE = (1U << 15), SCRIPT_EXEC_BYTE_CODE = (1U << 30)
}
 Script verification flags. More...
 
enum  SigVersion { SIGVERSION_BASE = 0, SIGVERSION_WITNESS_V0 = 1 }
 

Functions

bool CheckSignatureEncoding (const std::vector< unsigned char > &vchSig, unsigned int flags, ScriptError *serror)
 
uint256 SignatureHash (const CScript &scriptCode, const CTransaction &txTo, unsigned int nIn, int nHashType, const CAmount &amount, SigVersion sigversion, const PrecomputedTransactionData *cache=nullptr)
 
bool EvalScript (std::vector< std::vector< unsigned char > > &stack, const CScript &script, unsigned int flags, const BaseSignatureChecker &checker, SigVersion sigversion, ScriptError *error=nullptr)
 
bool VerifyScript (const CScript &scriptSig, const CScript &scriptPubKey, const CScriptWitness *witness, unsigned int flags, const BaseSignatureChecker &checker, ScriptError *serror=nullptr)
 
size_t CountWitnessSigOps (const CScript &scriptSig, const CScript &scriptPubKey, const CScriptWitness *witness, unsigned int flags)
 
bool IsLowDERSignature (const valtype &vchSig, ScriptError *serror=NULL, bool haveHashType=true)
 
bool IsDERSignature (const valtype &vchSig, ScriptError *serror=NULL, bool haveHashType=true)
 
bool IsCompressedOrUncompressedPubKey (const valtype &vchPubKey)
 

Typedef Documentation

typedef std::vector<unsigned char> valtype

Definition at line 19 of file interpreter.h.

Enumeration Type Documentation

anonymous enum

Signature hash types/flags.

Enumerator
SIGHASH_ALL 
SIGHASH_NONE 
SIGHASH_SINGLE 
SIGHASH_ANYONECANPAY 

Definition at line 23 of file interpreter.h.

anonymous enum

Script verification flags.

Enumerator
SCRIPT_VERIFY_NONE 
SCRIPT_VERIFY_P2SH 
SCRIPT_VERIFY_STRICTENC 
SCRIPT_VERIFY_DERSIG 
SCRIPT_VERIFY_LOW_S 
SCRIPT_VERIFY_NULLDUMMY 
SCRIPT_VERIFY_SIGPUSHONLY 
SCRIPT_VERIFY_MINIMALDATA 
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS 
SCRIPT_VERIFY_CLEANSTACK 
SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY 
SCRIPT_VERIFY_CHECKSEQUENCEVERIFY 
SCRIPT_VERIFY_WITNESS 
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM 
SCRIPT_VERIFY_MINIMALIF 
SCRIPT_VERIFY_NULLFAIL 
SCRIPT_VERIFY_WITNESS_PUBKEYTYPE 
SCRIPT_EXEC_BYTE_CODE 

Definition at line 32 of file interpreter.h.

enum SigVersion
Enumerator
SIGVERSION_BASE 
SIGVERSION_WITNESS_V0 

Definition at line 124 of file interpreter.h.

Function Documentation

bool CheckSignatureEncoding ( const std::vector< unsigned char > &  vchSig,
unsigned int  flags,
ScriptError serror 
)

Definition at line 202 of file interpreter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

size_t CountWitnessSigOps ( const CScript scriptSig,
const CScript scriptPubKey,
const CScriptWitness witness,
unsigned int  flags 
)

Definition at line 1564 of file interpreter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool EvalScript ( std::vector< std::vector< unsigned char > > &  stack,
const CScript script,
unsigned int  flags,
const BaseSignatureChecker checker,
SigVersion  sigversion,
ScriptError error = nullptr 
)

Definition at line 253 of file interpreter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool IsCompressedOrUncompressedPubKey ( const valtype vchPubKey)

Definition at line 65 of file interpreter.cpp.

Here is the caller graph for this function:

bool IsDERSignature ( const valtype vchSig,
ScriptError serror = NULL,
bool  haveHashType = true 
)

Definition at line 184 of file interpreter.cpp.

Here is the caller graph for this function:

bool IsLowDERSignature ( const valtype vchSig,
ScriptError serror = NULL,
bool  haveHashType = true 
)

Definition at line 174 of file interpreter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

uint256 SignatureHash ( const CScript scriptCode,
const CTransaction txTo,
unsigned int  nIn,
int  nHashType,
const CAmount amount,
SigVersion  sigversion,
const PrecomputedTransactionData cache = nullptr 
)

Definition at line 1198 of file interpreter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool VerifyScript ( const CScript scriptSig,
const CScript scriptPubKey,
const CScriptWitness witness,
unsigned int  flags,
const BaseSignatureChecker checker,
ScriptError serror = nullptr 
)

Definition at line 1429 of file interpreter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function: