Hinweis: Dies passiert bei bestimmten Eingaben, obwohl ich denselben Code für andere Eingaben verwendet habe und es funktioniert.
Ich habe eine Rohtransaktion mit dem folgenden nicht ausgegebenen erstellt:
Array
(
[0] => Array
(
[txid] => 108544730bfaeccca0de66eda8546a33403899fb508bee582f1d9e1628ec0695
[vout] => 1
[scriptPubKey] => 0014194eef88d8428a4af66177779d0844d66d743e5d
[amount] => 0.000560
[address] => tb1qr98wlzxcg29y4anpwame6zzy6ekhg0jadfmrgr
[redeemScript] =>
) // this i'm not able to spend.
[1] => Array
(
[txid] => 5bda1b65ff7cb3c80f09f797debb2bf1749d22332e984ba6377a0c7cac30aed9
[vout] => 0
[scriptPubKey] => 00141f09edebd56ffadd0c1834d048c8a416d5418f68
[amount] => 0.100000
[address] => tb1qruy7m674dlad6rqcxngy3j9yzm25rrmgm9x3d5
[redeemScript] =>
)
)
https://testnet.blockchain.info/tx/108544730bfaeccca0de66eda8546a33403899fb508bee582f1d9e1628ec0695
Erstelltes Transaktions-Hex:
02000000029506ec28169e1d2f58ee8b50fb993840336a54a8ed66dea0ccecfa0b734485100100000000ffffffffd9ae30ac7c0c7a37a64b982e33229d74f12bbbde97f7090fc8b37cff651bda5b0000000000ffffffff02404b4c0000000000160014943a52d24537d96360fb533fdc7183a92963f9c7e8c54c0000000000160014f41ddffe9582cdf5841b332f8f3751f8c1514dd300000000
SignrawTransaction-Antwort:
Array
(
[hex] => 020000000001029506ec28169e1d2f58ee8b50fb993840336a54a8ed66dea0ccecfa0b734485100100000000ffffffffd9ae30ac7c0c7a37a64b982e33229d74f12bbbde97f7090fc8b37cff651bda5b0000000000ffffffff02404b4c0000000000160014943a52d24537d96360fb533fdc7183a92963f9c7e8c54c0000000000160014f41ddffe9582cdf5841b332f8f3751f8c1514dd302473044022042cb0cd01181cb2ec915bd5d981dbb197d2febb8acfbeae3c653747c8cf2b4b8022001e4ee55c7daa7197b4cd0948f4fb49b7660ecedb96e08e2220422e6485a0591012102b4592cc61c94b91c866ea6201885ce41f0f9cbc4a762c614799dfb854b6e18d50247304402204b475a5a61184aa46d1db9e22797c3084d409fffe608ceedaf3b6af7e2a9c2a002206404b55c0ba8b902d4bd48db115dd7d10befdc3cab57fdb42e2631e31c35070801210387844ba61f400e181004900f1ec59a3b310e4afd9a22d51cc8bc1a6631c057f500000000
[complete] => 1
)
Senddrawtransaction-Antwort:64: non-mandatory-script-verify-flag (Signature must be zero for failed CHECK(MULTI)SIG operation)
Zunächst einmal sind dies keine P2SH-P2WPKH, sondern normale P2WPKH-Ausgänge. Sie haben überhaupt nichts mit P2SH zu tun.
Das Problem hier ist wahrscheinlich, dass die Menge falsch ist. Wenn Sie die vorherigen Ausgabedaten selbst bereitstellen, sind die Beträge falsch. Sie haben es als 0,000560, aber der tatsächliche Betrag ist 0,00055999. Da sich Segwit auf den Betrag in der Signatur verpflichtet, bedeutet ein falscher Betrag, dass die signrawtransaction
erstellte Signatur ungültig ist, was zu diesem Fehler führt.
Adam