Standardizing message format and implementing stderr for errors
[electrum-nvc.git] / lib / wallet.py
index 5de094c..8c0c8bc 100644 (file)
@@ -17,7 +17,7 @@
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 
 
-import sys, base64, os, re, hashlib, copy, operator, ast, threading, random
+import sys, base64, os, re, hashlib, copy, operator, ast, threading, random, getpass
 import aes, ecdsa
 from ecdsa.util import string_to_number, number_to_string
 
@@ -147,6 +147,27 @@ def ASecretToSecret(key):
 
 ########### end pywallet functions #######################
 
+# get password routine
+def prompt_password(prompt, confirm=True):
+    if sys.stdin.isatty():
+        password = getpass.getpass(prompt)
+
+        if password and confirm:
+            password2 = getpass.getpass("Confirm: ")
+
+            if password != password2:
+                sys.stderr.write("Error: Passwords do not match.\n")
+                sys.stderr.flush()
+                sys.exit(1)
+
+    else:
+        password = raw_input(prompt)
+
+    if not password:
+        password = None
+
+    return password
+
 # URL decode
 _ud = re.compile('%([0-9a-hA-H]{2})', re.MULTILINE)
 urldecode = lambda x: _ud.sub(lambda m: chr(int(m.group(1), 16)), x)
@@ -683,7 +704,7 @@ class Wallet:
             self.prioritized_addresses = d.get('prioritized_addresses',[])
             self.expert_mode = d.get('expert_mode',False)
             self.gap_limit = d.get('gap_limit',5)
-            self.debug_server = d.get('debug_server',True)
+            self.debug_server = d.get('debug_server',False)
         except:
             raise BaseException("cannot read wallet file")
 
@@ -900,7 +921,7 @@ class Wallet:
 
         if not self.use_change and not change_addr:
             change_addr = inputs[0][0]
-            print "sending change to", change_addr
+            print "Sending change to", change_addr
 
         outputs = self.choose_tx_outputs( to_address, amount, fee, total, change_addr )
         s_inputs = self.sign_inputs( inputs, outputs, password )