def found_block(self, address, worker, header, coinbase_raw, job, start):
        aux_data = job.merged_data[self.config['currency']]
        new_height = aux_data['height'] + 1
        self.block_stats['solves'] += 1
        stale = new_height <= self.current_net['height']

        self.logger.info("New {} Aux block at height {}"
                         .format(self.config['currency'], new_height))
        aux_block = (
            pack.IntType(256, 'big').pack(aux_data['hash']).encode('hex'),
            bitcoin_data.aux_pow_type.pack(dict(
                merkle_tx=dict(
                    tx=bitcoin_data.tx_type.unpack(coinbase_raw),
                    block_hash=bitcoin_data.hash256(header),
                    merkle_link=job.merkle_link,
                ),
                merkle_link=bitcoin_data.calculate_merkle_link(aux_data['hashes'],
                                                               aux_data['index']),
                parent_block_header=bitcoin_data.block_header_type.unpack(header),
            )).encode('hex'),
        )

        retries = 0
        while retries < 5:
            retries += 1
            res = False
            try:
                res = self.call_rpc('getauxblock', *aux_block)
            except (CoinRPCException, socket.error, ValueError) as e:
                self.logger.error("{} Aux block failed to submit to the server!"
                                  .format(self.config['currency']), exc_info=True)
                self.logger.error(getattr(e, 'error'))

            if res is True:
                # Record it for the stats
                self.block_stats['accepts'] += 1
                self.recent_blocks.append(
                    dict(height=new_height, timestamp=int(time.time())))

                # submit it to our reporter if configured to do so
                if self.config['send']:
                    if start:
                        submission_time = time.time() - start
                        self.manager.log_event(
                            "{name}.block_submission_{curr}:{t}|ms"
                            .format(name=self.manager.config['procname'],
                                    curr=self.config['currency'],
                                    t=submission_time * 1000))
                    hsh = hexlify(pack.IntType(256, 'big').pack(aux_data['hash']))
                    self.logger.info(
                        "{} BLOCK {}:{} accepted after {}"
                        .format(self.config['currency'], hsh, new_height,
                                submission_time))

                    # A bit of a mess that grabs the required information for
                    # reporting the new block. Pretty failsafe so at least
                    # partial information will be reporter regardless
                    block = None
                    amount = 0
                    try:
                        block = self.call_rpc('getblock', hsh)
                    except Exception:
                        self.logger.info("", exc_info=True)
                    else:
                        try:
                            trans = self.call_rpc('gettxout', block['tx'][0], 0)
                            amount = trans['value']
                        except Exception:
                            self.logger.info("", exc_info=True)

                    self.block_stats['last_solve_hash'] = hsh
                    return dict(address=address,
                                height=new_height,
                                total_subsidy=int(amount * 100000000),
                                fees=None,
                                hex_bits="%0.6X" % bitcoin_data.FloatingInteger.from_target_upper_bound(aux_data['target']).bits,
                                hex_hash=hsh,
                                currency=self.config['currency'],
                                merged=True,
                                algo=self.config['algo'],
                                worker=worker)

                break  # break retry loop if success
            else:
                self.logger.error(
                    "{} Aux Block failed to submit to the server, "
                    "server returned {}!".format(self.config['currency'], res),
                    exc_info=True)
            sleep(1)
        else:
            if stale:
                self.block_stats['stale'] += 1
            else:
                self.block_stats['rejects'] += 1

        self.block_stats['last_solve_height'] = aux_data['height'] + 1
        self.block_stats['last_solve_worker'] = "{}.{}".format(address, worker)
        self.block_stats['last_solve_time'] = datetime.datetime.utcnow()
dataset/ETHPy150Open simplecrypto/powerpool/powerpool/jobmanagers/monitor_aux_network.py/MonitorAuxNetwork.found_block/original