bad-txns-nonstandard-inputs Fehler nach senddrawtransaction

Ich habe meinen Kopf über den Tisch geschlagen, als ich versucht habe, eine Rohtransaktion zu senden, und jedes Mal bekomme ich den gleichen Fehler bad-txns-nonstandard-inputs.


Also, hier ist, was ich tue:

  1. Erhalten Sie nicht ausgegebene Transaktionen

    bitcoin-cli listunspent
    [
      {
        "txid": "txid_number_1",
        "vout": 1,
        "address": "address_1",
        "redeemScript": "redeemScript_1",
        "scriptPubKey": "scriptPubKey_1",
        "amount": 0.00024972,
        "confirmations": 31,
        "spendable": true,
        "solvable": true,
        "safe": true
      }
    ]
    
  2. Erstellen Sie eine Rohtransaktion mit tx_id und vout, die oben genommen wurden

    bitcoin-cli createrawtransaction '[{"txid":"txid_number_1","vout":1}]' '{"address_to_sent":0.00002000}'
    

tx_id_as_hexstring =

02000000016affa8a874987f66be3ab4791b57042cbf0912088352ba0e3931b7b8b8f374c80100000000ffffffff01d0070000000000001976a9147c99343bb9cba8699e7f7b4f5552357e477dc76188ac00000000
  1. Rohtransaktion unterzeichnen

    bitcoin-cli signrawtransaction tx_id_as_hexstring
    
  2. Rohtransaktion senden

    bitcoin-cli sendrawtransaction tx_id_as_hexstring
    
    error code: -26
    error message:
    64: bad-txns-nonstandard-inputs
    

Ich habe versucht, dieselbe Transaktion mit coinb.in zu erstellen , aber das Ergebnis ist dasselbe.

Was mache ich falsch?


Auch

bitcoin-cli decoderawtransaction tx_id_as_hexstring

kehrt zurück

{
  "txid": "txid_number_2",
  "hash": "txid_number_2",
  "version": 2,
  "size": 85,
  "vsize": 85,
  "locktime": 0,
  "vin": [
    {
      "txid": "txid_number_3",
      "vout": 1,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.00002000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 7c99343bb9cba8699e7f7b4f5552357e477dc761 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a9147c99343bb9cba8699e7f7b4f5552357e477dc76188ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "address_to_sent"
        ]
      }
    }
  ]
}
Ich hatte das gleiche Problem bei der Verwendung einer Art P2SH-TX. Die besten Ergebnisse konnte ich mit allen Parametern des signrawtransaction-Befehls erzielen: <hexstring> {"txid":txid,"vout":n,"scriptPubKey":hex} <privkey>. Ich musste allerdings viel mit den Klammern herumfummeln :-( Was ist dein Redescript? Ist es ein Multisig?

Antworten (1)

Ihre Transaktion wird nicht signiert.

Zunächst einmal createrawtransactionist die Hex-Zeichenfolge, die Sie erhalten, nicht die txid, sondern die Transaktion selbst. Diese Transaktion wird nicht in Ihrem Wallet gespeichert.

Wenn Sie es an übergeben signrawtransaction, wird die Rohtransaktion signiert und an Sie zurückgegeben (es ist das Ding unter dem hexFeld im zurückgegebenen Objekt. Auch diese Transaktion wird nicht in Ihrem Wallet gespeichert. Diese signierte Transaktion ist das, was Sie an übergeben sendrawtransaction. nicht das, was createrawtransactiondir gibt.