From 43432327c7e9935fcb640026f43cff80a385c1fb Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sat, 16 May 2020 12:44:43 +0000 Subject: [PATCH] global change: init_coin() -> g.proto = init_proto() --- mmgen/daemon.py | 6 ++---- mmgen/main_autosign.py | 10 +++++----- mmgen/main_split.py | 6 +++--- mmgen/protocol.py | 6 ------ mmgen/tool.py | 8 ++++---- scripts/tx-btc2bch.py | 4 ++-- test/gentest.py | 10 +++++----- test/objattrtest.py | 2 +- test/test_py_d/ts_ref_altcoin.py | 6 +++--- test/unit_tests_d/ut_rpc.py | 5 ++--- test/unit_tests_d/ut_tx_deserialize.py | 12 ++++++------ 11 files changed, 33 insertions(+), 42 deletions(-) diff --git a/mmgen/daemon.py b/mmgen/daemon.py index eac7cc83..c28c6975 100755 --- a/mmgen/daemon.py +++ b/mmgen/daemon.py @@ -543,17 +543,15 @@ class EthereumDaemon(CoinDaemon): return 'ready' if self.test_socket('localhost',self.rpc_port) else 'stopped' # the following code does not work - from mmgen.protocol import init_coin - init_coin('eth') - async def do(): print(g.rpc) ret = await g.rpc.call('eth_chainId') print(ret) return ('stopped','ready')[ret == '0x11'] + from mmgen.protocol import init_proto try: - return run_session(do()) # socket exception is not propagated + return run_session(do(),proto=init_proto('eth')) # socket exception is not propagated except:# SocketError: return 'stopped' diff --git a/mmgen/main_autosign.py b/mmgen/main_autosign.py index 8884b2ad..e34fddac 100755 --- a/mmgen/main_autosign.py +++ b/mmgen/main_autosign.py @@ -113,7 +113,7 @@ exit_if_mswin('autosigning') import mmgen.tx from .txsign import txsign -from .protocol import init_proto,init_coin +from .protocol import init_proto from .rpc import rpc_init if g.test_suite: @@ -177,14 +177,14 @@ def do_umount(): async def sign_tx_file(txfile,signed_txs): try: - init_coin('BTC',testnet=False) + g.proto = init_proto('BTC',testnet=False) tmp_tx = mmgen.tx.MMGenTX(txfile,metadata_only=True) - init_coin(tmp_tx.coin) + g.proto = init_proto(tmp_tx.coin) if tmp_tx.chain != 'mainnet': if tmp_tx.chain == 'testnet' or ( hasattr(g.proto,'chain_name') and tmp_tx.chain != g.proto.chain_name): - init_coin(tmp_tx.coin,testnet=True) + g.proto = init_proto(tmp_tx.coin,testnet=True) if hasattr(g.proto,'chain_name'): if tmp_tx.chain != g.proto.chain_name: @@ -265,7 +265,7 @@ def print_summary(signed_txs): bmsg('\nAutosign summary:\n') def gen(): for tx in signed_txs: - init_coin(tx.coin,tx.chain == 'testnet') + g.proto = init_proto(tx.coin,testnet=tx.chain=='testnet') yield tx.format_view(terse=True) msg_r(''.join(gen())) return diff --git a/mmgen/main_split.py b/mmgen/main_split.py index 059e867e..ec6259bc 100755 --- a/mmgen/main_split.py +++ b/mmgen/main_split.py @@ -108,11 +108,11 @@ if mmids[0] == mmids[1]: die(2,'Both transactions have the same output! ({})'.format(mmids[0])) from .tx import MMGenSplitTX -from .protocol import init_coin +from .protocol import init_proto if opt.tx_fees: for idx,g_coin in ((1,opt.other_coin),(0,g.coin)): - init_coin(g_coin) + g.proto = init_proto(g_coin) opt.tx_fee = opt.tx_fees.split(',')[idx] opts.opt_is_tx_fee('foo',opt.tx_fee,'transaction fee') # raises exception on error @@ -129,7 +129,7 @@ async def main(): gmsg("\nCreating transaction for short chain ({})".format(opt.other_coin)) - init_coin(opt.other_coin) + g.proto = init_proto(opt.other_coin) tx2 = MMGenSplitTX() tx2.inputs = tx1.inputs diff --git a/mmgen/protocol.py b/mmgen/protocol.py index f026e3c2..7b49baab 100755 --- a/mmgen/protocol.py +++ b/mmgen/protocol.py @@ -562,9 +562,3 @@ def make_init_genonly_altcoins_str(data): e.trust_level ) return '\n'.join(gen_text()) + '\n' - -def init_coin(coin,testnet=None): - if testnet is None: - testnet = g.proto.testnet - g.proto = init_proto(coin,testnet=testnet,regtest=g.proto.regtest) - return g.proto diff --git a/mmgen/tool.py b/mmgen/tool.py index 444a5a67..ca71e763 100755 --- a/mmgen/tool.py +++ b/mmgen/tool.py @@ -1063,8 +1063,8 @@ class MMGenToolCmdMonero(MMGenToolCmds): async def process_wallets(op): opt.accept_defaults = opt.accept_defaults or op.accept_defaults - from .protocol import init_coin - init_coin('xmr') + from .protocol import init_proto + g.proto = init_proto('xmr') from .addr import AddrList al = KeyAddrList(infile) data = [d for d in al.data if addrs == '' or d.idx in AddrIdxList(addrs)] @@ -1183,10 +1183,10 @@ class tool_api( Valid choices for coins: one of the symbols returned by the 'coins' attribute Valid choices for network: 'mainnet','testnet','regtest' """ - from .protocol import init_coin,init_genonly_altcoins + from .protocol import init_proto,init_genonly_altcoins altcoin_trust_level = init_genonly_altcoins(coinsym,testnet=network in ('testnet','regtest')) warn_altcoins(coinsym,altcoin_trust_level) - return init_coin(coinsym,{'mainnet':False,'testnet':True,'regtest':True}[network]) + return init_proto(coinsym,network=network) @property def coins(self): diff --git a/scripts/tx-btc2bch.py b/scripts/tx-btc2bch.py index 4a959041..d7f55d89 100755 --- a/scripts/tx-btc2bch.py +++ b/scripts/tx-btc2bch.py @@ -47,8 +47,8 @@ tx = mmgen.tx.MMGenTX(cmd_args[0]) if opt.verbose: gmsg('Original transaction is in {} format'.format(g.coin)) -from mmgen.protocol import init_coin -init_coin('BCH') +from mmgen.protocol import init_proto +g.proto = init_proto('bch') if opt.verbose: gmsg('Converting transaction to {} format'.format(g.coin)) diff --git a/test/gentest.py b/test/gentest.py index f140af43..fd014638 100755 --- a/test/gentest.py +++ b/test/gentest.py @@ -133,7 +133,7 @@ class GenTool(object): class GenToolEthkey(GenTool): desc = 'ethkey' def __init__(self): - init_coin('eth') + g.proto = init_proto('eth') global addr_type addr_type = MMGenAddrType('E') @@ -150,7 +150,7 @@ class GenToolKeyconv(GenTool): class GenToolZcash_mini(GenTool): desc = 'zcash-mini' def __init__(self): - init_coin('zec') + g.proto = init_proto('zec') global addr_type addr_type = MMGenAddrType('Z') @@ -200,7 +200,7 @@ class GenToolMoneropy(GenTool): raise ImportError(m) self.mpa = moneropy.account - init_coin('xmr') + g.proto = init_proto('xmr') global addr_type addr_type = MMGenAddrType('M') @@ -390,7 +390,7 @@ def parse_arg2(): die(1,m) # begin execution -from mmgen.protocol import init_coin +from mmgen.protocol import init_proto from mmgen.altcoin import CoinInfo as ci from mmgen.obj import MMGenAddrType,PrivKey from mmgen.addr import KeyGenerator,AddrGenerator @@ -427,7 +427,7 @@ elif a and b and type(arg2) == int: if coin.lower() not in CoinProtocol.coins: # ymsg('Coin {} not configured'.format(coin)) continue - init_coin(coin) + g.proto = init_proto(coin) if addr_type not in g.proto.mmtypes: continue # g.proto has changed, so reinit kg and ag just to be on the safe side: diff --git a/test/objattrtest.py b/test/objattrtest.py index 99073736..50f59dd6 100755 --- a/test/objattrtest.py +++ b/test/objattrtest.py @@ -158,5 +158,5 @@ def do_loop(): msg(clr('Testing {}'.format(obj))) test_object(test_data,obj) -init_coin(g.coin) +g.proto = init_proto(g.coin) do_loop() diff --git a/test/test_py_d/ts_ref_altcoin.py b/test/test_py_d/ts_ref_altcoin.py index d0f2eb9f..aca24ef7 100755 --- a/test/test_py_d/ts_ref_altcoin.py +++ b/test/test_py_d/ts_ref_altcoin.py @@ -83,7 +83,7 @@ class TestSuiteRefAltcoin(TestSuiteRef,TestSuiteBase): def ref_altcoin_tx_chk(self): self.write_to_tmpfile(pwfile,dfl_wpasswd) pf = joinpath(self.tmpdir,pwfile) - from mmgen.protocol import init_coin + from mmgen.protocol import init_proto from mmgen.daemon import CoinDaemon for k in ('bch','eth','mm1','etc'): coin,token = ('eth','mm1') if k == 'mm1' else (k,None) @@ -98,7 +98,7 @@ class TestSuiteRefAltcoin(TestSuiteRef,TestSuiteBase): extra_opts += [ '--daemon-data-dir=test/daemons/bch', '--rpc-port={}'.format(CoinDaemon(network_id,test_suite=True).rpc_port) ] - init_coin(coin,testnet=tn) + g.proto = init_proto(coin,testnet=tn) fn = TestSuiteRef.sources['ref_tx_file'][token or coin][bool(tn)] tf = joinpath(ref_dir,ref_subdir,fn) wf = dfl_words_file @@ -112,7 +112,7 @@ class TestSuiteRefAltcoin(TestSuiteRef,TestSuiteBase): if coin == 'bch': stop_test_daemons(network_id) ok_msg() - init_coin('btc') + g.proto = init_proto('btc') t.skip_ok = True return t diff --git a/test/unit_tests_d/ut_rpc.py b/test/unit_tests_d/ut_rpc.py index a1988787..93289124 100755 --- a/test/unit_tests_d/ut_rpc.py +++ b/test/unit_tests_d/ut_rpc.py @@ -6,7 +6,7 @@ test.unit_tests_d.ut_rpc: RPC unit test for the MMGen suite from mmgen.common import * from mmgen.exception import * -from mmgen.protocol import init_coin +from mmgen.protocol import init_proto from mmgen.rpc import MoneroWalletRPCClient from mmgen.daemon import CoinDaemon,MoneroWalletDaemon @@ -84,7 +84,6 @@ class unit_tests: def eth(self,name,ut): ed = CoinDaemon('eth',test_suite=True) ed.start() - init_coin('eth') g.rpc_port = CoinDaemon('eth',test_suite=True).rpc_port async def run_test(): @@ -92,7 +91,7 @@ class unit_tests: ret = await g.rpc.call('parity_versionInfo',timeout=300) for backend in g.autoset_opts['rpc_backend'].choices: - run_session(run_test(),backend=backend) + run_session(run_test(),proto=init_proto('eth'),backend=backend) ed.stop() return True diff --git a/test/unit_tests_d/ut_tx_deserialize.py b/test/unit_tests_d/ut_tx_deserialize.py index 8044b822..24bee09b 100755 --- a/test/unit_tests_d/ut_tx_deserialize.py +++ b/test/unit_tests_d/ut_tx_deserialize.py @@ -7,7 +7,7 @@ import os,json from mmgen.common import * from ..include.common import * -from mmgen.protocol import init_coin +from mmgen.protocol import init_proto from mmgen.tx import MMGenTX,DeserializedTX from mmgen.rpc import rpc_init from mmgen.daemon import CoinDaemon @@ -114,11 +114,11 @@ class unit_test(object): ) print_info('test/ref/*rawtx','MMGen reference transactions') g.rpc_port = None - for n,(coin,tn,fn) in enumerate(fns): - proto = init_coin(coin,tn) - proto.daemon_data_dir = 'test/daemons/' + coin - proto.rpc_port = CoinDaemon(coin + ('','_tn')[tn],test_suite=True).rpc_port - await rpc_init(proto=proto) + for n,(coin,testnet,fn) in enumerate(fns): + g.proto = init_proto(coin,testnet=testnet) + g.proto.daemon_data_dir = 'test/daemons/' + coin + g.proto.rpc_port = CoinDaemon(coin + ('','_tn')[testnet],test_suite=True).rpc_port + await rpc_init() await test_tx(MMGenTX(fn).hex,fn,n+1) Msg('OK')