interface: fix only-genesis regtest case
This commit is contained in:
@@ -438,14 +438,17 @@ class Interface(PrintError):
|
|||||||
return last, height
|
return last, height
|
||||||
|
|
||||||
async def step(self, height, header=None):
|
async def step(self, height, header=None):
|
||||||
assert height != 0
|
assert 0 <= height <= self.tip, (height, self.tip)
|
||||||
assert height <= self.tip, (height, self.tip)
|
|
||||||
if header is None:
|
if header is None:
|
||||||
header = await self.get_block_header(height, 'catchup')
|
header = await self.get_block_header(height, 'catchup')
|
||||||
|
|
||||||
chain = blockchain.check_header(header) if 'mock' not in header else header['mock']['check'](header)
|
chain = blockchain.check_header(header) if 'mock' not in header else header['mock']['check'](header)
|
||||||
if chain:
|
if chain:
|
||||||
self.blockchain = chain if isinstance(chain, Blockchain) else self.blockchain
|
self.blockchain = chain if isinstance(chain, Blockchain) else self.blockchain
|
||||||
|
# note: there is an edge case here that is not handled.
|
||||||
|
# we might know the blockhash (enough for check_header) but
|
||||||
|
# not have the header itself. e.g. regtest chain with only genesis.
|
||||||
|
# this situation resolves itself on the next block
|
||||||
return 'catchup', height+1
|
return 'catchup', height+1
|
||||||
|
|
||||||
can_connect = blockchain.can_connect(header) if 'mock' not in header else header['mock']['connect'](height)
|
can_connect = blockchain.can_connect(header) if 'mock' not in header else header['mock']['connect'](height)
|
||||||
|
|||||||
Reference in New Issue
Block a user