Skip to content

Commit a9af734

Browse files
OttoAllmendingerllm-git
andcommitted
fix(wasm-utxo): display txid as string instead of reversed bytes
Change txid representation from buffer to string format in PSBT inspection. Previously, txids were displayed as byte arrays in reverse order. Affects txid, ntxid, wtxid, prev_txid, and non_witness_utxo fields. Issue: BTC-0 Co-authored-by: llm-git <llm-git@ttll.de>
1 parent 397599a commit a9af734

3 files changed

Lines changed: 28 additions & 29 deletions

File tree

packages/wasm-utxo/cli/test/fixtures/psbt_bitcoin_fullsigned.txt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,37 @@ psbt: None
22
├─ tx: None
33
│ ├─ version: 2i32
44
│ ├─ lock_time: 0u32
5-
│ ├─ txid: a74380ecd12e5c6e66f608c790daa4be6870f499581b3951cd65b4dcdfae7316 (32 bytes)
6-
│ ├─ ntxid: a74380ecd12e5c6e66f608c790daa4be6870f499581b3951cd65b4dcdfae7316 (32 bytes)
7-
│ ├─ wtxid: a74380ecd12e5c6e66f608c790daa4be6870f499581b3951cd65b4dcdfae7316 (32 bytes)
5+
│ ├─ txid: 1673aedfdcb465cd51391b5899f47068bea4da90c708f6666e5c2ed1ec8043a7
6+
│ ├─ ntxid: 1673aedfdcb465cd51391b5899f47068bea4da90c708f6666e5c2ed1ec8043a7
7+
│ ├─ wtxid: 1673aedfdcb465cd51391b5899f47068bea4da90c708f6666e5c2ed1ec8043a7
88
│ ├─ inputs: 6u64
99
│ │ ├─ input_0: None
10-
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
10+
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
1111
│ │ │ ├─ prev_vout: 0u32
1212
│ │ │ ├─ sequence: 4294967294u32
1313
│ │ │ └─ script_sig: (0 bytes)
1414
│ │ ├─ input_1: None
15-
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
15+
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
1616
│ │ │ ├─ prev_vout: 1u32
1717
│ │ │ ├─ sequence: 4294967294u32
1818
│ │ │ └─ script_sig: (0 bytes)
1919
│ │ ├─ input_2: None
20-
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
20+
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
2121
│ │ │ ├─ prev_vout: 2u32
2222
│ │ │ ├─ sequence: 4294967294u32
2323
│ │ │ └─ script_sig: (0 bytes)
2424
│ │ ├─ input_3: None
25-
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
25+
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
2626
│ │ │ ├─ prev_vout: 3u32
2727
│ │ │ ├─ sequence: 4294967294u32
2828
│ │ │ └─ script_sig: (0 bytes)
2929
│ │ ├─ input_4: None
30-
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
30+
│ │ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
3131
│ │ │ ├─ prev_vout: 4u32
3232
│ │ │ ├─ sequence: 4294967294u32
3333
│ │ │ └─ script_sig: (0 bytes)
3434
│ │ └─ input_5: None
35-
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
35+
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
3636
│ │ ├─ prev_vout: 5u32
3737
│ │ ├─ sequence: 4294967294u32
3838
│ │ └─ script_sig: (0 bytes)
@@ -84,7 +84,7 @@ psbt: None
8484
├─ version: 0u32
8585
├─ inputs: 6u64
8686
│ ├─ input_0: None
87-
│ │ ├─ non_witness_utxo: 4d1eb5dbcc8a214b5b448ce4497225c44a2963445fc5b1f5bd4526a36749677d (32 bytes)
87+
│ │ ├─ non_witness_utxo: 7d674967a32645bdf5b1c55f4463294ac4257249e48c445b4b218accdbb51e4d
8888
│ │ ├─ redeem_script: 210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac (35 bytes)
8989
│ │ │ └─ asm: OP_PUSHBYTES_33 0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095 OP_CHECKSIG
9090
│ │ ├─ signatures: 1u64
@@ -94,7 +94,7 @@ psbt: None
9494
│ │ ├─ sighash_type: 1u32
9595
│ │ └─ sighash_type: SIGHASH_ALL
9696
│ ├─ input_1: None
97-
│ │ ├─ non_witness_utxo: 15d5aba694f147bb8c4f12bbf60d331b183576c20bc2b779f44f35d2e3468906 (32 bytes)
97+
│ │ ├─ non_witness_utxo: 068946e3d2354ff479b7c20bc27635181b330df6bb124f8cbb47f194a6abd515
9898
│ │ ├─ redeem_script: 522102dd86907236b77a3bb7b64ce668cae4a25d48253f32e6ee0c3a34eaf89becfe142103f7b6baf47cbc61cda968fe73d78cb3bce0c88e7a9bc9abba5dac739d25b2046721033c34f9b46ff91498c3a56b8b2a8b752ecd0079337028bdd4e48045f8c6560e0253ae (105 bytes)
9999
│ │ │ └─ asm: OP_PUSHNUM_2 OP_PUSHBYTES_33 02dd86907236b77a3bb7b64ce668cae4a25d48253f32e6ee0c3a34eaf89becfe14 OP_PUSHBYTES_33 03f7b6baf47cbc61cda968fe73d78cb3bce0c88e7a9bc9abba5dac739d25b20467 OP_PUSHBYTES_33 033c34f9b46ff91498c3a56b8b2a8b752ecd0079337028bdd4e48045f8c6560e02 OP_PUSHNUM_3 OP_CHECKMULTISIG
100100
│ │ ├─ signatures: 2u64

