Here's the scenario I have set up: Created seed node S1 and client node C1; seed node issues asset, asset1 from seed node's address AS1, to client node address, AC1. The purpose is to create a 2 of 2 multisig transaction requiring signatures from AS1 and AC1 and send it to address AS1 at seed node.
Referring to the link for data streams (
http://www.multichain.com/developers/creating-data-streams/), here are the steps:
At C1:
1. preparelockunspent
2. createmultisig 2 ["AC1","pub key of AS1"]
3. createrawtransaction with txid from 1, vout:0 to multisig address, AM1 from 2 having an asset, asset1 of 2 unit quantity
4. signrawtransaction with hex-blob from 3. This returns a long-hex-blob with Complete:True
5. After granting receive permission to AM1, sendrawtransaction with hex value from 4
6. decoderawtransaction with long-hex-blob from 4 to get details including scriptPubKey in vout[0]. Txid of the result and txid returned from 5 are the same
7. createrawtransaction with txid from 5, vout:0, scriptPubKey from 6 and redeemScript from 2, to AS1, the asset, asset1 and quantity, 2.
8. signrawtransaction with hex-blob from 7 as the transaction, transaction parameter the same as 7, and '["private key of AC1"]'. This returns a long-hex-blob along with Complete:False
At S1:
1. signrawtransaction with same details as in Step 8 at C1, but signed with AS1's private key. This returns a long-hex-blob along with Complete:False
Questions:
1. Why is it that even though the transaction has been signed by both nodes, the step at S1, returns Complete: False? Is there something missing in the transaction flow?
2. The next logical step to follow is to use the long-hex-blob from the signed transactions at either of the nodes, to be able to send the asset to AS1. Would that ensure, that the 2 units of the asset, asset1 are sent from AC1 to AS1? If so, this could then be extended to release assets based on the 2 signatures to any address with receive permissions, in either node's wallets.
3. Note that, during the creation of multisig address, instead of using the pub key of AC1, if AC1 were to be used the error is: No full public key for AS1. Suggestions?