Fix transaction pruning in tx-pool (#6276)

The `tree_route` generated by the import notification is only from the
old best block to the new best parent. This means, it does not contain
the new best block in `enacted()`. We need to prune the transactions of
the new best block "manually" to fix this bug.

Besides that, this pr also changed the `id` parameter of the `NewBlock`
chain event to `hash`. The hash of a block is unique in contrast to the
block number. (Block id can either be number or hash)
This commit is contained in:
Bastian Köcher
2020-06-08 12:38:19 +02:00
committed by GitHub
parent 84cdb02963
commit 663cd09be9
11 changed files with 134 additions and 81 deletions
@@ -251,11 +251,11 @@ pub enum ChainEvent<B: BlockT> {
NewBlock {
/// Is this the new best block.
is_new_best: bool,
/// Id of the just imported block.
id: BlockId<B>,
/// Hash of the block.
hash: B::Hash,
/// Header of the just imported block
header: B::Header,
/// Tree route from old best to new best that was calculated on import.
/// Tree route from old best to new best parent that was calculated on import.
///
/// If `None`, no re-org happened on import.
tree_route: Option<Arc<sp_blockchain::TreeRoute<B>>>,