à partir de wif, j'ai dérivé la clé de pub compressée : "035476e55521c97cf0489e6c57893a99d67e84d306a69e6b6904f324c11b3cef8d".
programme témoin créé : "813798fcae182d1a36c6b4bb5f69e03bb9ec4124".
script créé : "0014813798fcae182d1a36c6b4bb5f69e03bb9ec4124" et sigscript du script qui doit être spécifié pour dépenser cette sortie : "160014813798fcae182d1a36c6b4bb5f69e03bb9ec4124".
entrée tx ajoutée : {hash : "863fea23ba1c176bda5e360b0be25cacc405877aa3e46a3e1c60196c3b6cd7b6", vout : 0, signatureScript : scriptSig, témoin : nul}
créé pkscript pour l'adresse "14s9ocrbTX3ZCybtcN1jmtdxxJwKuyM3Em" (p2sh-p2wpkh) : "a914809800f62119afdcf2317882eda5efd7a9a2163487".
ajout de txout {montant : 11 000, scriptPubKey : pkscript}
txSigHashes calculé := txscript.NewTxSigHashes(tx)
décodé l'indice utxo en octets : "a914bb4d332112bde9787ac2da5954ee5a2c5fbada6987".
signature de témoin dérivée : wit := txscript.WitnessSignature(tx, txSigHashes, 0, montant, indice, txscript.SigHashAll, wif.PrivKey, true) résultat : "3045022100bae83fd9e87751350a09bc4c120b29decadb13fb389541c3025a8982906 035476e55521c97cf0489e6c57893a99d67e84d306a69e6b6904f3 24c11b3cef8d".
ajout de la signature du témoin à tx.TxIn.Témoin
Tx signé sérialisé : "01000000000101b6d76c3b6c19601c3e6ae4a37a8705c4ac5ce20b0b365eda6b171cba23ea3f860000000017160014813798fcae182d1a36c6b4bb5f69e 03bb9ec4124ffffffff01f82a000000000000434104b2534d287f2d9fa908319557298591143fecbd3f6497d6d11f283b80c3248c35f580ff376805418c3610256bc102c 0beb3e9f745d493aed81127f5d4a4921bebac02483045022100bae83fd9e87751350a09bc4c120b29decadb13fb389541c3025a8982906602d5022005dc688901fd27b7 "
Même si j'ai suivi toutes les règles pour créer cette transaction, toute tentative de la pousser dans le réseau principal (via Blockcypher et d'autres services) a échoué à cause de cette erreur : "Erreur de validation de la transaction : erreur d'exécution du script pour l'entrée 0 faisant référence à 863fea23ba1c176bda5e360b0be25cacc405877aa3e46a3e1c60196c3b6cd7b6 à 0 : le script n'était PAS vérifié avec succès"
Ma question est donc la suivante : où ai-je mal fait ? Quelle étape est mauvaise et comment la faire correctement ?