ID de transaction incorrect en cours de calcul pour une transaction p2wpkh

  • Transaction signée P2WPKH avec un ID de transaction incorrect en cours de calcul
  • Calcul de l'ID de transaction en suivant la transaction signée brute
  • Codes d'implémentation en Rust pour la sérialisation des entrées et sorties

Transaction signée RAW (signet)

Identifiant de transaction renvoyé.

« txid » : «  », « wtxid » :  » af45885a144c »

ID de transaction incorrect en cours de calcul pour une transaction p2wpkh

ID de transaction calculé en hachant la transaction signée brute

J'ai suivi les formats de transaction ci-dessus. La transaction brute signée suit les spécifications données dans le format de transaction brute des développeurs bicoin.

Voici les codes d'implémentation dans Rust

sorties : Vec) -&gt //ajout de la version let version : u32 = 0x00000002version laissez inputs_length  : u32 = inputsinputs_length pour l'extend_from_slice(&amplen() as u32 outputs_length pour la sortie dans les sorties { txoutput) txlocktime laissez txid = sha256_hash(&amptx)) 32] = match txid arr panic tx // inverse txid laissez mut reversed_txid = [0i]

Sérialisation de sortie

[u8] soit valhue  : u64 = valeur comme u64 to_le_bytes()value_in_8_bytes_in_little_endian)len() comme u64  sortiescript_length_varint) //scriptpubkey {p2wpkh et p2wsh} sortie //OK }

Sérialisation des entrées

[u8] //txid let reversed_txid  : Vec = txidreversed_txid)to_le_bytes()index_in_little_endian_bytes)push(0x00)sequence entrée //OK }