mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-26 23:13:25 +00:00
Improve text gui. Disable print_error when text gui is used.
This commit is contained in:
parent
cdb52c30d2
commit
5e28ccd09d
5 changed files with 68 additions and 54 deletions
12
electrum
12
electrum
|
@ -20,11 +20,6 @@ import re
|
||||||
import sys
|
import sys
|
||||||
import optparse
|
import optparse
|
||||||
|
|
||||||
try:
|
|
||||||
from lib.util import print_error
|
|
||||||
except ImportError:
|
|
||||||
from electrum.util import print_error
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import ecdsa
|
import ecdsa
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -36,9 +31,9 @@ except ImportError:
|
||||||
sys.exit("Error: AES does not seem to be installed. Try 'sudo pip install slowaes'")
|
sys.exit("Error: AES does not seem to be installed. Try 'sudo pip install slowaes'")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from lib import Wallet, Interface, WalletSynchronizer, WalletVerifier, format_satoshis, mnemonic, SimpleConfig, pick_random_server
|
from lib import *
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from electrum import Wallet, Interface, WalletSynchronizer, WalletVerifier, format_satoshis, mnemonic, SimpleConfig, pick_random_server
|
from electrum import *
|
||||||
|
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
|
@ -143,8 +138,11 @@ if __name__ == '__main__':
|
||||||
parser.add_option("-c", "--changeaddr", dest="change_addr", default=None, help="set the change address for payto/mktx. default is a spare address, or the source address if it's not in the wallet")
|
parser.add_option("-c", "--changeaddr", dest="change_addr", default=None, help="set the change address for payto/mktx. default is a spare address, or the source address if it's not in the wallet")
|
||||||
parser.add_option("-s", "--server", dest="server", default=None, help="set server host:port:protocol, where protocol is t or h")
|
parser.add_option("-s", "--server", dest="server", default=None, help="set server host:port:protocol, where protocol is t or h")
|
||||||
parser.add_option("-p", "--proxy", dest="proxy", default=None, help="set proxy [type:]host[:port], where type is socks4,socks5 or http")
|
parser.add_option("-p", "--proxy", dest="proxy", default=None, help="set proxy [type:]host[:port], where type is socks4,socks5 or http")
|
||||||
|
#parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="show debugging information")
|
||||||
options, args = parser.parse_args()
|
options, args = parser.parse_args()
|
||||||
|
|
||||||
|
#set_verbosity(options.verbose)
|
||||||
|
|
||||||
# config is an object passed to the various constructors (wallet, interface, gui)
|
# config is an object passed to the various constructors (wallet, interface, gui)
|
||||||
config = SimpleConfig(options)
|
config = SimpleConfig(options)
|
||||||
wallet = Wallet(config)
|
wallet = Wallet(config)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from util import format_satoshis
|
from util import format_satoshis, print_error, set_verbosity
|
||||||
from wallet import Wallet, WalletSynchronizer
|
from wallet import Wallet, WalletSynchronizer
|
||||||
from verifier import WalletVerifier
|
from verifier import WalletVerifier
|
||||||
from interface import Interface, pick_random_server, DEFAULT_SERVERS
|
from interface import Interface, pick_random_server, DEFAULT_SERVERS
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import curses, datetime
|
import curses, datetime
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from electrum import format_satoshis
|
from util import format_satoshis, set_verbosity
|
||||||
|
|
||||||
|
|
||||||
WIDTH=150
|
WIDTH=150
|
||||||
|
|
||||||
|
@ -16,6 +15,8 @@ class ElectrumGui:
|
||||||
curses.start_color()
|
curses.start_color()
|
||||||
self.stdscr.keypad(1)
|
self.stdscr.keypad(1)
|
||||||
self.stdscr.border(0)
|
self.stdscr.border(0)
|
||||||
|
self.maxy, self.maxx = self.stdscr.getmaxyx()
|
||||||
|
set_verbosity(False)
|
||||||
|
|
||||||
def server_list_changed(self):
|
def server_list_changed(self):
|
||||||
pass
|
pass
|
||||||
|
@ -24,56 +25,63 @@ class ElectrumGui:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def print_history(self):
|
def print_history(self):
|
||||||
lines = self.wallet.get_tx_history()
|
|
||||||
b = 0
|
b = 0
|
||||||
i = 0
|
messages = []
|
||||||
for i in range(20):
|
for line in self.wallet.get_tx_history():
|
||||||
if i < len(lines):
|
v = line['value']
|
||||||
line = lines[i]
|
b += v
|
||||||
v = line['value']
|
try:
|
||||||
b += v
|
time_str = str( datetime.datetime.fromtimestamp( line['timestamp']))
|
||||||
try:
|
except:
|
||||||
time_str = str( datetime.datetime.fromtimestamp( line['timestamp']))
|
print line['timestamp']
|
||||||
except:
|
time_str = 'pending'
|
||||||
print line['timestamp']
|
label = line.get('label')
|
||||||
time_str = 'pending'
|
if not label: label = line['tx_hash']
|
||||||
label = line.get('label')
|
else: label = label + ' '*(64 - len(label) )
|
||||||
if not label: label = line['tx_hash']
|
messages.append( time_str + " " + label + " " + format_satoshis(v)+ " "+ format_satoshis(b) )
|
||||||
else: label = label + ' '*(64 - len(label) )
|
|
||||||
msg = time_str + " " + label + " " + format_satoshis(v)+ " "+ format_satoshis(b)
|
self.print_list(messages, "%19s %64s %14s %10s"%("Date", "Description", "Amount", "Balance"))
|
||||||
else:
|
|
||||||
msg = ""
|
|
||||||
|
|
||||||
msg += " "*(WIDTH - len(msg))
|
|
||||||
self.stdscr.addstr( i+2, 1, msg[0:WIDTH])
|
|
||||||
|
|
||||||
def print_balance(self):
|
def print_balance(self):
|
||||||
c, u = self.wallet.get_balance()
|
c, u = self.wallet.get_balance()
|
||||||
msg = "Balance: %f %f"%(Decimal( c ) / 100000000 , Decimal( u ) / 100000000)
|
msg = "Balance: %f"%(Decimal( c ) / 100000000)
|
||||||
self.stdscr.addstr( 22, 1, msg)
|
if u:
|
||||||
self.stdscr.addstr( 24, 1, "History Send Receive Contacts Quit")
|
msg += " [%f unconfirmed]"%(Decimal( u ) / 100000000)
|
||||||
|
self.stdscr.addstr( self.maxy -3, 2, msg)
|
||||||
|
self.stdscr.addstr( self.maxy -1, 1, " History Send Receive Contacts Quit ")
|
||||||
|
|
||||||
def print_contacts(self):
|
def print_contacts(self):
|
||||||
for i in range(20):
|
messages = map(lambda addr: "%30s %30s "%(addr, self.wallet.labels.get(addr,"")), self.wallet.addressbook)
|
||||||
if i < len(self.wallet.addressbook):
|
self.print_list(messages, "%19s %25s "%("Address", "Label"))
|
||||||
addr = self.wallet.addressbook[i]
|
|
||||||
msg = "%30s %30s "%(addr, self.wallet.labels.get(addr,"") )
|
|
||||||
else:
|
|
||||||
msg = ""
|
|
||||||
|
|
||||||
msg += " "*(WIDTH - len(msg))
|
|
||||||
self.stdscr.addstr( i+2, 1, msg[0:WIDTH])
|
|
||||||
|
|
||||||
def print_receive(self):
|
def print_receive(self):
|
||||||
for i in range(20):
|
messages = map(lambda addr: "%30s %30s "%(addr, self.wallet.labels.get(addr,"")), self.wallet.addresses)
|
||||||
if i < len(self.wallet.addresses):
|
self.print_list(messages, "%19s %25s "%("Address", "Label"))
|
||||||
addr = self.wallet.addresses[i]
|
|
||||||
msg = "%30s %30s "%(addr, self.wallet.labels.get(addr,"") )
|
|
||||||
else:
|
|
||||||
msg = ""
|
|
||||||
|
|
||||||
msg += " "*(WIDTH - len(msg))
|
def print_send_dialog(self):
|
||||||
self.stdscr.addstr( i+2, 1, msg[0:WIDTH])
|
self.stdscr.clear()
|
||||||
|
self.stdscr.addstr( 3, 2, "Pay to")
|
||||||
|
self.stdscr.addstr( 5, 2, "Description")
|
||||||
|
self.stdscr.addstr( 7, 2, "Amount")
|
||||||
|
self.stdscr.addstr( 9, 2, "Fee")
|
||||||
|
|
||||||
|
while True:
|
||||||
|
curses.echo()
|
||||||
|
s = self.stdscr.getstr(3, 15)
|
||||||
|
curses.noecho()
|
||||||
|
|
||||||
|
if s: break
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def print_list(self, list, firstline):
|
||||||
|
firstline += " "*(self.maxx -2 - len(firstline))
|
||||||
|
self.stdscr.addstr( 1, 1, firstline )
|
||||||
|
for i in range(self.maxy-6):
|
||||||
|
msg = list[i] if i < len(list) else ""
|
||||||
|
msg += " "*(self.maxx -2 - len(msg))
|
||||||
|
self.stdscr.addstr( i+2, 1, msg[0:self.maxx - 2])
|
||||||
|
|
||||||
def refresh(self):
|
def refresh(self):
|
||||||
self.print_balance()
|
self.print_balance()
|
||||||
|
@ -88,6 +96,7 @@ class ElectrumGui:
|
||||||
if c == ord('h'): self.print_history()
|
if c == ord('h'): self.print_history()
|
||||||
if c == ord('c'): self.print_contacts()
|
if c == ord('c'): self.print_contacts()
|
||||||
if c == ord('r'): self.print_receive()
|
if c == ord('r'): self.print_receive()
|
||||||
|
if c == ord('s'): self.print_send_dialog()
|
||||||
elif c == ord('q'): break
|
elif c == ord('q'): break
|
||||||
elif c == curses.KEY_HOME: x = y = 0
|
elif c == curses.KEY_HOME: x = y = 0
|
||||||
self.refresh()
|
self.refresh()
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
import os, sys
|
import os, sys
|
||||||
import platform
|
import platform
|
||||||
|
|
||||||
|
is_verbose = True
|
||||||
|
|
||||||
|
def set_verbosity(b):
|
||||||
|
global is_verbose
|
||||||
|
is_verbose = b
|
||||||
|
|
||||||
def print_error(*args):
|
def print_error(*args):
|
||||||
|
if not is_verbose: return
|
||||||
# Stringify args
|
# Stringify args
|
||||||
args = [str(item) for item in args]
|
args = [str(item) for item in args]
|
||||||
sys.stderr.write(" ".join(args) + "\n")
|
sys.stderr.write(" ".join(args) + "\n")
|
||||||
|
|
|
@ -215,7 +215,7 @@ class WalletVerifier(threading.Thread):
|
||||||
# undo verifications
|
# undo verifications
|
||||||
for tx_hash, tx_height in self.verified_tx.items():
|
for tx_hash, tx_height in self.verified_tx.items():
|
||||||
if tx_height >= height:
|
if tx_height >= height:
|
||||||
print "redoing", tx_hash
|
print_error("redoing", tx_hash)
|
||||||
self.verified_tx.pop(tx_hash)
|
self.verified_tx.pop(tx_hash)
|
||||||
if tx_hash in self.merkle_roots: self.merkle_roots.pop(tx_hash)
|
if tx_hash in self.merkle_roots: self.merkle_roots.pop(tx_hash)
|
||||||
# return False to request previous header.
|
# return False to request previous header.
|
||||||
|
@ -269,7 +269,7 @@ class WalletVerifier(threading.Thread):
|
||||||
if os.path.exists(filename):
|
if os.path.exists(filename):
|
||||||
f = open(filename,'rb+')
|
f = open(filename,'rb+')
|
||||||
else:
|
else:
|
||||||
print "creating file", filename
|
print_error( "creating file", filename )
|
||||||
f = open(filename,'wb+')
|
f = open(filename,'wb+')
|
||||||
f.seek(index*2016*80)
|
f.seek(index*2016*80)
|
||||||
h = f.write(chunk)
|
h = f.write(chunk)
|
||||||
|
|
Loading…
Add table
Reference in a new issue