delete class MoneroRPCClientRaw

This commit is contained in:
The MMGen Project 2023-03-24 20:31:10 +00:00
commit ee8ca9f99e
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
6 changed files with 24 additions and 47 deletions

View file

@ -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,

View file

@ -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,

View file

@ -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)

View file

@ -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
)

View file

@ -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...')

View file

@ -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