Browse Source

Improve daemon API for broadcasting a tx

patch-2
Neil Booth 7 years ago
parent
commit
92e8cff770
  1. 4
      electrumx/server/daemon.py
  2. 4
      electrumx/server/session.py

4
electrumx/server/daemon.py

@ -249,9 +249,9 @@ class Daemon(object):
# Convert hex strings to bytes # Convert hex strings to bytes
return [hex_to_bytes(tx) if tx else None for tx in txs] return [hex_to_bytes(tx) if tx else None for tx in txs]
async def sendrawtransaction(self, params): async def broadcast_transaction(self, raw_tx):
'''Broadcast a transaction to the network.''' '''Broadcast a transaction to the network.'''
return await self._send_single('sendrawtransaction', params) return await self._send_single('sendrawtransaction', (raw_tx, ))
async def height(self): async def height(self):
'''Query the daemon for its current height.''' '''Query the daemon for its current height.'''

4
electrumx/server/session.py

@ -535,7 +535,7 @@ class SessionManager(object):
return electrum_header return electrum_header
async def broadcast_transaction(self, raw_tx): async def broadcast_transaction(self, raw_tx):
hex_hash = await self.daemon.sendrawtransaction([raw_tx]) hex_hash = await self.daemon.broadcast_transaction(raw_tx)
self.txs_sent += 1 self.txs_sent += 1
return hex_hash return hex_hash
@ -1144,7 +1144,7 @@ class ElectrumX(SessionBase):
except DaemonError as e: except DaemonError as e:
error, = e.args error, = e.args
message = error['message'] message = error['message']
self.logger.info(f'sendrawtransaction: {message}') self.logger.info(f'error sending transaction: {message}')
raise RPCError(BAD_REQUEST, 'the transaction was rejected by ' raise RPCError(BAD_REQUEST, 'the transaction was rejected by '
f'network rules.\n\n{message}\n[{raw_tx}]') f'network rules.\n\n{message}\n[{raw_tx}]')

Loading…
Cancel
Save