packages/wasm-utxo/cli/test/fixtures/tx_bitcoin_fullsigned.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
tx: None
22
├─ version: 2i32
33
├─ lock_time: 0u32
4-
├─ txid: a4552cc9ccc8db06c214f1ae814e23f729c7697ff0a79e0de3aab9ec14eebfe4 (32 bytes)
5-
├─ ntxid: a74380ecd12e5c6e66f608c790daa4be6870f499581b3951cd65b4dcdfae7316 (32 bytes)
6-
├─ wtxid: a079ce928e643ded05e589af154aec4d821911a252e95a9c0eb1ae276722787a (32 bytes)
4+
├─ txid: e4bfee14ecb9aae30d9ea7f07f69c729f7234e81aef114c206dbc8ccc92c55a4
5+
├─ ntxid: 1673aedfdcb465cd51391b5899f47068bea4da90c708f6666e5c2ed1ec8043a7
6+
├─ wtxid: 7a78226727aeb10e9c5ae952a21119824dec4a15af89e505ed3d648e92ce79a0
77
├─ inputs: 6u64
88
│ ├─ input_0: None
9-
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
9+
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
1010
│ │ ├─ prev_vout: 0u32
1111
│ │ ├─ sequence: 4294967294u32
1212
│ │ └─ script_sig: 47304402203780ddb8eaddcbf7f2328996f9a827eab7fcca9e7e8e30e07a922f64f0d7af5a0220203ce27c1194638fbb2155f2e635293966e636a586362cfadbdaadcbdb7bac610123210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac (108 bytes)
1313
│ ├─ input_1: None
14-
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
14+
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
1515
│ │ ├─ prev_vout: 1u32
1616
│ │ ├─ sequence: 4294967294u32
1717
│ │ └─ script_sig: 0047304402206f0db45dc265718b44e1c0a5f5f986bd55c304fee8470d47baaa58b5905cb92d0220587758f798d87db5df57ea0424740e818f796be3381ee3dd25e18fa58f6d311901473044022056d4c049b474025c7c1d34125b02b2f3806b1007d42fba3cdb030383e2807b43022043246ddaad87b30e48d9c8a47341d292ff8a9890d595d7aa02773eb64ac33e77014c69522102dd86907236b77a3bb7b64ce668cae4a25d48253f32e6ee0c3a34eaf89becfe142103f7b6baf47cbc61cda968fe73d78cb3bce0c88e7a9bc9abba5dac739d25b2046721033c34f9b46ff91498c3a56b8b2a8b752ecd0079337028bdd4e48045f8c6560e0253ae (252 bytes)
1818
│ ├─ input_2: None
19-
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
19+
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
2020
│ │ ├─ prev_vout: 2u32
2121
│ │ ├─ sequence: 4294967294u32
2222
│ │ ├─ script_sig: 2200208224f2e5de25d91de7ae08f8744f98ac30a7c86e9c0fcf169279e520c2b8313a (35 bytes)
@@ -26,7 +26,7 @@ tx: None
2626
│ │ ├─ item_2: 304402206a7419475c4d18dfdb2fce7a0dfaefc8b1aad1af41d38431aa935d29bb7d91e0022077252e9ef649298616e7086006fa838578047c88257c31defe01a934d8edba1801 (71 bytes)
2727
│ │ └─ item_3: 522102d5878a4d1c23ea735d7146ef2e1094f08d118bf0e20ea09366077c6b086c49d62102804dae97fd1acbb46d2816f530f83119dccdcaf3f5dd4c4dabb8edccd04bc65c21022ddee7d0b3f7f894fca44650a72137908eb843432e6874cb873cc0f2d27a54d653ae (105 bytes)
2828
│ ├─ input_3: None
29-
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
29+
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
3030
│ │ ├─ prev_vout: 3u32
3131
│ │ ├─ sequence: 4294967294u32
3232
│ │ ├─ script_sig: (0 bytes)
@@ -36,7 +36,7 @@ tx: None
3636
│ │ ├─ item_2: 3044022066ab38e9f4ad3becba92a8a755acd761d469aaa96b689e86317bcab8f826a99302205f8a78d0cd2674fdf0fbcf709f2898f4543c0907a8670afbb743502d15aa15ca01 (71 bytes)
3737
│ │ └─ item_3: 522102e91c97d46914b51550679e3d2fa32f4faa3de76663d1fcc2d86ead788e852d642102ab00aad496ca72ffac27a32820636eaa4f8fe59cdc09500097a6d221bd00c20e2102794b2cbc176d694d8160b3c42d640b125aee2ce92d8c1f3055ab90b8ec4f800053ae (105 bytes)
3838
│ ├─ input_4: None
39-
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
39+
│ │ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
4040
│ │ ├─ prev_vout: 4u32
4141
│ │ ├─ sequence: 4294967294u32
4242
│ │ ├─ script_sig: (0 bytes)
@@ -46,7 +46,7 @@ tx: None
4646
│ │ ├─ item_2: 20bce391a0851301fad14c722167c15d78d55819f21f7ad246eacfd29840ff75c3ad207ea42acbb09754f509aeca81e87c37060b74d1146ef57ada9fcb78f1078f5467ac (68 bytes)
4747
│ │ └─ item_3: c1c8dcc9df48aeb7699370d871dbd787da545aeb249b4f46be8f6dceb26e411899aa0761196e48e5e008fa70fa593639a09acf1cb8a1761af965c2f78ad0d8e68c (65 bytes)
4848
│ └─ input_5: None
49-
│ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000 (32 bytes)
49+
│ ├─ prev_txid: 0000000000000000000000000000000000000000000000000000000000000000
5050
│ ├─ prev_vout: 5u32
5151
│ ├─ sequence: 4294967294u32
5252
│ ├─ script_sig: (0 bytes)

