Changeset View
Changeset View
Standalone View
Standalone View
src/bitcoin-tx.cpp
Show First 20 Lines • Show All 372 Lines • ▼ Show 20 Lines | static void MutateTxAddOutMultiSig(CMutableTransaction &tx, | ||||
// Extract NUMKEYS | // Extract NUMKEYS | ||||
uint32_t numkeys = stoul(vStrInputParts[2]); | uint32_t numkeys = stoul(vStrInputParts[2]); | ||||
// Validate there are the correct number of pubkeys | // Validate there are the correct number of pubkeys | ||||
if (vStrInputParts.size() < numkeys + 3) { | if (vStrInputParts.size() < numkeys + 3) { | ||||
throw std::runtime_error("incorrect number of multisig pubkeys"); | throw std::runtime_error("incorrect number of multisig pubkeys"); | ||||
} | } | ||||
if (required < 1 || required > 20 || numkeys < 1 || numkeys > 20 || | if (required < 1 || required > MAX_PUBKEYS_PER_MULTISIG || numkeys < 1 || | ||||
numkeys < required) { | numkeys > MAX_PUBKEYS_PER_MULTISIG || numkeys < required) { | ||||
throw std::runtime_error("multisig parameter mismatch. Required " + | throw std::runtime_error("multisig parameter mismatch. Required " + | ||||
std::to_string(required) + " of " + | std::to_string(required) + " of " + | ||||
std::to_string(numkeys) + "signatures."); | std::to_string(numkeys) + "signatures."); | ||||
} | } | ||||
// extract and validate PUBKEYs | // extract and validate PUBKEYs | ||||
std::vector<CPubKey> pubkeys; | std::vector<CPubKey> pubkeys; | ||||
for (int pos = 1; pos <= int(numkeys); pos++) { | for (int pos = 1; pos <= int(numkeys); pos++) { | ||||
▲ Show 20 Lines • Show All 508 Lines • Show Last 20 Lines |