tnew command: getrawtransaction - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit b75f8d795aaaae46435efb824b36a2d3886d4519 DIR parent 41878dc5e0c3e126854c9869410f2a48338cc496 HTML Author: thomasv <thomasv@gitorious> Date: Sun, 15 Sep 2013 11:19:48 +0200 new command: getrawtransaction Diffstat: M electrum | 2 +- M gui/gui_classic/main_window.py | 2 +- M lib/commands.py | 9 +++++++-- M lib/network.py | 3 ++- M lib/verifier.py | 2 -- 5 files changed, 11 insertions(+), 7 deletions(-) --- DIR diff --git a/electrum b/electrum t@@ -356,7 +356,7 @@ if __name__ == '__main__': wallet.update_password(seed, password, new_password) else: - cmd_runner = Commands(wallet, interface) + cmd_runner = Commands(wallet, network) func = eval('cmd_runner.' + cmd) cmd_runner.password = password try: DIR diff --git a/gui/gui_classic/main_window.py b/gui/gui_classic/main_window.py t@@ -1285,7 +1285,7 @@ class ElectrumWindow(QMainWindow): console.updateNamespace({'wallet' : self.wallet, 'network' : self.network, 'gui':self}) console.updateNamespace({'util' : util, 'bitcoin':bitcoin}) - c = commands.Commands(self.wallet, self.network.interface, lambda: self.console.set_json(True)) + c = commands.Commands(self.wallet, self.network, lambda: self.console.set_json(True)) methods = {} def mkfunc(f, method): return lambda *args: apply( f, (method, args, self.password_dialog )) DIR diff --git a/lib/commands.py b/lib/commands.py t@@ -53,6 +53,7 @@ register_command('getbalance', 0, 1, False, False, 'Return the balance register_command('getaddressbalance', 1, 1, False, False, 'Return the balance of an address', 'getbalance <address>') register_command('getaddresshistory', 1, 1, False, False, 'Return the transaction history of an address', 'getaddresshistory <address>') register_command('getconfig', 1, 1, False, True, 'Return a configuration variable', 'getconfig <name>', config_options) +register_command('getrawtransaction', 1, 2, False, False, 'Retrieve a transaction', 'getrawtransaction <txhash> <height>') register_command('getseed', 0, 0, True, True, 'Print the generation seed of your wallet.') register_command('help', 0, 1, False, True, 'Prints this help') register_command('history', 0, 0, False, False, 'Returns the transaction history of your wallet') t@@ -81,9 +82,9 @@ register_command('verifymessage', 3,-1, False, True, 'Verifies a signatu class Commands: - def __init__(self, wallet, interface, callback = None): + def __init__(self, wallet, network, callback = None): self.wallet = wallet - self.interface = interface + self.network = network self._callback = callback self.password = None t@@ -324,4 +325,8 @@ class Commands: if options_syntax: print_msg("options:\n" + options_syntax) return None + def getrawtransaction(self, tx_hash, height = 0): + height = int(height) + return self.network.retrieve_transaction(tx_hash, height) + DIR diff --git a/lib/network.py b/lib/network.py t@@ -182,7 +182,8 @@ class Network(threading.Thread): def retrieve_transaction(self, tx_hash, tx_height=0): import transaction r = self.interface.synchronous_get([ ('blockchain.transaction.get',[tx_hash, tx_height]) ])[0] - return transaction.Transaction(r) + if r: + return transaction.Transaction(r) def parse_servers(self, result): DIR diff --git a/lib/verifier.py b/lib/verifier.py t@@ -35,7 +35,6 @@ class TxVerifier(threading.Thread): self.blockchain = network.blockchain self.interface = network.interface self.transactions = {} # requested verifications (with height sent by the requestor) - #self.interface.register_channel('txverifier') self.verified_tx = storage.get('verified_tx3',{}) # height, timestamp of verified transactions self.merkle_roots = storage.get('merkle_roots',{}) # hashed by me self.lock = threading.Lock() t@@ -92,7 +91,6 @@ class TxVerifier(threading.Thread): def stop(self): with self.lock: self.running = False - #self.interface.poke('verifier') def is_running(self): with self.lock: return self.running