|
|
@ -368,7 +368,7 @@ static void MutateTxSign(CMutableTransaction& tx, const string& flagStr)
|
|
|
|
// Add previous txouts given in the RPC call:
|
|
|
|
// Add previous txouts given in the RPC call:
|
|
|
|
if (!registers.count("prevtxs"))
|
|
|
|
if (!registers.count("prevtxs"))
|
|
|
|
throw runtime_error("prevtxs register variable must be set.");
|
|
|
|
throw runtime_error("prevtxs register variable must be set.");
|
|
|
|
UniValue prevtxsObj = registers["privatekeys"];
|
|
|
|
UniValue prevtxsObj = registers["prevtxs"];
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for (unsigned int previdx = 0; previdx < prevtxsObj.count(); previdx++) {
|
|
|
|
for (unsigned int previdx = 0; previdx < prevtxsObj.count(); previdx++) {
|
|
|
|
UniValue prevOut = prevtxsObj[previdx];
|
|
|
|
UniValue prevOut = prevtxsObj[previdx];
|
|
|
@ -379,13 +379,13 @@ static void MutateTxSign(CMutableTransaction& tx, const string& flagStr)
|
|
|
|
if (!prevOut.checkObject(types))
|
|
|
|
if (!prevOut.checkObject(types))
|
|
|
|
throw runtime_error("prevtxs internal object typecheck fail");
|
|
|
|
throw runtime_error("prevtxs internal object typecheck fail");
|
|
|
|
|
|
|
|
|
|
|
|
uint256 txid = ParseHashUV(prevOut, "txid");
|
|
|
|
uint256 txid = ParseHashUV(prevOut["txid"], "txid");
|
|
|
|
|
|
|
|
|
|
|
|
int nOut = atoi(prevOut["vout"].getValStr());
|
|
|
|
int nOut = atoi(prevOut["vout"].getValStr());
|
|
|
|
if (nOut < 0)
|
|
|
|
if (nOut < 0)
|
|
|
|
throw runtime_error("vout must be positive");
|
|
|
|
throw runtime_error("vout must be positive");
|
|
|
|
|
|
|
|
|
|
|
|
vector<unsigned char> pkData(ParseHexUV(prevOut, "scriptPubKey"));
|
|
|
|
vector<unsigned char> pkData(ParseHexUV(prevOut["scriptPubKey"], "scriptPubKey"));
|
|
|
|
CScript scriptPubKey(pkData.begin(), pkData.end());
|
|
|
|
CScript scriptPubKey(pkData.begin(), pkData.end());
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|