Add CScriptCheck: a closure representing a script check
This commit is contained in:
27
src/main.h
27
src/main.h
@@ -430,7 +430,6 @@ enum GetMinFee_mode
|
||||
GMF_SEND,
|
||||
};
|
||||
|
||||
// Modes for script/signature checking
|
||||
enum CheckSig_mode
|
||||
{
|
||||
CS_NEVER, // never validate scripts
|
||||
@@ -1015,7 +1014,33 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
/** Closure representing one script verification
|
||||
* Note that this stores references to the spending transaction */
|
||||
class CScriptCheck
|
||||
{
|
||||
private:
|
||||
CScript scriptPubKey;
|
||||
const CTransaction *ptxTo;
|
||||
unsigned int nIn;
|
||||
unsigned int nFlags;
|
||||
int nHashType;
|
||||
|
||||
public:
|
||||
CScriptCheck() {}
|
||||
CScriptCheck(const CCoins& txFromIn, const CTransaction& txToIn, unsigned int nInIn, unsigned int nFlagsIn, int nHashTypeIn) :
|
||||
scriptPubKey(txFromIn.vout[txToIn.vin[nInIn].prevout.n].scriptPubKey),
|
||||
ptxTo(&txToIn), nIn(nInIn), nFlags(nFlagsIn), nHashType(nHashTypeIn) { }
|
||||
|
||||
bool operator()() const;
|
||||
|
||||
void swap(CScriptCheck &check) {
|
||||
scriptPubKey.swap(check.scriptPubKey);
|
||||
std::swap(ptxTo, check.ptxTo);
|
||||
std::swap(nIn, check.nIn);
|
||||
std::swap(nFlags, check.nFlags);
|
||||
std::swap(nHashType, check.nHashType);
|
||||
}
|
||||
};
|
||||
|
||||
/** A transaction with a merkle branch linking it to the block chain. */
|
||||
class CMerkleTx : public CTransaction
|
||||
|
||||
Reference in New Issue
Block a user