Browse Source

delete class MoneroRPCClientRaw

The MMGen Project 2 years ago
parent
commit
ee8ca9f99e

+ 2 - 2
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,

+ 8 - 10
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,

+ 1 - 2
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)

+ 4 - 5
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
 				)

+ 5 - 15
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...')

+ 4 - 13
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