Rohtransaktion kann nicht mit dem json-rpc-Befehl erstellt werden

Ich versuche, eine Coinbase-Transaktion mit dem Befehl zu erstellen:

{"jsonrpc": "1.0", "id":"jsonrpc", "method":"createrawtransaction", "params":[{"txid":"0000000000000000000000000000000000000000000000000000000000000000","vout":0xFFFFFFFF}] {1Ka3q3DVTBNBo2c4kVGMNzbd32RARV1FbA:25.00} }

aber ich bekomme folgende antwort:

{"result":null,"error":{"code":-32700,"message":"Parse error"},"id":null}

Das gleiche passiert, wenn ich es versuche mit:

{"jsonrpc": "1.0", "id":"jsonrpc", "method":"createrawtransaction", "params":[{"txid":0000000000000000000000000000000000000000000000000000000000000000,"vout":0xFFFFFFFF}] {1Ka3q3DVTBNBo2c4kVGMNzbd32RARV1FbA:25.00} }

Wenn ich das Debug-Fenster (in der bitcoin-qt - Anwendung) verwende, erhalte ich Error: Error parsing JSON:[{txid:0000000000000000000000000000000000000000000000000000000000000000bzw.Method not found (code -32601)

Kann jemand sagen, was hier falsch ist?

Antworten (3)

Hier ist der richtige json:
createrawtransaction '[{"txid":"0000000000000000000000000000000000000000000000000000000000000000","vout":0}]' '{"1Ka3q3DVTBNBo2c4kVGMNzbd32RARV1FbA":12.5}'

Ich habe 0for verwendet vout, weil es numerisch sein muss (ich glaube nicht, dass Hex akzeptiert wird).

help createrawtransaction


createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,"data":"hex",...} ( locktime )

Create a transaction spending the given inputs and creating new outputs.
Outputs can be addresses or data.
Returns hex-encoded raw transaction.
Note that the transaction's inputs are not signed, and
it is not stored in the wallet or transmitted to the network.

Arguments:
1. "inputs"                (array, required) A json array of json objects
     [
       {
         "txid":"id",    (string, required) The transaction id
         "vout":n,         (numeric, required) The output number
         "sequence":n      (numeric, optional) The sequence number
       } 
       ,...
     ]
2. "outputs"               (object, required) a json object with outputs
    {
      "address": x.xxx,    (numeric or string, required) The key is the bitcoin address, the numeric value (can be string) is the BTC amount
      "data": "hex"      (string, required) The key is "data", the value is hex encoded data
      ,...
    }
3. locktime                  (numeric, optional, default=0) Raw locktime. Non-0 value also locktime-activates inputs

Result:
"transaction"              (string) hex string of the transaction

Examples:
> bitcoin-cli createrawtransaction "[{\"txid\":\"myid\",\"vout\":0}]" "{\"address\":0.01}"
> bitcoin-cli createrawtransaction "[{\"txid\":\"myid\",\"vout\":0}]" "{\"data\":\"00010203\"}"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "createrawtransaction", "params": ["[{\"txid\":\"myid\",\"vout\":0}]", "{\"address\":0.01}"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "createrawtransaction", "params": ["[{\"txid\":\"myid\",\"vout\":0}]", "{\"data\":\"00010203\"}"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
Okay, das geht! Noch eine letzte Frage: Benötige ich für diese Transaktion auch use sendtransactionund ? signrawtransactionWie/Wo erhalten Sie diesen Hilfetext für den Befehl?
Das helpist von der Bitcoin Core-Client-Konsole. Ich glaube nicht, dass Sie diese Transaktion signieren können, und ich glaube, dass sie in einen gelösten Block aufgenommen werden muss, um gültig zu sein.

Wenn Sie den Bitcoin-Core v0.20 verwenden, müssen Sie diesen Befehl ausführen:

createrawtransaction "[{\"txid\":\"TX_ID\",\"vout\":0}]" "[{\"address\":ammount_that_you_want_transfer}]"

Ich hoffe es hilft.

Unten Curl Anfrage funktionierte perfekt für mich,

curl --user meinbenutzername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "createrawtransaction", "params": [ [ {\"txid\" : \ "myid\",\"vout\":0} ] , [ {\"address\":0.01} ] ] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/

Ohne doppelte Anführungszeichen (") innerhalb der "params".