wownero-python/monero/daemon.py

83 lines
2.3 KiB
Python
Raw Permalink Normal View History

import six
2018-01-14 22:51:18 +00:00
class Daemon(object):
2018-02-15 20:41:51 +00:00
"""Monero daemon.
Provides interface do a daemon instance.
:param backend: a daemon backend
"""
2018-01-14 22:51:18 +00:00
def __init__(self, backend):
self._backend = backend
def info(self):
2018-02-15 20:41:51 +00:00
"""
Returns basic information about the daemon.
:rtype: dict
"""
return self._backend.info()
2018-01-15 03:12:53 +00:00
@property
def net(self):
return self._backend.net()
def height(self):
2018-02-15 20:41:51 +00:00
"""
Return daemon's chain height.
:rtype: int
"""
return self._backend.info()['height']
2018-01-22 02:55:08 +00:00
2018-01-30 23:22:26 +00:00
def send_transaction(self, tx, relay=True):
2018-02-15 20:41:51 +00:00
"""
Sends a transaction generated by a :class:`Wallet <monero.wallet.Wallet>`.
:param tx: :class:`Transaction <monero.transaction.Transaction>`
:param relay: whether to relay the transaction to peers. If `False`, the daemon will have
to mine the transaction itself in order to have it included in the blockchain.
"""
2018-01-30 23:22:26 +00:00
return self._backend.send_transaction(tx.blob, relay=relay)
2018-01-22 02:55:08 +00:00
def mempool(self):
2018-02-18 20:21:30 +00:00
"""
Returns current mempool contents.
:rtype: list of :class:`Transaction <monero.transaction.Transaction>`
"""
return self._backend.mempool()
def headers(self, start_height, end_height=None):
"""
Returns block headers for given height range.
If no :param end_height: is given, it's assumed to be equal to :param start_height:
:rtype: list of dict
"""
return self._backend.headers(start_height, end_height)
2020-01-22 10:37:03 +00:00
def block(self, bhash=None, height=None):
"""
Returns a block of specified height or hash.
:param str bhash: block hash, or
:param int height: block height
:rtype: :class:`Block <monero.block.Block>`
"""
if not height and not bhash:
raise ValueError("Height or hash must be specified")
return self._backend.block(bhash=bhash, height=height)
def transactions(self, hashes):
"""
Returns transactions matching given hashes. Accepts single hash or a sequence.
:hashes: str or list of str
"""
if isinstance(hashes, six.string_types):
hashes = [hashes]
return self._backend.transactions(hashes)