# 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
########### 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)
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")
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 )