- C++ 99.5%
- QMake 0.5%
| .gitignore | Initial commit | |
| LICENSE | Initial commit | |
| main.cpp | Fix the txid printing for all input types. | |
| README.md | Add readme | |
| StreamMethods.cpp | Move Qt basic parser to the support dir. | |
| StreamMethods.h | Move Qt basic parser to the support dir. | |
| Transaction.cpp | whitespace | |
| Transaction.h | Fix the txid printing for all input types. | |
| transactions.pro | More old cleaning | |
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