The monolithic tx.py module has been split into multiple modules, and a
clean separation of protocol-dependent and protocol-independent code has
been carried out.
- Protocol-independent base classes are located under `tx`.
- Protocol-dependent subclasses are under `base_proto/{name}/tx`.
- The code in `tx/__init__.py` loads the required module and returns an
initialized instance of the requested class.
34 lines
962 B
Python
Executable file
34 lines
962 B
Python
Executable file
#!/usr/bin/env python3
|
|
# Convert MMGen 'v2' transaction file (amounts as BTCAmt())
|
|
# to MMGen 'v3' (amounts as strings)
|
|
# v3 tx files were introduced with MMGen version 0.9.7
|
|
|
|
import sys,os
|
|
repo_root = os.path.split(os.path.abspath(os.path.dirname(sys.argv[0])))[0]
|
|
sys.path = [repo_root] + sys.path
|
|
|
|
from mmgen.common import *
|
|
|
|
opts_data = {
|
|
'text': {
|
|
'desc': "Convert MMGen transaction file from v2 format to v3 format",
|
|
'usage': "<tx file>",
|
|
'options': """
|
|
-h, --help Print this help message
|
|
-d, --outdir=d Output files to directory 'd' instead of working dir
|
|
-q, --quiet Write (and overwrite) files without prompting
|
|
-S, --stdout Write data to STDOUT instead of file
|
|
"""
|
|
}
|
|
}
|
|
|
|
cmd_args = opts.init(opts_data)
|
|
|
|
import asyncio
|
|
from mmgen.tx import CompletedTX
|
|
|
|
if len(cmd_args) != 1:
|
|
opts.usage()
|
|
|
|
tx = asyncio.run(CompletedTX(cmd_args[0],quiet_open=True))
|
|
tx.file.write(ask_tty=False,ask_overwrite=not opt.quiet,ask_write=not opt.quiet)
|