diff --git a/nimbus/p2p/chain.nim b/nimbus/p2p/chain.nim index 1b26f42a2..56ceec272 100644 --- a/nimbus/p2p/chain.nim +++ b/nimbus/p2p/chain.nim @@ -23,9 +23,15 @@ method getBlockHeader*(c: Chain, b: HashOrNum, output: var BlockHeader): bool {. method getBestBlockHeader*(c: Chain): BlockHeader {.gcsafe.} = c.db.getCanonicalHead() -method getSuccessorHeader*(c: Chain, h: BlockHeader, output: var BlockHeader): bool {.gcsafe.} = - let n = h.blockNumber + 1 - c.db.getBlockHeader(n, output) +method getSuccessorHeader*(c: Chain, h: BlockHeader, output: var BlockHeader, skip = 0'u): bool {.gcsafe.} = + let offset = 1 + skip.toBlockNumber + if h.blockNumber <= (not 0.toBlockNumber) - offset: + result = c.db.getBlockHeader(h.blockNumber + offset, output) + +method getAncestorHeader*(c: Chain, h: BlockHeader, output: var BlockHeader, skip = 0'u): bool {.gcsafe.} = + let offset = 1 + skip.toBlockNumber + if h.blockNumber >= offset: + result = c.db.getBlockHeader(h.blockNumber - offset, output) method getBlockBody*(c: Chain, blockHash: KeccakHash): BlockBodyRef = result = nil diff --git a/vendor/nim-eth b/vendor/nim-eth index 022139db5..1797b7635 160000 --- a/vendor/nim-eth +++ b/vendor/nim-eth @@ -1 +1 @@ -Subproject commit 022139db5090312bf905d341ee5c9a1551d7f92e +Subproject commit 1797b7635124875fe0e212d7df5bd1836f22cbaa