Minor tweaks.
This commit is contained in:
parent
c7f3f7ac6d
commit
c8c896a14c
@ -127,16 +127,19 @@ This version removes all support for :ref:`deserialized headers
|
||||
Changes
|
||||
-------
|
||||
|
||||
* The argument *raw* removed from :func:`blockchain.headers.subscribe`,
|
||||
only raw headers can be subscribed to.
|
||||
* Deserialized headers are no longer available, so removed argument
|
||||
*raw* from :func:`blockchain.headers.subscribe`.
|
||||
* Only the first :func:`server.version` message is accepted.
|
||||
* Optional *cp_height* argument added to
|
||||
:func:`blockchain.block.header` and :func:`blockchain.block.headers`
|
||||
to return merkle proofs of the header to a given checkpoint.
|
||||
|
||||
New methods
|
||||
-----------
|
||||
|
||||
* :func:`blockchain.transaction.id_from_pos`
|
||||
* :func:`blockchain.transaction.id_from_pos` to return a transaction
|
||||
hash, and optionally a merkle proof, given a block height and
|
||||
position in the block.
|
||||
|
||||
Removed methods
|
||||
---------------
|
||||
|
||||
@ -679,12 +679,13 @@ given a block height and a position in the block.
|
||||
|
||||
**Signature**
|
||||
|
||||
.. function:: blockchain.transaction.id_from_pos(height, tx_pos, merkle=False)
|
||||
.. function:: blockchain.transaction.id_from_pos(height, tx_pos,
|
||||
merkle=False)
|
||||
.. versionadded:: 1.4
|
||||
|
||||
*height*
|
||||
|
||||
A block height in the main chain, an integer.
|
||||
The main chain block height, a non-negative integer.
|
||||
|
||||
*tx_pos*
|
||||
|
||||
|
||||
@ -1055,7 +1055,7 @@ class ElectrumX(SessionBase):
|
||||
|
||||
return await self.daemon_request('getrawtransaction', tx_hash, verbose)
|
||||
|
||||
async def block_hash_and_tx_hashes(self, height):
|
||||
async def _block_hash_and_tx_hashes(self, height):
|
||||
'''Returns a pair (block_hash, tx_hashes) for the main chain block at
|
||||
the given height.
|
||||
|
||||
@ -1080,14 +1080,14 @@ class ElectrumX(SessionBase):
|
||||
return branch
|
||||
|
||||
async def transaction_merkle(self, tx_hash, height):
|
||||
'''Return the markle tree to a confirmed transaction given its hash
|
||||
'''Return the markle branch to a confirmed transaction given its hash
|
||||
and height.
|
||||
|
||||
tx_hash: the transaction hash as a hexadecimal string
|
||||
height: the height of the block it is in
|
||||
'''
|
||||
assert_tx_hash(tx_hash)
|
||||
block_hash, tx_hashes = await self.block_hash_and_tx_hashes(height)
|
||||
block_hash, tx_hashes = await self._block_hash_and_tx_hashes(height)
|
||||
try:
|
||||
pos = tx_hashes.index(tx_hash)
|
||||
except ValueError:
|
||||
@ -1104,15 +1104,15 @@ class ElectrumX(SessionBase):
|
||||
if merkle not in (True, False):
|
||||
raise RPCError(BAD_REQUEST, f'"merkle" must be a boolean')
|
||||
|
||||
block_hash, tx_hashes = await self.block_hash_and_tx_hashes(height)
|
||||
block_hash, tx_hashes = await self._block_hash_and_tx_hashes(height)
|
||||
try:
|
||||
tx_hash = tx_hashes[tx_pos]
|
||||
except IndexError:
|
||||
raise RPCError(BAD_REQUEST, f'no tx at position {tx_pos:,d} in '
|
||||
f'block {block_hash} at height {height:,d}')
|
||||
branch = self._get_merkle_branch(tx_hashes, tx_pos)
|
||||
|
||||
if merkle:
|
||||
branch = self._get_merkle_branch(tx_hashes, tx_pos)
|
||||
return {"tx_hash": tx_hash, "merkle": branch}
|
||||
else:
|
||||
return tx_hash
|
||||
|
||||
Loading…
Reference in New Issue
Block a user