tx.py: add g.dcoin global var for token unit display
This commit is contained in:
parent
b2229644d6
commit
80ed8d1d4c
3 changed files with 26 additions and 16 deletions
|
|
@ -65,6 +65,7 @@ class g(object):
|
|||
# Constant vars - some of these might be overriden in opts.py, but they don't change thereafter
|
||||
|
||||
coin = 'BTC'
|
||||
dcoin = None # the display coin unit
|
||||
token = ''
|
||||
debug = False
|
||||
debug_opts = False
|
||||
|
|
@ -114,7 +115,7 @@ class g(object):
|
|||
common_opts = (
|
||||
'color','no_license','rpc_host','rpc_port','testnet','rpc_user','rpc_password',
|
||||
'daemon_data_dir','force_256_color','regtest','coin','bob','alice',
|
||||
'accept_defaults'
|
||||
'accept_defaults','token'
|
||||
)
|
||||
required_opts = (
|
||||
'quiet','verbose','debug','outdir','echo_passphrase','passwd_file','stdout',
|
||||
|
|
|
|||
16
mmgen/tw.py
16
mmgen/tw.py
|
|
@ -79,6 +79,8 @@ watch-only wallet using '{}-addrimport' and then re-run this program.
|
|||
self.do_sort()
|
||||
self.total = self.get_total_coin()
|
||||
|
||||
g.dcoin = g.dcoin or g.coin
|
||||
|
||||
def get_total_coin(self):
|
||||
return sum(i.amt for i in self.unspent)
|
||||
|
||||
|
|
@ -178,7 +180,7 @@ watch-only wallet using '{}-addrimport' and then re-run this program.
|
|||
if self.sort_key == k and getattr(a,k) == getattr(b,k):
|
||||
b.skip = (k,'addr')[k=='twmmid']
|
||||
|
||||
out = [self.hdr_fmt.format(' '.join(self.sort_info()),g.coin,self.total.hl())]
|
||||
out = [self.hdr_fmt.format(' '.join(self.sort_info()),g.dcoin,self.total.hl())]
|
||||
if g.chain != 'mainnet': out += ['Chain: '+green(g.chain.upper())]
|
||||
if self.show_txid:
|
||||
fs = u' {n:%s} {t:%s} {v:2} {a} {A} {c:<}' % (col1_w,tx_w)
|
||||
|
|
@ -188,7 +190,7 @@ watch-only wallet using '{}-addrimport' and then re-run this program.
|
|||
t='TXid'.ljust(tx_w - 5) + ' Vout',
|
||||
v='',
|
||||
a='Address'.ljust(addr_w),
|
||||
A='Amt({})'.format(g.coin).ljust(g.proto.coin_amt.max_prec+4),
|
||||
A='Amt({})'.format(g.dcoin).ljust(g.proto.coin_amt.max_prec+4),
|
||||
c=('Confs','Age(d)')[self.show_days])]
|
||||
|
||||
for n,i in enumerate(unsp):
|
||||
|
|
@ -231,7 +233,7 @@ watch-only wallet using '{}-addrimport' and then re-run this program.
|
|||
t='Tx ID,Vout',
|
||||
a='Address'.ljust(addr_w),
|
||||
m='MMGen ID'.ljust(mmid_w+1),
|
||||
A='Amount({})'.format(g.coin),
|
||||
A='Amount({})'.format(g.dcoin),
|
||||
c='Confs',
|
||||
g='Age(d)',
|
||||
l='Label')]
|
||||
|
|
@ -257,13 +259,13 @@ watch-only wallet using '{}-addrimport' and then re-run this program.
|
|||
make_timestr(),
|
||||
' '.join(self.sort_info(include_group=False)),
|
||||
'\n'.join(out),
|
||||
g.coin,
|
||||
g.dcoin,
|
||||
self.total.hl(color=color))
|
||||
return self.fmt_print
|
||||
|
||||
def display_total(self):
|
||||
fs = '\nTotal unspent: {} {} ({} outputs)'
|
||||
msg(fs.format(self.total.hl(),g.coin,len(self.unspent)))
|
||||
msg(fs.format(self.total.hl(),g.dcoin,len(self.unspent)))
|
||||
|
||||
def get_idx_and_label_from_user(self):
|
||||
msg('')
|
||||
|
|
@ -290,7 +292,7 @@ watch-only wallet using '{}-addrimport' and then re-run this program.
|
|||
|
||||
def view_and_sort(self,tx):
|
||||
fs = 'Total to spend, excluding fees: {} {}\n\n'
|
||||
txos = fs.format(tx.sum_outputs().hl(),g.coin) if tx.outputs else ''
|
||||
txos = fs.format(tx.sum_outputs().hl(),g.dcoin) if tx.outputs else ''
|
||||
prompt = txos + self.prompt.strip()
|
||||
self.display()
|
||||
msg(prompt)
|
||||
|
|
@ -321,7 +323,7 @@ watch-only wallet using '{}-addrimport' and then re-run this program.
|
|||
elif reply == 'm': self.show_mmid = not self.show_mmid
|
||||
elif reply == 'p':
|
||||
msg('')
|
||||
of = '{}-{}[{}].out'.format(self.dump_fn_pfx,g.coin,
|
||||
of = '{}-{}[{}].out'.format(self.dump_fn_pfx,g.dcoin,
|
||||
','.join(self.sort_info(include_group=False)).lower())
|
||||
write_data_to_file(of,self.format_for_printing(),'{} listing'.format(self.desc))
|
||||
m = yellow("Data written to '{}'".format(of))
|
||||
|
|
|
|||
23
mmgen/tx.py
23
mmgen/tx.py
|
|
@ -287,9 +287,12 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
self.blockcount = 0
|
||||
self.chain = None
|
||||
self.coin = None
|
||||
self.dcoin = None
|
||||
self.caller = caller
|
||||
self.locktime = None
|
||||
|
||||
g.dcoin = g.dcoin or g.coin
|
||||
|
||||
if filename:
|
||||
self.parse_tx_file(filename,coin_sym_only=coin_sym_only,silent_open=silent_open)
|
||||
if coin_sym_only: return
|
||||
|
|
@ -639,9 +642,10 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
self.outputs.check_coin_mismatch()
|
||||
def amt_to_str(d):
|
||||
return dict([(k,str(d[k]) if k == 'amt' else d[k]) for k in d])
|
||||
coin_id = '' if g.coin == 'BTC' else g.coin + ('' if g.coin == g.dcoin else ':'+g.dcoin)
|
||||
lines = [
|
||||
'{}{} {} {} {} {}{}'.format(
|
||||
(g.coin+' ','')[g.coin=='BTC'],
|
||||
(coin_id+' ' if coin_id else ''),
|
||||
self.chain.upper() if self.chain else 'Unknown',
|
||||
self.txid,
|
||||
self.send_amt,
|
||||
|
|
@ -947,7 +951,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
tn = ('','.testnet')[g.proto.is_testnet()]
|
||||
self.fn = u'{}{}[{!s}{}{}]{x}{}.{}'.format(
|
||||
self.txid,
|
||||
('-'+g.coin,'')[g.coin=='BTC'],
|
||||
('-'+g.dcoin,'')[g.coin=='BTC'],
|
||||
self.send_amt,
|
||||
('',',{}'.format(self.fee_abs2rel(self.get_fee_from_tx())))[self.is_rbf()],
|
||||
('',',tl={}'.format(tl))[bool(tl)],
|
||||
|
|
@ -1018,12 +1022,12 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
if terse:
|
||||
out += '{:3} {} {} {} {}\n'.format(n+1,
|
||||
e.addr.fmt(color=True,width=addr_w),
|
||||
mmid_fmt,e.amt.hl(),g.coin)
|
||||
mmid_fmt,e.amt.hl(),g.dcoin)
|
||||
else:
|
||||
icommon = [
|
||||
((n+1,'')[ip],'address:',e.addr.fmt(color=True,width=addr_w) + ' '+mmid_fmt),
|
||||
('','comment:',e.label.hl() if e.label else ''),
|
||||
('','amount:','{} {}'.format(e.amt.hl(),g.coin))]
|
||||
('','amount:','{} {}'.format(e.amt.hl(),g.dcoin))]
|
||||
items = [(n+1, 'tx,vout:','{},{}'.format(e.txid,e.vout))] + icommon + [
|
||||
('','confirmations:','{} (around {} days)'.format(confs,days) if blockcount else '')
|
||||
] if ip else icommon + [
|
||||
|
|
@ -1069,7 +1073,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
out = (self.txview_hdr_fs,self.txview_hdr_fs_short)[bool(terse)].format(
|
||||
i=self.txid.hl(),
|
||||
a=self.send_amt.hl(),
|
||||
c=g.coin,
|
||||
c=g.dcoin,
|
||||
t=self.timestamp,
|
||||
r=(red('False'),green('True'))[self.is_rbf()],
|
||||
s=self.marked_signed(color=True),
|
||||
|
|
@ -1078,7 +1082,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
if self.chain != 'mainnet':
|
||||
out += green('Chain: {}\n'.format(self.chain.upper()))
|
||||
if self.coin_txid:
|
||||
out += '{} TxID: {}\n'.format(g.coin,self.coin_txid.hl())
|
||||
out += '{} TxID: {}\n'.format(g.dcoin,self.coin_txid.hl())
|
||||
enl = ('\n','')[bool(terse)]
|
||||
out += enl
|
||||
if self.label:
|
||||
|
|
@ -1091,7 +1095,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
o=self.sum_outputs().hl(),
|
||||
a=self.format_view_abs_fee(),
|
||||
r=self.format_view_rel_fee(terse),
|
||||
d='WIP',c=g.coin)
|
||||
d=g.dcoin,c=g.coin)
|
||||
|
||||
if opt.verbose: out += self.format_view_verbose_footer()
|
||||
|
||||
|
|
@ -1158,6 +1162,9 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
self.locktime = int(metadata.pop()[3:])
|
||||
|
||||
self.coin = metadata.pop(0) if len(metadata) == 6 else 'BTC'
|
||||
if ':' in self.coin:
|
||||
self.coin,self.dcoin = self.coin.split(':')
|
||||
|
||||
if coin_sym_only: return
|
||||
|
||||
if len(metadata) == 5:
|
||||
|
|
@ -1310,7 +1317,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
|
|||
self.send_amt = self.sum_outputs()
|
||||
|
||||
msg('Total amount to spend: {}'.format(
|
||||
('Unknown','{} {}'.format(self.send_amt.hl(),g.coin))[bool(self.send_amt)]
|
||||
('Unknown','{} {}'.format(self.send_amt.hl(),g.dcoin))[bool(self.send_amt)]
|
||||
))
|
||||
|
||||
change_amt = self.get_inputs_from_user(tw)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue