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 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) -> //ajout de la version let version : u32 = 0x00000002version laissez inputs_length : u32 = inputsinputs_length pour l'extend_from_slice(&len() as u32 outputs_length pour la sortie dans les sorties { txoutput) txlocktime laissez txid = sha256_hash(&tx)) 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 }