1
0
Fork
You've already forked transactions
0
Small commandline parsing a transaction and displaying details.
  • C++ 99.5%
  • QMake 0.5%
Find a file
2024年10月08日 15:45:10 +02:00
.gitignore Initial commit 2016年09月20日 21:27:21 +02:00
LICENSE Initial commit 2016年09月20日 21:27:21 +02:00
main.cpp Fix the txid printing for all input types. 2024年10月06日 19:42:04 +02:00
README.md Add readme 2024年09月05日 13:57:02 +02:00
StreamMethods.cpp Move Qt basic parser to the support dir. 2016年09月26日 17:49:16 +02:00
StreamMethods.h Move Qt basic parser to the support dir. 2016年09月26日 17:49:16 +02:00
Transaction.cpp whitespace 2024年10月08日 15:45:10 +02:00
Transaction.h Fix the txid printing for all input types. 2024年10月06日 19:42:04 +02:00
transactions.pro More old cleaning 2024年09月05日 13:36:38 +02:00

What is it?

It is a simple command line application that takes a transaction and prints all it can know about it.

Example:

$ transactions --rawtx 0200000002e2f5bcd6c4df8309130f1c7d91266a0f812e251d1acaf48783a0bb5b07637ac3000000006441896ef662a8f7720de89a3393d04c74f663364fb985bfe8d9388eec4c9ad0c3635c8d73cb301a0c422c421a7c8ab390c965e83508012d9954adb06884f69fae55612102bb2f64940415b2c6511d6290d2a8da06db708c2c1a8c19df0b3cecc338050b0700000000179b39b87cc0d3f8d4cf2eedf5f912d6390c4a6cb086047e84f485be2b088e4c01000000fd6f0110c98fd8662ecd0b0017cd0b00b97b000040ca4d7188535a9e8456bc05b5bb161b2e7502b7a9251bb5de0c7eaae2b5090dea40e430b8adb6b809b4a42a12239b88a8629771ced486970fa7c49a243ebcd9fc2102d09db08af1ff4e8453919cc866a4be427d7bfe18f2c05e5444c196fcf6fd2818004cf82103341a6fb68e883fb2c5ce0d0d186e9e09792839479bfb14adda2f498fc2dfaacf78009c635279827701219d54798277609dc0cf827701249dc0cf01147f785579a988557a5679567abb5479587f77547f75817c587f77547f7581a069c0ccc0c6a269c0cdc0c788c0d1c0ce88537a7ec0d28777776778519c6302e803c0ccc0c67b93a269c0cdc0c788c0d1c0ce88c0d2c0cf8777776778529c637b7cadc0cc022003a269c0cdc0c788c0d1c0ce88c0d2c0cf8777677c539dadc0cc022003a269c0cdc0c788c0d1c0ce88c0d2827701249dc0cf01147f75c0d201147f7b7b879169100000000000000000000000000000000087686868ffffffff022ed40200000000001976a9149ad0f528e1c26501c49f1186bb2f208038971ac488ac20030000000000006aef5059621a87a140da4d8f83e456630be833cc7d7664e43fbbf481da5c3dfcb6b06124763d932c30ca45715f9861dc205243f1520bfafac98fd8662ecd0b0017cd0b00b97b0000aa2076fbc08f5ba4bd098f0c0da12a13d5b229b68c6d7e3cbd197c90ec01ae116ab98729230000

gives output:


