Fehler beim Analysieren von JSON in bitcoin-cli signrawtransactionwithkey

Ich habe Probleme beim Versuch, einen 2/3-Multisig-Tx mit dem ersten privaten Schlüssel zu signieren.

Was mache ich falsch oder übersehe ich etwas für die arg?

Befehlsformat:

/usr/bin/bitcoin-cli -testnet signrawtransactionwithkey "multisig_tx_hexstring" \"privatekey1\"  {\"txid\":\"id\",\"vout\":n,\"scriptPubKey\":\"hex\",\"redeemScript\":\"hex\"}

Ausgefüllt:

/usr/bin/bitcoin-cli -testnet signrawtransactionwithkey "02000000017b0cd6ab6beebace32e00f27aea8092879e178a77d2d0e74d001e10b39f560d10100000000ffffffff0100093d000000000017a9145e235c002eb66a1c33abccfb805043a036baf7798700000000" \"cNoe7mVGEVFwUwQXuCJadosEVPYU5rcCVxzTr46gYWbWMD8gXR7b\"  {\"txid\":\"d160f5390be101d0740e2d7da778e1792809a8ae270fe032cebaee6babd60c7b\",\"vout\":1,\"scriptPubKey\":\"a9145c975f4c6d18fa1abd25018e1fa3c18e58c9e93b87\",\"redeemScript\":\"5221029558bd8bc6e0cac883cac93a420bf8e68e76e8e07944f6034e3c5eadd3f1a4db21038d217a8fa3960a3b3212bc545566c5c48add11003551cb23c0d744a13f9ab8272102fcd0e6ff324c7a3bc9a8e224d61cd9ccd244c54186848ca3035a54736a9780d653ae\"}

Und der Fehler:

error: Error parsing JSON:"txid":"d160f5390be101d0740e2d7da778e1792809a8ae270fe032cebaee6babd60c7b"
Sie müssen das JSON-Objekt in Anführungszeichen packen `

Antworten (1)

Versuche dies:

Sie müssen die privaten Schlüssel und das utxo als Arrays bereitstellen und sicherstellen, dass es sich um gültiges json und in Anführungszeichen handelt.

$ /usr/bin/bitcoin-cli -testnet signrawtransactionwithkey "02000000017b0cd6ab6beebace32e00f27aea8092879e178a77d2d0e74d001e10b39f560d10100000000ffffffff0100093d000000000017a9145e235c002eb66a1c33abccfb805043a036baf7798700000000" '["cNoe7mVGEVFwUwQXuCJadosEVPYU5rcCVxzTr46gYWbWMD8gXR7b"]' '[{"txid":"d160f5390be101d0740e2d7da778e1792809a8ae270fe032cebaee6babd60c7b","vout":1,"scriptPubKey":"a9145c975f4c6d18fa1abd25018e1fa3c18e58c9e93b87","redeemScript":"5221029558bd8bc6e0cac883cac93a420bf8e68e76e8e07944f6034e3c5eadd3f1a4db21038d217a8fa3960a3b3212bc545566c5c48add11003551cb23c0d744a13f9ab8272102fcd0e6ff324c7a3bc9a8e224d61cd9ccd244c54186848ca3035a54736a9780d653ae"}]'

Ok, also die einfachen und doppelten Anführungszeichen anstelle von Backslashes, verstanden.
Wenn ich jeweils nur einen Schlüssel signieren möchte, muss ich dann den Parameter sighashtype auf 'SINGLE' setzen?
Nein, Sighash ist eine Möglichkeit, anzugeben, was Sie tatsächlich signieren möchten, nicht die Schlüssel, mit denen Sie signieren möchten. Siehe bitcoin.org/en/developer-guide#term-signature-hash
Kein Problem. Sie könnten den zitierten json auch in diesem Format bereitstellen (unter Umgehung der inneren Anführungszeichen): "[\"privkey\"]"aber ich finde das Obige einfacher zu lesen.