|
|
|
@ -430,7 +430,6 @@ enum GetMinFee_mode
@@ -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:
@@ -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 |
|
|
|
|