packages/wasm-utxo/src/inspect/psbt.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/// This contains low-level parsing of PSBT into a node structure suitable for display
22
use crate::address::from_output_script_with_network;
33
use crate::bitcoin::consensus::Decodable;
4-
use crate::bitcoin::hashes::Hash;
54
use crate::bitcoin::psbt::Psbt;
65
use crate::bitcoin::{ScriptBuf, Transaction};
76
use crate::fixed_script_wallet::bitgo_psbt::{
@@ -250,7 +249,7 @@ fn tx_input_to_node(input: &crate::bitcoin::TxIn, index: usize) -> Node {
250249

251250
input_node.add_child(Node::new(
252251
"prev_txid",
253-
Primitive::Buffer(input.previous_output.txid.to_byte_array().to_vec()),
252+
Primitive::String(input.previous_output.txid.to_string()),
254253
));
255254
input_node.add_child(Node::new(
256255
"prev_vout",
@@ -325,7 +324,7 @@ fn psbt_input_to_node(input: &crate::bitcoin::psbt::Input, index: usize, network
325324
if let Some(utxo) = &input.non_witness_utxo {
326325
input_node.add_child(Node::new(
327326
"non_witness_utxo",
328-
Primitive::Buffer(utxo.compute_txid().to_byte_array().to_vec()),
327+
Primitive::String(utxo.compute_txid().to_string()),
329328
));
330329
}
331330

@@ -483,15 +482,15 @@ pub fn tx_to_node(tx: &Transaction, network: Network) -> Node {
483482
));
484483
tx_node.add_child(Node::new(
485484
"txid",
486-
Primitive::Buffer(tx.compute_txid().to_byte_array().to_vec()),
485+
Primitive::String(tx.compute_txid().to_string()),
487486
));
488487
tx_node.add_child(Node::new(
489488
"ntxid",
490-
Primitive::Buffer(tx.compute_ntxid().to_byte_array().to_vec()),
489+
Primitive::String(tx.compute_ntxid().to_string()),
491490
));
492491
tx_node.add_child(Node::new(
493492
"wtxid",
494-
Primitive::Buffer(tx.compute_wtxid().to_byte_array().to_vec()),
493+
Primitive::String(tx.compute_wtxid().to_string()),
495494
));
496495
tx_node.add_child(tx_inputs_to_node(&tx.input));
497496
tx_node.add_child(tx_outputs_to_node(&tx.output, network));
@@ -529,15 +528,15 @@ pub fn zcash_tx_to_node(parts: &ZcashTransactionParts, network: Network) -> Node
529528
));
530529
tx_node.add_child(Node::new(
531530
"txid",
532-
Primitive::Buffer(tx.compute_txid().to_byte_array().to_vec()),
531+
Primitive::String(tx.compute_txid().to_string()),
533532
));
534533
tx_node.add_child(Node::new(
535534
"ntxid",
536-
Primitive::Buffer(tx.compute_ntxid().to_byte_array().to_vec()),
535+
Primitive::String(tx.compute_ntxid().to_string()),
537536
));
538537
tx_node.add_child(Node::new(
539538
"wtxid",
540-
Primitive::Buffer(tx.compute_wtxid().to_byte_array().to_vec()),
539+
Primitive::String(tx.compute_wtxid().to_string()),
541540
));
542541
tx_node.add_child(tx_inputs_to_node(&tx.input));
543542
tx_node.add_child(tx_outputs_to_node(&tx.output, network));

0 commit comments

Comments
 (0)