async def get_block_records_at(self, heights: List[uint32], batch_size=900) -> List[BlockRecord]:
    '\n        gets block records by height (only blocks that are part of the chain)\n        '
    records: List[BlockRecord] = []
    hashes = []
    assert (batch_size < 999)
    for height in heights:
        hashes.append(self.height_to_hash(height))
        if (len(hashes) > batch_size):
            res = (await self.block_store.get_block_records_by_hash(hashes))
            records.extend(res)
            hashes = []
    if (len(hashes) > 0):
        res = (await self.block_store.get_block_records_by_hash(hashes))
        records.extend(res)
    return records
gets block records by height (only blocks that are part of the chain)
async def get_block_records_at(self, heights: List[uint32], batch_size=900) -> List[BlockRecord]:
    '\n        \n        '
    records: List[BlockRecord] = []
    hashes = []
    assert (batch_size < 999)
    for height in heights:
        hashes.append(self.height_to_hash(height))
        if (len(hashes) > batch_size):
            res = (await self.block_store.get_block_records_by_hash(hashes))
            records.extend(res)
            hashes = []
    if (len(hashes) > 0):
        res = (await self.block_store.get_block_records_by_hash(hashes))
        records.extend(res)
    return records