@Override
    public boolean add(FilteredBlock block) throws VerificationException, PrunedException {
        boolean success = super.add(block);
        if (success) {
            trackFilteredTransactions(block.getTransactionCount());
        }
        return success;
    }
@Test(expected = VerificationException.class)
    public void difficultyTransitions_unexpectedChange() throws Exception {
        Context.propagate(new Context(100, Coin.ZERO, false, true));
        BlockChain chain = new BlockChain(BitcoinNetwork.MAINNET, new MemoryBlockStore(MAINNET.getGenesisBlock()));
        // genesis block is already there
        Block prev = chain.getChainHead().getHeader();
        Instant newTime = prev.time().plus(Duration.ofMinutes(10));
        Block newBlock = prev.createNextBlock(null, 1, newTime, 1);
        newBlock.setDifficultyTarget(newBlock.getDifficultyTarget() + 10);
        assertTrue(chain.add(newBlock));
    }