Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/rawtransaction.cpp
Show First 20 Lines • Show All 813 Lines • ▼ Show 20 Lines | for (size_t i = 0; i < mergedTx.vin.size(); i++) { | ||||
if (txv.vin.size() > i) { | if (txv.vin.size() > i) { | ||||
sigdata = CombineSignatures( | sigdata = CombineSignatures( | ||||
prevPubKey, | prevPubKey, | ||||
TransactionSignatureChecker(&txConst, i, amount), sigdata, | TransactionSignatureChecker(&txConst, i, amount), sigdata, | ||||
DataFromTransaction(txv, i)); | DataFromTransaction(txv, i)); | ||||
} | } | ||||
} | } | ||||
UpdateTransaction(mergedTx, i, sigdata); | UpdateInput(txin, sigdata); | ||||
} | } | ||||
return EncodeHexTx(CTransaction(mergedTx)); | return EncodeHexTx(CTransaction(mergedTx)); | ||||
} | } | ||||
UniValue SignTransaction(CMutableTransaction &mtx, | UniValue SignTransaction(CMutableTransaction &mtx, | ||||
const UniValue &prevTxsUnival, | const UniValue &prevTxsUnival, | ||||
CBasicKeyStore *keystore, bool is_temp_keystore, | CBasicKeyStore *keystore, bool is_temp_keystore, | ||||
▲ Show 20 Lines • Show All 160 Lines • ▼ Show 20 Lines | for (size_t i = 0; i < mtx.vin.size(); i++) { | ||||
MutableTransactionSignatureCreator(&mtx, i, amount, | MutableTransactionSignatureCreator(&mtx, i, amount, | ||||
sigHashType), | sigHashType), | ||||
prevPubKey, sigdata); | prevPubKey, sigdata); | ||||
} | } | ||||
sigdata = CombineSignatures( | sigdata = CombineSignatures( | ||||
prevPubKey, TransactionSignatureChecker(&txConst, i, amount), | prevPubKey, TransactionSignatureChecker(&txConst, i, amount), | ||||
sigdata, DataFromTransaction(mtx, i)); | sigdata, DataFromTransaction(mtx, i)); | ||||
UpdateTransaction(mtx, i, sigdata); | UpdateInput(txin, sigdata); | ||||
ScriptError serror = ScriptError::OK; | ScriptError serror = ScriptError::OK; | ||||
if (!VerifyScript( | if (!VerifyScript( | ||||
txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, | txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, | ||||
TransactionSignatureChecker(&txConst, i, amount), &serror)) { | TransactionSignatureChecker(&txConst, i, amount), &serror)) { | ||||
if (serror == ScriptError::INVALID_STACK_OPERATION) { | if (serror == ScriptError::INVALID_STACK_OPERATION) { | ||||
// Unable to sign input and verification failed (possible | // Unable to sign input and verification failed (possible | ||||
// attempt to partially sign). | // attempt to partially sign). | ||||
▲ Show 20 Lines • Show All 351 Lines • Show Last 20 Lines |