Does createrawtransction accept scriptPubKey and redeemScript as inputs?

1

According to the built-in RPC documentation the signature for createrawtransaction is: createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,...}.

Gavin in his example on 2-of-3 multisigs is also passing scriptPubKey and redeemScript as input for createrawtransaction.

The code of createrawtransaction in bitcoin core for parsing inputs is:

 BOOST_FOREACH(const Value& input, inputs) {
   const Object& o = input.get_obj();
   uint256 txid = ParseHashO(o, "txid");
   const Value& vout_v = find_value(o, "vout");
   if (vout_v.type() != int_type)
   throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, missing vout key");
   int nOutput = vout_v.get_int();
   if (nOutput < 0)
   throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, vout must be positive");
   CTxIn in(COutPoint(txid, nOutput));
   rawTx.vin.push_back(in);
 }

so how exactly does createrawtransaction use scriptPubKey and redeemScript?

Doug Peters

Posted 2015-01-27T04:16:15.187

Reputation: 1 326

Answers

3

Yes, it accepts them (and any other parameters you care to specify in the JSON). No, it doesn't use them---and I don't know why Gavin used them in his example.

There's a more detailed and more up-to-date example of spending a P2SH multisig output on the Bitcoin.org developer examples page.

David A. Harding

Posted 2015-01-27T04:16:15.187

Reputation: 10 154

Indeed it accepts any number of input parameters as I found out in my tests (I even had to pass an input parameter bananaColor=yellow to make sure). I will check the examples you suggested, thank you!Doug Peters 2015-01-27T04:41:46.680