From 90cd03e09306dff8519de673cbd1f515c3a23398 Mon Sep 17 00:00:00 2001 From: thomasv Date: Fri, 3 Feb 2012 17:38:43 +0100 Subject: [PATCH] receipts. 'list' command to list variables. --- client/electrum | 9 +++++++-- client/gui.py | 1 + client/wallet.py | 7 +++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/client/electrum b/client/electrum index 6048cce00..0166c3916 100755 --- a/client/electrum +++ b/client/electrum @@ -30,7 +30,7 @@ urldecode = lambda x: _ud.sub(lambda m: chr(int(m.group(1), 16)), x) if __name__ == '__main__': - known_commands = ['help', 'validateaddress', 'balance', 'contacts', 'create', 'payto', 'sendtx', 'password', 'newaddress', 'addresses', 'history', 'label', 'gui', 'mktx','seed','import','signmessage','verifymessage'] + known_commands = ['help', 'validateaddress', 'balance', 'contacts', 'create', 'payto', 'sendtx', 'password', 'newaddress', 'addresses', 'history', 'label', 'gui', 'mktx','seed','import','signmessage','verifymessage','list'] usage = "usage: %prog [options] command args\nCommands: "+ (', '.join(known_commands)) @@ -147,7 +147,7 @@ if __name__ == '__main__': cmd = 'help' # open session - if cmd not in ['password', 'mktx', 'history', 'label', 'contacts', 'help', 'validateaddress', 'signmessage', 'verifymessage']: + if cmd not in ['password', 'mktx', 'history', 'label', 'contacts', 'help', 'validateaddress', 'signmessage', 'verifymessage', 'list']: wallet.interface.new_session(wallet.all_addresses(), wallet.electrum_version) wallet.update() wallet.save() @@ -237,6 +237,11 @@ if __name__ == '__main__': for addr in wallet.addressbook: print addr, " ", wallet.labels.get(addr) + elif cmd == 'list': + objname = args[1] + obj = eval("wallet."+objname) + print obj + elif cmd in [ 'addresses']: for addr in wallet.all_addresses(): if options.show_all or not wallet.is_change(addr): diff --git a/client/gui.py b/client/gui.py index f8839f211..b8b8b7a0f 100644 --- a/client/gui.py +++ b/client/gui.py @@ -786,6 +786,7 @@ class BitcoinGUI: return try: self.wallet.verify_message(signing_address, signature, cmd ) + self.wallet.receipt = (signing_address, signature, cmd) except: self.show_message('Warning: the URI contains a bad signature.\nThe identity of the recipient cannot be verified.') payto = amount = label = identity = '' diff --git a/client/wallet.py b/client/wallet.py index bd46aaaca..0be15b308 100644 --- a/client/wallet.py +++ b/client/wallet.py @@ -238,6 +238,8 @@ class Wallet: self.history = {} self.labels = {} # labels for addresses and transactions self.aliases = {} # aliases for addresses + self.receipts = {} # signed URIs + self.receipt = None # next receipt self.addressbook = [] # outgoing addresses, for payments # not saved @@ -477,6 +479,7 @@ class Wallet: 'contacts':self.addressbook, 'imported_keys':self.imported_keys, 'aliases':self.aliases, + 'receipts':self.receipts, } f = open(self.path,"w") f.write( repr(s) ) @@ -508,6 +511,7 @@ class Wallet: self.addressbook = d.get('contacts') self.imported_keys = d.get('imported_keys',{}) self.aliases = d.get('aliases',{}) + self.receipts = d.get('receipts',{}) except: raise BaseException(upgrade_msg) @@ -705,6 +709,9 @@ class Wallet: out = self.interface.send_tx(tx) if out != tx_hash: return False, "error: " + out + if self.receipt: + self.receipts[tx_hash] = self.receipt + self.receipt = None return True, out def get_alias(self, x):