def METHOD_NAME(self, blockid, parse_transactions, page, limit):
    bd = self.compose_request('rawblock', str(blockid))
    if parse_transactions:
        txs = []
        self.latest_block = self.blockcount() if not self.latest_block else self.latest_block
        for tx in bd['tx'][(page-1)*limit:page*limit]:
            # try:
            txs.append(self.gettransaction(tx['hash'], latest_block=self.latest_block))
            # except Exception as e:
            #     _logger.error("Could not parse tx %s with error %s" % (tx['hash'], e))
    else:
        txs = [tx['hash'] for tx in bd['tx']]
    block = {
        'bits': bd['bits'],
        'depth': None,
        'block_hash': bd['hash'],
        'height': bd['height'],
        'merkle_root': bd['mrkl_root'],
        'nonce': abs(bd['nonce']),
        'prev_block': bd['prev_block'],
        'time': bd['time'],
        'tx_count': len(bd['tx']),
        'txs': txs,
        'version': bd['ver'],
        'page': page,
        'pages': None if not limit else int(len(bd['tx']) // limit) + (len(bd['tx']) % limit > 0),
        'limit': limit
    }
    return block