Changeset View
Changeset View
Standalone View
Standalone View
src/script/sign.h
Show All 29 Lines | public: | ||||
virtual bool CreateSig(std::vector<uint8_t> &vchSig, const CKeyID &keyid, | virtual bool CreateSig(std::vector<uint8_t> &vchSig, const CKeyID &keyid, | ||||
const CScript &scriptCode) const = 0; | const CScript &scriptCode) const = 0; | ||||
}; | }; | ||||
/** A signature creator for transactions. */ | /** A signature creator for transactions. */ | ||||
class TransactionSignatureCreator : public BaseSignatureCreator { | class TransactionSignatureCreator : public BaseSignatureCreator { | ||||
const CTransaction *txTo; | const CTransaction *txTo; | ||||
unsigned int nIn; | unsigned int nIn; | ||||
CAmount amount; | Amount amount; | ||||
uint32_t nHashType; | uint32_t nHashType; | ||||
const TransactionSignatureChecker checker; | const TransactionSignatureChecker checker; | ||||
public: | public: | ||||
TransactionSignatureCreator(const CKeyStore *keystoreIn, | TransactionSignatureCreator(const CKeyStore *keystoreIn, | ||||
const CTransaction *txToIn, unsigned int nInIn, | const CTransaction *txToIn, unsigned int nInIn, | ||||
const CAmount amountIn, | const Amount amountIn, | ||||
uint32_t nHashTypeIn = SIGHASH_ALL); | uint32_t nHashTypeIn = SIGHASH_ALL); | ||||
const BaseSignatureChecker &Checker() const { return checker; } | const BaseSignatureChecker &Checker() const { return checker; } | ||||
bool CreateSig(std::vector<uint8_t> &vchSig, const CKeyID &keyid, | bool CreateSig(std::vector<uint8_t> &vchSig, const CKeyID &keyid, | ||||
const CScript &scriptCode) const; | const CScript &scriptCode) const; | ||||
}; | }; | ||||
class MutableTransactionSignatureCreator : public TransactionSignatureCreator { | class MutableTransactionSignatureCreator : public TransactionSignatureCreator { | ||||
CTransaction tx; | CTransaction tx; | ||||
public: | public: | ||||
MutableTransactionSignatureCreator(const CKeyStore *keystoreIn, | MutableTransactionSignatureCreator(const CKeyStore *keystoreIn, | ||||
const CMutableTransaction *txToIn, | const CMutableTransaction *txToIn, | ||||
unsigned int nInIn, const CAmount amount, | unsigned int nInIn, const Amount amount, | ||||
uint32_t nHashTypeIn) | uint32_t nHashTypeIn) | ||||
: TransactionSignatureCreator(keystoreIn, &tx, nInIn, amount, | : TransactionSignatureCreator(keystoreIn, &tx, nInIn, amount, | ||||
nHashTypeIn), | nHashTypeIn), | ||||
tx(*txToIn) {} | tx(*txToIn) {} | ||||
}; | }; | ||||
/** A signature creator that just produces 72-byte empty signatures. */ | /** A signature creator that just produces 72-byte empty signatures. */ | ||||
class DummySignatureCreator : public BaseSignatureCreator { | class DummySignatureCreator : public BaseSignatureCreator { | ||||
Show All 14 Lines | |||||
/** Produce a script signature using a generic signature creator. */ | /** Produce a script signature using a generic signature creator. */ | ||||
bool ProduceSignature(const BaseSignatureCreator &creator, | bool ProduceSignature(const BaseSignatureCreator &creator, | ||||
const CScript &scriptPubKey, SignatureData &sigdata); | const CScript &scriptPubKey, SignatureData &sigdata); | ||||
/** Produce a script signature for a transaction. */ | /** Produce a script signature for a transaction. */ | ||||
bool SignSignature(const CKeyStore &keystore, const CScript &fromPubKey, | bool SignSignature(const CKeyStore &keystore, const CScript &fromPubKey, | ||||
CMutableTransaction &txTo, unsigned int nIn, | CMutableTransaction &txTo, unsigned int nIn, | ||||
const CAmount amount, uint32_t nHashType); | const Amount amount, uint32_t nHashType); | ||||
bool SignSignature(const CKeyStore &keystore, const CTransaction &txFrom, | bool SignSignature(const CKeyStore &keystore, const CTransaction &txFrom, | ||||
CMutableTransaction &txTo, unsigned int nIn, | CMutableTransaction &txTo, unsigned int nIn, | ||||
uint32_t nHashType); | uint32_t nHashType); | ||||
/** Combine two script signatures using a generic signature checker, | /** Combine two script signatures using a generic signature checker, | ||||
* intelligently, possibly with OP_0 placeholders. */ | * intelligently, possibly with OP_0 placeholders. */ | ||||
SignatureData CombineSignatures(const CScript &scriptPubKey, | SignatureData CombineSignatures(const CScript &scriptPubKey, | ||||
const BaseSignatureChecker &checker, | const BaseSignatureChecker &checker, | ||||
Show All 10 Lines |