Problem beim Ausgeben von Geldern von der P2WSH-Adresse: non-mandatory-script-verify-flag

Ich habe versucht, hier und auf BTT eine Antwort zu finden, aber bisher ohne Glück.

Ich habe Probleme beim Erstellen einer Transaktion zum Ausgeben von einer P2WSH Adresse , die ich erstellt und an die ich Geld gesendet habe.

Ich habe meinen Code auf diesem Beispiel basiert: https://github.com/petertodd/python-bitcoinlib/blob/master/examples/spend-p2wsh-txout.py

Mein Code ist hier zu finden: https://gist.github.com/i0x0ff/b29b2307b4e9ce316a4d6533464cf7a1

P2WSH- Adresse mit Geldern :tb1qhxy36055wje22qkxn4mtjl4k9vykcnq7avgtu3smnw6xpdxmw0qqjvywtn

Ich möchte Geld senden an:tb1qffmyyg5v9atg3zzvlafzzu22ht6cexj7xt8sx4yl0f6c3zktzqrq8hempj

Beim Broadcasten der Transaktion erhalte ich folgende Fehlermeldung:

{
  "code": -26,
  "message": "non-mandatory-script-verify-flag (Signature must be zero for failed CHECK(MULTI)SIG operation)",
}

Zu beachten ist, dass ich diese Transaktion auf SIGNET durchführe und den Code in der python-bitcoinlib geändert habe, um SIGNET zu unterstützen. Ich beabsichtige, eine PR zu machen, nachdem ich dieses Problem herausgefunden habe.

Wenn es weitere Informationen gibt, die ich zur Verfügung stellen kann, um es jedem einfacher zu machen, zu helfen, lassen Sie mich wissen, was sonst noch nützlich wäre. Ich beginne gerade mit der Entwicklung von Bitcoin und werde auch meinen Prozess, meine Erkenntnisse und meine Erkenntnisse dokumentieren.

Könnten Sie die rohen Transaktionsbytes (in Hex) teilen, die Sie gesendet haben?
Natürlich übertrage ich Folgendes: 0100000000010179ebc0d716496a2803828657074196c073bf9be23a43604530deec6a7f6ef6660100000000ffffffff011c250000000000002200204a7642228c2f5688884cff5221714abaf58c9a5e32cf03549f7a75888acb10060247304402203fb1c7b9d5c93716968ef7e010923f123b816a6ff255ff401b3dbf090c69f430022044509913f254e107d32696cd930c6ff6a4968fc84ed7417cb80f100c9562bcc5012321029bed8c78bc0f557742303db2fb3c48e8b5025cf11cdf1cdea764805f234a443cac00000000Ich übertrage mit: explorer.bc-2.jp/tx/push
Ihre Unterschrift ist ungültig. Wenn OP_CheckSigausgeführt wird, wird es falseauf den Stapel verschoben, weshalb Sie wahrscheinlich diese Fehlermeldung erhalten.
Danke schön. Ich versuche, den Code durchzulesen und mit meinen Notizen zu vergleichen, kann aber nicht herausfinden, welche Schritte ich falsch mache, die zu einer ungültigen Signatur führen. Werde weiter graben.

Antworten (1)

Antwort für alle, die darauf stoßen könnten. Mein verknüpftes Skript ist ungültig. Ich habe versucht, Gelder von txout auszugeben, auf die ich keinen Zugriff habe.

Das verknüpfte Skript funktioniert wie erwartet und wenn Sie seinen Schritten folgen, funktioniert es wie erwartet. Bitte beachten Sie, dass python-bitcoinlibSignet nicht unterstützt wird und ich lokal Änderungen daran vorgenommen habe.