minor fixes and cleanups
This commit is contained in:
parent
f0e90b72e9
commit
b081349514
6 changed files with 29 additions and 25 deletions
|
|
@ -135,17 +135,13 @@ class Signable:
|
|||
|
||||
def print_summary(self,signables):
|
||||
bmsg('\nAutosign summary:')
|
||||
msg(
|
||||
self.summary_indent
|
||||
+ f'\n{self.summary_indent}'.join(s.get_info() for s in signables)
|
||||
+ self.summary_footer )
|
||||
msg('\n'.join(s.get_info(indent=' ') for s in signables) + self.summary_footer)
|
||||
|
||||
class xmr_transaction(xmr_signable):
|
||||
dir_name = 'xmr_tx_dir'
|
||||
desc = 'Monero transaction'
|
||||
subext = 'subtx'
|
||||
multiple_ok = False
|
||||
summary_indent = ''
|
||||
summary_footer = ''
|
||||
|
||||
async def sign(self,f):
|
||||
|
|
@ -168,7 +164,6 @@ class Signable:
|
|||
sigext = 'sig'
|
||||
dir_name = 'xmr_outputs_dir'
|
||||
clean_all = True
|
||||
summary_indent = ' '
|
||||
summary_footer = '\n'
|
||||
|
||||
async def sign(self,f):
|
||||
|
|
@ -381,10 +376,12 @@ class Autosign:
|
|||
async def sign_all(self,target_name):
|
||||
target = getattr(Signable,target_name)(self)
|
||||
if target.unsigned:
|
||||
if len(target.unsigned) > 1 and not target.multiple_ok:
|
||||
die(f'AutosignTXError', 'Only one unsigned {target.desc} transaction allowed at a time!')
|
||||
good = []
|
||||
bad = []
|
||||
if len(target.unsigned) > 1 and not target.multiple_ok:
|
||||
ymsg(f'Autosign error: only one unsigned {target.desc} transaction allowed at a time!')
|
||||
target.print_bad_list(target.unsigned)
|
||||
return False
|
||||
for f in target.unsigned:
|
||||
ret = None
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -501,9 +501,9 @@ class MoneroWalletOutputsFile:
|
|||
def get_info(self,indent=''):
|
||||
if self.data.signed_key_images is not None:
|
||||
data = self.data.signed_key_images or []
|
||||
return f'{self.wallet_fn.name}: {len(data)} signed key image{suf(data)}'
|
||||
return f'{indent}{self.wallet_fn.name}: {len(data)} signed key image{suf(data)}'
|
||||
else:
|
||||
return f'{self.wallet_fn.name}: no key images'
|
||||
return f'{indent}{self.wallet_fn.name}: no key images'
|
||||
|
||||
class New(Base):
|
||||
ext = 'raw'
|
||||
|
|
@ -790,8 +790,6 @@ class MoneroWalletOps:
|
|||
continue
|
||||
raise
|
||||
|
||||
msg('')
|
||||
|
||||
self.create_addr_data()
|
||||
|
||||
if not self.skip_wallet_check:
|
||||
|
|
@ -1557,7 +1555,7 @@ class MoneroWalletOps:
|
|||
|
||||
async def main(self):
|
||||
h = self.rpc(self,self.source)
|
||||
h.open_wallet('Monero',refresh=True)
|
||||
h.open_wallet('Monero')
|
||||
label = '{a} [{b}]'.format(
|
||||
a = self.label or f"xmrwallet new {'account' if self.account == None else 'address'}",
|
||||
b = make_timestr() )
|
||||
|
|
@ -1739,10 +1737,14 @@ class MoneroWalletOps:
|
|||
self.display_tx_relay_info(indent=' ')
|
||||
|
||||
if keypress_confirm( self.cfg, f'{self.name.capitalize()} transaction?' ):
|
||||
if self.cfg.tx_relay_daemon:
|
||||
msg_r('Relaying transaction to remote daemon, please be patient...')
|
||||
res = self.c.call(
|
||||
'submit_transfer',
|
||||
tx_data_hex = tx.data.signed_txset )
|
||||
assert res['tx_hash_list'][0] == tx.data.txid, 'TxID mismatch in ‘submit_transfer’ result!'
|
||||
if self.cfg.tx_relay_daemon:
|
||||
msg('success')
|
||||
else:
|
||||
die(1,'Exiting at user request')
|
||||
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ class TestSuiteAutosignBase(TestSuiteBase):
|
|||
|
||||
def stop_daemons(self):
|
||||
self.spawn('',msg_only=True)
|
||||
stop_test_daemons(*[i for i in self.network_ids if i != 'btc'])
|
||||
stop_test_daemons(*self.network_ids)
|
||||
return 'ok'
|
||||
|
||||
def gen_key(self):
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
|
|||
('new_address_alice_label', 'adding an address to Alice’s tmp wallet (with label)'),
|
||||
('dump_tmp_wallets', 'dumping Alice’s tmp wallets'),
|
||||
('delete_tmp_wallets', 'deleting Alice’s tmp wallets'),
|
||||
('clean', 'cleaning signable file directories'),
|
||||
('autosign_clean', 'cleaning signable file directories'),
|
||||
('autosign_setup', 'autosign setup with Alice’s seed'),
|
||||
('create_watchonly_wallets', 'creating online (watch-only) wallets for Alice'),
|
||||
('delete_tmp_dump_files', 'deleting Alice’s dump files'),
|
||||
|
|
@ -124,7 +124,9 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
|
|||
cfg = self.cfg,
|
||||
proto = self.proto,
|
||||
addr_idxs = '1-2',
|
||||
seed = Wallet(cfg,data.mmwords).seed )
|
||||
seed = Wallet(cfg,data.mmwords).seed,
|
||||
skip_chksum_msg = True,
|
||||
key_address_validity_check = False )
|
||||
kal.file.write(ask_overwrite=False)
|
||||
fn = get_file_with_ext(data.udir,'akeys')
|
||||
m = MoneroWalletOps.create(
|
||||
|
|
@ -277,19 +279,19 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
|
|||
t.written_to_file(dtype.capitalize())
|
||||
return t
|
||||
|
||||
def _sync_chkbal(self,bal_chk_func):
|
||||
def _sync_chkbal(self,wallet_arg,bal_chk_func):
|
||||
return self.sync_wallets(
|
||||
'alice',
|
||||
op = 'sync',
|
||||
wallets = '1',
|
||||
wallets = wallet_arg,
|
||||
bal_chk_func = bal_chk_func )
|
||||
|
||||
def sync_chkbal1(self):
|
||||
return self._sync_chkbal( lambda n,b,ub: b == ub and 1 < b < 1.12 )
|
||||
return self._sync_chkbal( '1', lambda n,b,ub: b == ub and 1 < b < 1.12 )
|
||||
# 1.234567891234 - 0.124 = 1.110567891234 (minus fees)
|
||||
|
||||
def sync_chkbal2(self):
|
||||
return self._sync_chkbal( lambda n,b,ub: b == ub and 0.8 < b < 0.86 )
|
||||
return self._sync_chkbal( '1', lambda n,b,ub: b == ub and 0.8 < b < 0.86 )
|
||||
# 1.234567891234 - 0.124 - 0.257 = 0.853567891234 (minus fees)
|
||||
|
||||
sync_chkbal3 = sync_chkbal2
|
||||
|
|
@ -404,7 +406,7 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
|
|||
str(Path(*d.parts[4:])) + ':',
|
||||
' '.join(sorted(i.name for i in d.iterdir()))).strip()
|
||||
|
||||
def clean(self):
|
||||
def autosign_clean(self):
|
||||
|
||||
self.create_fake_tx_files()
|
||||
before = '\n'.join(self._gen_listing())
|
||||
|
|
|
|||
|
|
@ -417,15 +417,17 @@ class TestSuiteXMRWallet(TestSuiteBase):
|
|||
ok()
|
||||
return await self.mine_chk('miner',1,0,lambda x: x.ub > 20,'unlocked balance > 20')
|
||||
|
||||
async def fund_alice(self):
|
||||
async def fund_alice(self,wallet=1):
|
||||
self.spawn('', msg_only=True, extra_desc='(transferring funds from Miner wallet)')
|
||||
await self.transfer(
|
||||
'miner',
|
||||
1234567891234,
|
||||
read_from_file(self.users['alice'].addrfile_fs.format(1)),
|
||||
read_from_file(self.users['alice'].addrfile_fs.format(wallet)),
|
||||
)
|
||||
ok()
|
||||
bal = '1.234567891234'
|
||||
return await self.mine_chk(
|
||||
'alice',1,0,
|
||||
'alice',wallet,0,
|
||||
lambda x: str(x.ub) == bal,f'unlocked balance == {bal}',
|
||||
random_txs = self.dfl_random_txs
|
||||
)
|
||||
|
|
@ -644,6 +646,7 @@ class TestSuiteXMRWallet(TestSuiteBase):
|
|||
cfg = cfg,
|
||||
proto = self.proto,
|
||||
addrfile = data.kafile,
|
||||
skip_chksum_msg = True,
|
||||
key_address_validity_check = False )
|
||||
end_silence()
|
||||
self.users[user].wd.start(silent=not (cfg.exact_output or cfg.verbose))
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ class unit_tests:
|
|||
cfg = cfg,
|
||||
proto = proto,
|
||||
test_suite = True,
|
||||
wallet_dir = 'test/trash2',
|
||||
wallet_dir = os.path.join('test','trash2'),
|
||||
passwd = 'ut_rpc_passw0rd' )
|
||||
) for proto in (init_proto( cfg, 'xmr', network=network ) for network in networks) ]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue