Does exist some library for decode/encode raw transaction?

0

I want to parse raw transaction into JSON then change some values and encode back to hex. JSON like this:

{
"addresses": [
    "346vcZZ6QV4nr68fybMEuA7qxxQeyKWoPS"
], 
"block_height": -1, 
"block_index": -1, 
"confirmations": 0, 
"double_spend": false, 
"fees": 0, 
"hash": "e09c37cca11208a8c372a1e397dcff0382b4d78cdde157ce8824d028dc185a80", 
"inputs": [
    {
        "age": 0, 
        "output_index": 1, 
        "prev_hash": "c15bb773cdd5bb63a65766f5680684ce991c126698db0aa020e3058081742874", 
        "script_type": "empty", 
        "sequence": 4294967295
    }
], 
"outputs": [
    {
        "addresses": [
            "346vcZZ6QV4nr68fybMEuA7qxxQeyKWoPS"
        ], 
        "script": "a9141a75cd53e9740caadbf83cbefdd087cdceb978a487", 
        "script_type": "pay-to-script-hash", 
        "value": 14000000
    }
], 
"preference": "low", 
"received": "2018-08-21T08:05:02.841875145Z", 
"relayed_by": "54.160.159.32", 
"size": 83, 
"total": 14000000, 
"ver": 2, 
"vin_sz": 1, 
"vout_sz": 1
}

I've tried to use bitcoinj but it returns very simple object without a lot of fields.

Andr1i

Posted 2018-08-21T08:17:49.350

Reputation: 21

What are you trying to change? Most of the fields in the json don't actually exist in a transactionRaghav Sood 2018-08-21T10:01:17.273

Answers

0

Try this Python library (Disclaimer: I wrote it)

from btctools import Transaction

>>> tx = Transaction.from_hex('0100000000010153159b2a077d8dfbe4dca4b6b3a9e0ccedb4962ca73280526e6a1eeb1e8e9adc2a00000000ffffffff04a08f3e00000000001976a914de755835002260891962f1e671a2bf7605788d0f88ac0046c3230000000017a914c7c9b5f51244f39f81ec01146eb0d1d98d4bbd4c872052a6000000000017a91469f376599f0ffcaacd6a79854b1ee99513bb7b35870006f21600000000220020701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d04004830450221009360af3ec3f9d4ae8acc3ab2213f3f9344cb322b4ea447490bb297a9a4c1d207022067027b032e54b3efb9e885604349ec4f1b6446eed8ed208c6fe6eeae9ace921a0148304502210097cf932eb37513c201b577472d70f1553f338d6439e9181607ec75f2e83fa148022052368c88085838521efc64cf509b95dd53d8c825089acd3ff681e74d3a2b4959016952210266edd4ef2953675faf0662c088a7f620935807d200d65387290b31648e51e253210372ce38027ee95c98cdc54172964fa3aecf9f24b85c139d3d203365d6b691d0502103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae00000000')
>>> tx
Transaction(inputs=1, outputs=4)

>>> tx.json()
{'locktime': 0,
 'size': 448,
 'txid': '0f6787fe25b631c73db598769eff70d616645eb61ad8c6f7408bc4341917aca5',
 'version': 1,
 'vin': [{'scriptSig': {'hex': ''},
   'sequence': 4294967295,
   'txid': 'dc9a8e1eeb1e6a6e528032a72c96b4edcce0a9b3b6a4dce4fb8d7d072a9b1553',
   'vout': 42,
   'witness': ['',
    '30450221009360af3ec3f9d4ae8acc3ab2213f3f9344cb322b4ea447490bb297a9a4c1d207022067027b032e54b3efb9e885604349ec4f1b6446eed8ed208c6fe6eeae9ace921a01',
    '304502210097cf932eb37513c201b577472d70f1553f338d6439e9181607ec75f2e83fa148022052368c88085838521efc64cf509b95dd53d8c825089acd3ff681e74d3a2b495901',
    '52210266edd4ef2953675faf0662c088a7f620935807d200d65387290b31648e51e253210372ce38027ee95c98cdc54172964fa3aecf9f24b85c139d3d203365d6b691d0502103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae']}],
 'vout': [{'scriptPubKey': {'asm': 'OP_DUP OP_HASH160 de755835002260891962f1e671a2bf7605788d0f OP_EQUALVERIFY OP_CHECKSIG',
    'hex': '76a914de755835002260891962f1e671a2bf7605788d0f88ac'},
   'value': 0.041},
  {'n': 1,
   'scriptPubKey': {'asm': 'OP_HASH160 c7c9b5f51244f39f81ec01146eb0d1d98d4bbd4c OP_EQUAL',
    'hex': 'a914c7c9b5f51244f39f81ec01146eb0d1d98d4bbd4c87'},
   'value': 6.0},
  {'n': 2,
   'scriptPubKey': {'asm': 'OP_HASH160 69f376599f0ffcaacd6a79854b1ee99513bb7b35 OP_EQUAL',
    'hex': 'a91469f376599f0ffcaacd6a79854b1ee99513bb7b3587'},
   'value': 0.109},
  {'n': 3,
   'scriptPubKey': {'asm': 'OP_0 701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d',
    'hex': '0020701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d'},
   'value': 3.8496}]}

Mike D

Posted 2018-08-21T08:17:49.350

Reputation: 1 571