class MemPoolSyncer(Syncer):


    def __init__(self, bc_cache):
        raise NotImplementedError('incomplete, needs web3 tx to raw transaction conversion')
        super(MemPoolSyncer, self).__init__(bc_cache)
#        self.w3_filter = Syncer.w3.eth.filter('pending')
#        for tx in tx_cache.txs:
#            self.txs.append(tx)
#            logg.debug('add tx {} to mempoolsyncer'.format(tx))
#
#
#    def get(self):
#        return self.w3_filter.get_new_entries()
#
#
#    def process(self, tx_hash):
#        tx_hash_hex = tx_hash.hex()
#        if tx_hash_hex in self.txs:
#            logg.debug('syncer already watching {}, skipping'.format(tx_hash_hex))
#        tx = self.w3.eth.getTransaction(tx_hash_hex)
#        serialized_tx = rlp.encode({
#            'nonce': tx.nonce,
#            'from': getattr(tx, 'from'),
#            })
#        logg.info('add {} to syncer: {}'.format(tx, serialized_tx))
#        otx = Otx(
#                nonce=tx.nonce,
#                address=getattr(tx, 'from'),
#                tx_hash=tx_hash_hex,
#                signed_tx=serialized_tx,
#                )
#        Otx.session.add(otx)
#        Otx.session.commit()
#
#
#    def loop(self, interval):
#        while Syncer.running:
#            logg.debug('loop execute')
#            txs = self.get()
#            logg.debug('got txs {}'.format(txs))
#            for tx in txs:
#                #block_number = self.process(block.hex())
#                self.process(tx)
#                #if block_number > self.bc_cache.head():
#                #    self.bc_cache.head(block_number)
#            time.sleep(interval)
#        logg.info("Syncer no longer set to run, gracefully exiting")