minor fixes and cleanups
This commit is contained in:
parent
b0d1a79468
commit
729dc369fd
5 changed files with 31 additions and 12 deletions
|
|
@ -36,7 +36,12 @@ class EthereumTrackingWallet(TrackingWallet):
|
|||
return addr in self.data_root
|
||||
|
||||
def init_empty(self):
|
||||
self.data = { 'coin': self.proto.coin, 'accounts': {}, 'tokens': {} }
|
||||
self.data = {
|
||||
'coin': self.proto.coin,
|
||||
'network': self.proto.network.upper(),
|
||||
'accounts': {},
|
||||
'tokens': {},
|
||||
}
|
||||
|
||||
def upgrade_wallet_maybe(self):
|
||||
|
||||
|
|
@ -70,6 +75,11 @@ class EthereumTrackingWallet(TrackingWallet):
|
|||
add_token_params_fields()
|
||||
upgraded = True
|
||||
|
||||
if not 'network' in self.data:
|
||||
ymsg(f'Upgrading {self.desc} (v3->v4: network field added)')
|
||||
self.data['network'] = self.proto.network.upper()
|
||||
upgraded = True
|
||||
|
||||
if upgraded:
|
||||
self.force_write()
|
||||
msg(f'{self.desc} upgraded successfully!')
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ class TrackingWallet(MMGenObject,metaclass=AsyncInit):
|
|||
self.mode = mode_save
|
||||
|
||||
@write_mode
|
||||
def write_changed(self,data):
|
||||
def write_changed(self,data,quiet):
|
||||
from ..fileutil import write_data_to_file
|
||||
write_data_to_file(
|
||||
self.tw_fn,
|
||||
|
|
@ -211,25 +211,24 @@ class TrackingWallet(MMGenObject,metaclass=AsyncInit):
|
|||
desc = f'{self.base_desc} data',
|
||||
ask_overwrite = False,
|
||||
ignore_opt_outdir = True,
|
||||
quiet = True,
|
||||
check_data = True,
|
||||
quiet = quiet,
|
||||
check_data = True, # die if wallet has been altered by another program
|
||||
cmp_data = self.orig_data )
|
||||
|
||||
self.orig_data = data
|
||||
|
||||
def write(self): # use 'check_data' to check wallet hasn't been altered by another program
|
||||
def write(self,quiet=True):
|
||||
if not self.use_tw_file:
|
||||
dmsg("'use_tw_file' is False, doing nothing")
|
||||
return
|
||||
dmsg(f'write(): checking if {self.desc} data has changed')
|
||||
|
||||
wdata = json.dumps(self.data)
|
||||
|
||||
if self.orig_data != wdata:
|
||||
if g.debug:
|
||||
print_stack_trace(f'TW DATA CHANGED {self!r}')
|
||||
print_diff(self.orig_data,wdata,from_json=True)
|
||||
self.write_changed(wdata)
|
||||
self.write_changed(wdata,quiet=quiet)
|
||||
elif g.debug:
|
||||
msg('Data is unchanged\n')
|
||||
|
||||
|
|
|
|||
|
|
@ -650,7 +650,7 @@ def get_subclasses(cls,names=False):
|
|||
yield j
|
||||
return tuple((c.__name__ for c in gen(cls)) if names else gen(cls))
|
||||
|
||||
def base_proto_subclass(cls,proto,subdir,modname):
|
||||
def base_proto_subclass(cls,proto,subdir,modname,sub_clsname=None):
|
||||
"""
|
||||
magic module loading and class selection
|
||||
"""
|
||||
|
|
@ -658,13 +658,17 @@ def base_proto_subclass(cls,proto,subdir,modname):
|
|||
proto.base_proto.lower(),
|
||||
subdir + '.' if subdir else '',
|
||||
modname )
|
||||
|
||||
clsname = (
|
||||
proto.mod_clsname
|
||||
+ ('Token' if proto.tokensym else '')
|
||||
+ cls.__name__ )
|
||||
|
||||
import importlib
|
||||
return getattr(importlib.import_module(modpath),clsname)
|
||||
if sub_clsname:
|
||||
return getattr(getattr(importlib.import_module(modpath),clsname),sub_clsname)
|
||||
else:
|
||||
return getattr(importlib.import_module(modpath),clsname)
|
||||
|
||||
# decorator for TrackingWallet
|
||||
def write_mode(orig_func):
|
||||
|
|
|
|||
|
|
@ -30,10 +30,10 @@ def overlay_setup(repo_root):
|
|||
os.path.join(destdir,link_fn) )
|
||||
|
||||
overlay_dir = get_overlay_dir(repo_root)
|
||||
fakemod_root = os.path.join(repo_root,'test','overlay','fakemods')
|
||||
make_link = os.symlink if sys.platform == 'linux' else shutil.copy2
|
||||
|
||||
if not os.path.exists(os.path.join(overlay_dir,'mmgen','main.py')):
|
||||
fakemod_root = os.path.join(repo_root,'test','overlay','fakemods')
|
||||
make_link = os.symlink if sys.platform == 'linux' else shutil.copy2
|
||||
sys.stderr.write('Setting up overlay tree\n')
|
||||
shutil.rmtree(overlay_dir,ignore_errors=True)
|
||||
for d in (
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ vbal2 = '99.997088755'
|
|||
vbal3 = '1.23142525'
|
||||
vbal4 = '127.0287909'
|
||||
vbal5 = '1000126.14828654512345678'
|
||||
vbal6 = '1000124.91944564512345678'
|
||||
|
||||
bals = {
|
||||
'1': [ ('98831F3A:E:1','123.456')],
|
||||
|
|
@ -301,6 +302,7 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
('token_edit_label1', f'adding label to addr #{del_addrs[0]} in {coin} token tracking wallet'),
|
||||
|
||||
('remove_addr1', f'removing addr #{del_addrs[0]} from {coin} tracking wallet'),
|
||||
('twview6', 'twview (balance reduced after address removal)'),
|
||||
('remove_addr2', f'removing addr #{del_addrs[1]} from {coin} tracking wallet'),
|
||||
('token_remove_addr1', f'removing addr #{del_addrs[0]} from {coin} token tracking wallet'),
|
||||
('token_remove_addr2', f'removing addr #{del_addrs[1]} from {coin} token tracking wallet'),
|
||||
|
|
@ -1080,7 +1082,9 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
return self.token_bal(n='3')
|
||||
|
||||
def del_dev_addr(self):
|
||||
return self.spawn('mmgen-tool', self.eth_args + ['remove_address',dfl_devaddr])
|
||||
t = self.spawn('mmgen-tool', self.eth_args + ['remove_address', dfl_devaddr])
|
||||
t.expect(f"'{dfl_devaddr}' deleted")
|
||||
return t
|
||||
|
||||
def bal1_getbalance(self):
|
||||
return self.bal_getbalance('1',etc_adj=True)
|
||||
|
|
@ -1199,6 +1203,8 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
return self.twview(tool_args=['wide=1','minconf=999999999'])
|
||||
def twview5(self):
|
||||
return self.twview(tool_args=['wide=1','minconf=0'])
|
||||
def twview6(self):
|
||||
return self.twview(expect_str=vbal6)
|
||||
|
||||
def token_twview1(self):
|
||||
return self.twview(args=['--token=mm1'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue