class BlockChainImpl implements Blockchain {

    private void onBestBlock(Block block, BlockResult result) {
        if (result != null && listener != null){
            listener.onBestBlock(block, result.getTransactionReceipts());
        }
    }

    public  BlockChainImpl(BlockStore blockStore,
                          ReceiptStore receiptStore,
                          TransactionPool transactionPool,
                          EthereumListener listener,
                          BlockValidator blockValidator,
                          BlockExecutor blockExecutor,
                          StateRootHandler stateRootHandler);

}