From ee8ca9f99e8c7de2f4852dd5f4ce20914ee948d9 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Fri, 24 Mar 2023 20:31:10 +0000 Subject: [PATCH] delete class MoneroRPCClientRaw --- mmgen/proto/xmr/daemon.py | 4 ++-- mmgen/proto/xmr/rpc.py | 18 ++++++++---------- mmgen/rpc.py | 3 +-- mmgen/xmrwallet.py | 9 ++++----- test/test_py_d/ts_xmrwallet.py | 20 +++++--------------- test/unit_tests_d/ut_rpc.py | 17 ++++------------- 6 files changed, 24 insertions(+), 47 deletions(-) diff --git a/mmgen/proto/xmr/daemon.py b/mmgen/proto/xmr/daemon.py index c8f2c92d..7411c9a5 100755 --- a/mmgen/proto/xmr/daemon.py +++ b/mmgen/proto/xmr/daemon.py @@ -44,8 +44,8 @@ class monero_daemon(CoinDaemon): def init_subclass(self): - from .rpc import MoneroRPCClientRaw - self.rpc = MoneroRPCClientRaw( + from .rpc import MoneroRPCClient + self.rpc = MoneroRPCClient( host = self.host, port = self.rpc_port, user = None, diff --git a/mmgen/proto/xmr/rpc.py b/mmgen/proto/xmr/rpc.py index fb8d2aba..60ffde22 100755 --- a/mmgen/proto/xmr/rpc.py +++ b/mmgen/proto/xmr/rpc.py @@ -59,24 +59,19 @@ class MoneroRPCClient(RPCClient): host_path = '/json_rpc' )) - rpcmethods = ( 'get_info', ) - -class MoneroRPCClientRaw(MoneroRPCClient): - - json_rpc = False - - async def call(self,method,*params,**kwargs): + async def call_raw(self,method,*params,**kwargs): assert params == (), f'{type(self).__name__}.call() accepts keyword arguments only' return self.process_http_resp(await self.backend.run( payload = kwargs, timeout = self.timeout, host_path = f'/{method}' - )) + ),json_rpc=False) async def do_stop_daemon(self,silent=False): - return await self.call('stop_daemon') + return await self.call_raw('stop_daemon') - rpcmethods = ( 'get_height', 'send_raw_transaction', 'stop_daemon' ) + rpcmethods = ( 'get_info', ) + rpcmethods_raw = ( 'get_height', 'send_raw_transaction', 'stop_daemon' ) class MoneroWalletRPCClient(MoneroRPCClient): @@ -106,6 +101,9 @@ class MoneroWalletRPCClient(MoneroRPCClient): 'refresh', # start_height ) + def call_raw(*args,**kwargs): + raise NotImplementedError('call_raw() not implemented for class MoneroWalletRPCClient') + async def do_stop_daemon(self,silent=False): """ NB: the 'stop_wallet' RPC call closes the open wallet before shutting down the daemon, diff --git a/mmgen/rpc.py b/mmgen/rpc.py index 562dc483..28397492 100755 --- a/mmgen/rpc.py +++ b/mmgen/rpc.py @@ -252,7 +252,6 @@ class RPCBackends: class RPCClient(MMGenObject): - json_rpc = True auth_type = None has_auth_cookie = False network_proto = 'http' @@ -375,7 +374,7 @@ class RPCClient(MMGenObject): return [r['result'] for r in json.loads(text,parse_float=Decimal)] else: try: - if self.json_rpc: + if json_rpc: return json.loads(text,parse_float=Decimal)['result'] else: return json.loads(text,parse_float=Decimal) diff --git a/mmgen/xmrwallet.py b/mmgen/xmrwallet.py index 8c6ee687..b4c9a020 100755 --- a/mmgen/xmrwallet.py +++ b/mmgen/xmrwallet.py @@ -31,7 +31,7 @@ from .proto.btc.common import b58a from .addr import CoinAddr,AddrIdx from .addrlist import KeyAddrList,AddrIdxList from .rpc import json_encoder -from .proto.xmr.rpc import MoneroRPCClientRaw,MoneroWalletRPCClient +from .proto.xmr.rpc import MoneroRPCClient,MoneroWalletRPCClient from .proto.xmr.daemon import MoneroWalletDaemon from .ui import keypress_confirm @@ -636,8 +636,7 @@ class MoneroWalletOps: self.accts_data = {} async def process_wallet(self,d,fn,last): - - chain_height = (await self.dc.call('get_height'))['height'] + chain_height = (await self.dc.call_raw('get_height'))['height'] msg(f' Chain height: {chain_height}') t_start = time.time() @@ -936,7 +935,7 @@ class MoneroWalletOps: host,port = md.host,md.rpc_port proxy = None - self.dc = MoneroRPCClientRaw( + self.dc = MoneroRPCClient( host = host, port = int(port), user = None, @@ -952,7 +951,7 @@ class MoneroWalletOps: self.display_tx_relay_info() if keypress_confirm('Relay transaction?'): - res = await self.dc.call( + res = await self.dc.call_raw( 'send_raw_transaction', tx_as_hex = self.tx.data.blob ) diff --git a/test/test_py_d/ts_xmrwallet.py b/test/test_py_d/ts_xmrwallet.py index 51ba9f4e..4e0c9df7 100755 --- a/test/test_py_d/ts_xmrwallet.py +++ b/test/test_py_d/ts_xmrwallet.py @@ -191,7 +191,7 @@ class TestSuiteXMRWallet(TestSuiteBase): def init_users(self): from mmgen.daemon import CoinDaemon from mmgen.proto.xmr.daemon import MoneroWalletDaemon - from mmgen.proto.xmr.rpc import MoneroRPCClient,MoneroRPCClientRaw,MoneroWalletRPCClient + from mmgen.proto.xmr.rpc import MoneroRPCClient,MoneroWalletRPCClient self.users = {} n = self.tmpdir_nums[0] ud = namedtuple('user_data',[ @@ -205,7 +205,6 @@ class TestSuiteXMRWallet(TestSuiteBase): 'addrfile_fs', 'md', 'md_rpc', - 'md_json_rpc', 'wd', 'wd_rpc', ]) @@ -223,15 +222,7 @@ class TestSuiteXMRWallet(TestSuiteBase): opts = ['online'], datadir = datadir ) - md_rpc = MoneroRPCClientRaw( - host = md.host, - port = md.rpc_port, - user = None, - passwd = None, - test_connection = False, - daemon = md, - ) - md_json_rpc = MoneroRPCClient( + md_rpc = MoneroRPCClient( host = md.host, port = md.rpc_port, user = None, @@ -261,7 +252,6 @@ class TestSuiteXMRWallet(TestSuiteBase): addrfile_fs = f'{udir}/{sid}-{{}}-MoneroWallet.address.txt', md = md, md_rpc = md_rpc, - md_json_rpc = md_json_rpc, wd = wd, wd_rpc = wd_rpc, ) @@ -560,7 +550,7 @@ class TestSuiteXMRWallet(TestSuiteBase): addr = read_from_file(data.addrfile_fs.format(1)) # mine to wallet #1, account 0 for i in range(20): - ret = await data.md_rpc.call( + ret = await data.md_rpc.call_raw( 'start_mining', do_background_mining = False, # run mining in background or foreground ignore_battery = True, # ignore battery state (on laptop) @@ -578,7 +568,7 @@ class TestSuiteXMRWallet(TestSuiteBase): die(2,'Max retries exceeded') async def stop_mining(self): - ret = await self.users['miner'].md_rpc.call('stop_mining') + ret = await self.users['miner'].md_rpc.call_raw('stop_mining') return self.get_status(ret) async def mine_chk(self,user,wnum,account,test,test_desc,random_txs=None,return_amt=False): @@ -595,7 +585,7 @@ class TestSuiteXMRWallet(TestSuiteBase): u = self.users['miner'] for i in range(20): try: - return (await u.md_json_rpc.call('get_last_block_header'))['block_header']['height'] + return (await u.md_rpc.call('get_last_block_header'))['block_header']['height'] except Exception as e: if 'onnection refused' in str(e): omsg(f'{e}\nMonerod appears to have crashed. Attempting to restart...') diff --git a/test/unit_tests_d/ut_rpc.py b/test/unit_tests_d/ut_rpc.py index 38bf5999..b8cd1fbb 100755 --- a/test/unit_tests_d/ut_rpc.py +++ b/test/unit_tests_d/ut_rpc.py @@ -11,7 +11,7 @@ from mmgen.common import * from mmgen.protocol import init_proto from mmgen.rpc import rpc_init from mmgen.daemon import CoinDaemon -from mmgen.proto.xmr.rpc import MoneroRPCClient,MoneroRPCClientRaw,MoneroWalletRPCClient +from mmgen.proto.xmr.rpc import MoneroRPCClient,MoneroWalletRPCClient from mmgen.proto.xmr.daemon import MoneroWalletDaemon def cfg_file_auth_test(proto,d,bad_auth=False): @@ -160,24 +160,15 @@ class unit_tests: def xmrwallet(self,name,ut): async def test_monerod_rpc(md): - md_rpc = MoneroRPCClientRaw( + md = MoneroRPCClient( host = md.host, port = md.rpc_port, user = None, passwd = None, - test_connection = False, daemon = md, ) - md_json_rpc = MoneroRPCClient( - host = md.host, - port = md.rpc_port, - user = None, - passwd = None, - test_connection = False, - daemon = md, - ) - await md_rpc.call('get_height') - await md_json_rpc.call('get_last_block_header') + await md.call_raw('get_height') + await md.call('get_last_block_header') async def run(): networks = init_proto('xmr').networks