mmnode-blocks-info: add totals stats

This commit is contained in:
The MMGen Project 2021-03-22 14:32:58 +00:00
commit db87c8e62e
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2

View file

@ -95,7 +95,7 @@ class BlocksInfo:
)
fs_lsqueeze2 = ('interval',)
all_stats = ['avg','range','diff']
all_stats = ['avg','totals','range','diff']
dfl_stats = ['range','diff']
noindent_stats = ['avg']
@ -522,6 +522,26 @@ class BlocksInfo:
fs = ''.join(self.gen_fs(self.fnames,fill=skip,add_name=True)).strip()
return ('averages', ('Averages:', (fs, dict(gen())) ))
async def create_totals_stats(self):
coin = self.rpc.proto.coin
fields = {
'interval': ('Solve Time: {} h/m/s', secs_to_dhms),
'subsidy': ('Subsidy: {} %s' % coin, self.fmt_funcs['su']),
'totalfee': ('Fees: {} %s' % coin, self.fmt_funcs['tf']),
'earnings': ('Subsidy+Fees: {} %s' % coin, self.fmt_funcs['tf']),
'nTx': ('nTx: {}', int),
'inputs': ('Inputs: {}', int),
'outputs': ('Outputs: {}', int),
'utxo_inc': ('UTXO change: {:<+}', int),
}
fnames = list( set(fields) & set(self.fnames) )
vals = dict( ( name, sum(getattr(blk,name) for blk in self.res) ) for name in fnames )
if 'subsidy' in vals and 'totalfee' in vals:
vals['earnings'] = vals['subsidy'] + vals['totalfee']
fnames.append('earnings')
res = [( v[0], k, v[1], vals[k] ) for k,v in fields.items() if k in fnames]
return ( 'totals', ['Totals:'] + res )
def process_stats_pre(self,i):
if self.fnames or i != 0:
Msg('')