{
inputs :[
 {
 txid: c37a63075bbba08387f4ca1a1d252e810f6a26917d1c0f130983dfc4d6bcf5e2
 vout: 0
 script: OP_DATA_65 896ef662a8f7720de89a3393d04c74f663364fb985bfe8d9388eec4c9ad0c3635c8d73cb301a0c422c421a7c8ab390c965e83508012d9954adb06884f69fae5561
 OP_DATA_33 02bb2f64940415b2c6511d6290d2a8da06db708c2c1a8c19df0b3cecc338050b07
 lint: P2PKH (SIGHASH_ALL SIGHASH_UTXO SIGHASH_FORKID )
 }
 {
 txid: 4c8e082bbe85f4847e0486b06c4a0c39d612f9f5ed2ecfd4f8d3c07cb8399b17
 vout: 1
 sequence: ffffffff
 script: OP_DATA_16 c98fd8662ecd0b0017cd0b00b97b0000
 OP_DATA_64 ca4d7188535a9e8456bc05b5bb161b2e7502b7a9251bb5de0c7eaae2b5090dea40e430b8adb6b809b4a42a12239b88a8629771ced486970fa7c49a243ebcd9fc
 OP_DATA_33 02d09db08af1ff4e8453919cc866a4be427d7bfe18f2c05e5444c196fcf6fd2818
 OP_0 (push empty item to stack)
 OP_PUSHDATA1 248 2103341a6fb68e883fb2c5ce0d0d186e9e09792839479bfb14adda2f498fc2dfaacf78009c635279827701219d54798277609dc0cf827701249dc0cf01147f785579a988557a5679567abb5479587f77547f75817c587f77547f7581a069c0ccc0c6a269c0cdc0c788c0d1c0ce88537a7ec0d28777776778519c6302e803c0ccc0c67b93a269c0cdc0c788c0d1c0ce88c0d2c0cf8777776778529c637b7cadc0cc022003a269c0cdc0c788c0d1c0ce88c0d2c0cf8777677c539dadc0cc022003a269c0cdc0c788c0d1c0ce88c0d2827701249dc0cf01147f75c0d201147f7b7b879169100000000000000000000000000000000087686868
 \_
 P2SH likely. Trying to parse. Ignore errors if this isn't p2sh
 OP_DATA_33 03341a6fb68e883fb2c5ce0d0d186e9e09792839479bfb14adda2f498fc2dfaacf
 OP_OVER
 OP_0 (push empty item to stack)
 OP_NUMEQUAL
 OP_IF
 OP_2 (pushes 2 on stack)
 OP_PICK
 OP_SIZE
 OP_NIP
 OP_DATA_1 21
 OP_NUMEQUALVERIFY
 OP_4 (pushes 4 on stack)
 OP_PICK
 OP_SIZE
 OP_NIP
 OP_16 (pushes 16 on stack)
 OP_NUMEQUALVERIFY
 OP_INPUTINDEX
 OP_UTXOTOKENCOMMITMENT
 OP_SIZE
 OP_NIP
 OP_DATA_1 24
 OP_NUMEQUALVERIFY
 OP_INPUTINDEX
 OP_UTXOTOKENCOMMITMENT
 OP_DATA_1 14
 OP_SPLIT
 OP_OVER
 OP_5 (pushes 5 on stack)
 OP_PICK
 OP_HASH160 
 OP_EQUALVERIFY
 OP_5 (pushes 5 on stack)
 OP_ROLL
 OP_6 (pushes 6 on stack)
 OP_PICK
 OP_6 (pushes 6 on stack)
 OP_ROLL
 OP_CHECKDATASIGVERIFY
 OP_4 (pushes 4 on stack)
 OP_PICK
 OP_8 (pushes 8 on stack)
 OP_SPLIT
 OP_NIP
 OP_4 (pushes 4 on stack)
 OP_SPLIT
 OP_DROP
 OP_BIN2NUM
 OP_SWAP
 OP_8 (pushes 8 on stack)
 OP_SPLIT
 OP_NIP
 OP_4 (pushes 4 on stack)
 OP_SPLIT
 OP_DROP
 OP_BIN2NUM
 OP_GREATERTHAN
 OP_VERIFY
 OP_INPUTINDEX
 OP_OUTPUTVALUE
 OP_INPUTINDEX
 OP_UTXOVALUE
 OP_GREATERTHANOREQUAL
 OP_VERIFY
 OP_INPUTINDEX
 OP_OUTPUTBYTECODE
 OP_INPUTINDEX
 OP_UTXOBYTECODE
 OP_EQUALVERIFY
 OP_INPUTINDEX
 OP_OUTPUTTOKENCATEGORY
 OP_INPUTINDEX
 OP_INPUTINDEX
 OP_EQUALVERIFY
 OP_3 (pushes 3 on stack)
 OP_ROLL
 OP_CAT
 OP_INPUTINDEX
 OP_OUTPUTTOKENCOMMITMENT
 OP_EQUAL
 OP_NIP
 OP_NIP
 OP_ELSE
 OP_OVER
 OP_TRUE
 OP_NUMEQUAL
 OP_IF
 OP_DATA_2 e803
 OP_INPUTINDEX
 OP_OUTPUTVALUE
 OP_INPUTINDEX
 OP_UTXOVALUE
 OP_ROT
 OP_ADD
 OP_GREATERTHANOREQUAL
 OP_VERIFY
 OP_INPUTINDEX
 OP_OUTPUTBYTECODE
 OP_INPUTINDEX
 OP_UTXOBYTECODE
 OP_EQUALVERIFY
 OP_INPUTINDEX
 OP_OUTPUTTOKENCATEGORY
 OP_INPUTINDEX
 OP_INPUTINDEX
 OP_EQUALVERIFY
 OP_INPUTINDEX
 OP_OUTPUTTOKENCOMMITMENT
 OP_INPUTINDEX
 OP_UTXOTOKENCOMMITMENT
 OP_EQUAL
 OP_NIP
 OP_NIP
 OP_ELSE
 OP_OVER
 OP_2 (pushes 2 on stack)
 OP_NUMEQUAL
 OP_IF
 OP_ROT
 OP_SWAP
 OP_CHECKSIGVERIFY
 OP_INPUTINDEX
 OP_OUTPUTVALUE
 OP_DATA_2 2003
 OP_GREATERTHANOREQUAL
 OP_VERIFY
 OP_INPUTINDEX
 OP_OUTPUTBYTECODE
 OP_INPUTINDEX
 OP_UTXOBYTECODE
 OP_EQUALVERIFY
 OP_INPUTINDEX
 OP_OUTPUTTOKENCATEGORY
 OP_INPUTINDEX
 OP_INPUTINDEX
 OP_EQUALVERIFY
 OP_INPUTINDEX
 OP_OUTPUTTOKENCOMMITMENT
 OP_INPUTINDEX
 OP_UTXOTOKENCOMMITMENT
 OP_EQUAL
 OP_NIP
 OP_ELSE
 OP_SWAP
 OP_3 (pushes 3 on stack)
 OP_NUMEQUALVERIFY
 OP_CHECKSIGVERIFY
 OP_INPUTINDEX
 OP_OUTPUTVALUE
 OP_DATA_2 2003
 OP_GREATERTHANOREQUAL
 OP_VERIFY
 OP_INPUTINDEX
 OP_OUTPUTBYTECODE
 OP_INPUTINDEX
 OP_UTXOBYTECODE
 OP_EQUALVERIFY
 OP_INPUTINDEX
 OP_OUTPUTTOKENCATEGORY
 OP_INPUTINDEX
 OP_INPUTINDEX
 OP_EQUALVERIFY
 OP_INPUTINDEX
 OP_OUTPUTTOKENCOMMITMENT
 OP_SIZE
 OP_NIP
 OP_DATA_1 24
 OP_NUMEQUALVERIFY
 OP_INPUTINDEX
 OP_UTXOTOKENCOMMITMENT
 OP_DATA_1 14
 OP_SPLIT
 OP_DROP
 OP_INPUTINDEX
 OP_OUTPUTTOKENCOMMITMENT
 OP_DATA_1 14
 OP_SPLIT
 OP_ROT
 OP_ROT
 OP_EQUAL
 OP_NOT
 OP_VERIFY
 OP_DATA_16 00000000000000000000000000000000
 OP_EQUAL
 OP_ENDIF
 OP_ENDIF
 OP_ENDIF
 }
]
outputs: [
 {
 amount: 185390
 script: OP_DUP
 OP_HASH160 
 OP_DATA_20 9ad0f528e1c26501c49f1186bb2f208038971ac4
 OP_EQUALVERIFY
 OP_CHECKSIG
 }
 {
 amount: 800
 script: TokenId: b0b6fc3d5cda81f4bb3fe464767dcc33e80b6356e4838f4dda40a1871a625950
 +- 36 byte committment
 OP_HASH256 
 OP_DATA_32 76fbc08f5ba4bd098f0c0da12a13d5b229b68c6d7e3cbd197c90ec01ae116ab9
 OP_EQUAL
 }
]
version: 2
nLockTime: 9001
}
size: 710
txid: 33b5da80c90db7a291a3a56670be65466879fa3f31a94cc0cacb83f584e3b854