Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/rawtransaction.cpp
Show First 20 Lines • Show All 976 Lines • ▼ Show 20 Lines | const CKeyStore &keystore = | ||||
((fGivenKeys || !pwalletMain) ? tempKeystore : *pwalletMain); | ((fGivenKeys || !pwalletMain) ? tempKeystore : *pwalletMain); | ||||
#else | #else | ||||
const CKeyStore &keystore = tempKeystore; | const CKeyStore &keystore = tempKeystore; | ||||
#endif | #endif | ||||
int nHashType = SIGHASH_ALL | SIGHASH_FORKID; | int nHashType = SIGHASH_ALL | SIGHASH_FORKID; | ||||
if (request.params.size() > 3 && !request.params[3].isNull()) { | if (request.params.size() > 3 && !request.params[3].isNull()) { | ||||
static std::map<std::string, int> mapSigHashValues = { | static std::map<std::string, int> mapSigHashValues = { | ||||
{std::string("ALL"), int(SIGHASH_ALL)}, | {"ALL", SIGHASH_ALL}, | ||||
{std::string("ALL|ANYONECANPAY"), | {"ALL|ANYONECANPAY", SIGHASH_ALL | SIGHASH_ANYONECANPAY}, | ||||
int(SIGHASH_ALL | SIGHASH_ANYONECANPAY)}, | {"ALL|FORKID", SIGHASH_ALL | SIGHASH_FORKID}, | ||||
{std::string("ALL|FORKID"), int(SIGHASH_ALL | SIGHASH_FORKID)}, | {"ALL|FORKID|ANYONECANPAY", | ||||
{std::string("ALL|FORKID|ANYONECANPAY"), | SIGHASH_ALL | SIGHASH_FORKID | SIGHASH_ANYONECANPAY}, | ||||
int(SIGHASH_ALL | SIGHASH_FORKID | SIGHASH_ANYONECANPAY)}, | {"NONE", SIGHASH_NONE}, | ||||
{std::string("NONE"), int(SIGHASH_NONE)}, | {"NONE|ANYONECANPAY", SIGHASH_NONE | SIGHASH_ANYONECANPAY}, | ||||
{std::string("NONE|ANYONECANPAY"), | {"NONE|FORKID", SIGHASH_NONE | SIGHASH_FORKID}, | ||||
int(SIGHASH_NONE | SIGHASH_ANYONECANPAY)}, | {"NONE|FORKID|ANYONECANPAY", | ||||
{std::string("NONE|FORKID"), int(SIGHASH_NONE | SIGHASH_FORKID)}, | SIGHASH_NONE | SIGHASH_FORKID | SIGHASH_ANYONECANPAY}, | ||||
{std::string("NONE|FORKID|ANYONECANPAY"), | {"SINGLE", SIGHASH_SINGLE}, | ||||
int(SIGHASH_NONE | SIGHASH_FORKID | SIGHASH_ANYONECANPAY)}, | {"SINGLE|ANYONECANPAY", SIGHASH_SINGLE | SIGHASH_ANYONECANPAY}, | ||||
{std::string("SINGLE"), int(SIGHASH_SINGLE)}, | {"SINGLE|FORKID", SIGHASH_SINGLE | SIGHASH_FORKID}, | ||||
{std::string("SINGLE|ANYONECANPAY"), | {"SINGLE|FORKID|ANYONECANPAY", | ||||
int(SIGHASH_SINGLE | SIGHASH_ANYONECANPAY)}, | SIGHASH_SINGLE | SIGHASH_FORKID | SIGHASH_ANYONECANPAY}, | ||||
{std::string("SINGLE|FORKID"), | |||||
int(SIGHASH_SINGLE | SIGHASH_FORKID)}, | |||||
{std::string("SINGLE|FORKID|ANYONECANPAY"), | |||||
int(SIGHASH_SINGLE | SIGHASH_FORKID | SIGHASH_ANYONECANPAY)}, | |||||
}; | }; | ||||
std::string strHashType = request.params[3].get_str(); | std::string strHashType = request.params[3].get_str(); | ||||
if (!mapSigHashValues.count(strHashType)) { | if (!mapSigHashValues.count(strHashType)) { | ||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid sighash param"); | throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid sighash param"); | ||||
} | } | ||||
nHashType = mapSigHashValues[strHashType]; | nHashType = mapSigHashValues[strHashType]; | ||||
if ((nHashType & SIGHASH_FORKID) == 0) { | if ((nHashType & SIGHASH_FORKID) == 0) { | ||||
▲ Show 20 Lines • Show All 180 Lines • Show Last 20 Lines |