From fbac4cceebc063d0b7257de8646dd6ff16b0bba9 Mon Sep 17 00:00:00 2001 From: philemon Date: Thu, 5 Dec 2013 00:14:14 +0400 Subject: [PATCH] ...and transaction sending new file: mmgen-txsend --- mmgen-txsend | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 mmgen-txsend diff --git a/mmgen-txsend b/mmgen-txsend new file mode 100755 index 00000000..b34c0761 --- /dev/null +++ b/mmgen-txsend @@ -0,0 +1,79 @@ +#!/usr/bin/env python +# +# mmgen = Multi-Mode GENerator, command-line Bitcoin cold storage solution +# Copyright (C) 2013 by philemon +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +""" +mmgen-txsend: Broadcast a Bitcoin transaction to the network +""" + +import sys +#from hashlib import sha256 + +from mmgen.Opts import * +from mmgen.license import * +from mmgen.config import * +from mmgen.tx import * +from mmgen.utils import msg,check_infile,get_lines_from_file,confirm_or_exit + +prog_name = sys.argv[0].split("/")[-1] + +help_data = { + 'prog_name': prog_name, + 'desc': "Sign a Bitcoin transaction generated by mmgen-txcreate", + 'usage': "[opts] ", + 'options': """ +-h, --help Print this help message +-q, --quiet Suppress warnings; overwrite files without asking +""" +} + +short_opts = "hq" +long_opts = "help","quiet" + +opts,cmd_args = process_opts(sys.argv,help_data,short_opts,long_opts) + +if len(cmd_args) == 1: + infile = cmd_args[0] + check_infile(infile) +else: usage(help_data) + +# Begin execution + +c = connect_to_bitcoind() + +tx_sig = get_lines_from_file(infile,"signed transaction")[0] + +from binascii import unhexlify +try: unhexlify(tx_sig) +except: + msg("Invalid transaction data") + sys.exit(3) + +msg("Successfully opened signed transaction file '%s'" % infile) + +confirm_or_exit("", "broadcast this transaction to the network") + +msg("Sending transaction") + +try: + tx = c.sendrawtransaction(tx_sig) +except: + msg("Unable to send transaction") + sys.exit(3) + +msg("Transaction sent: %s" % tx) + +print_sent_tx_to_file(tx)