<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_atlas_zonefile_info_at( self, block_id ):
 """ Get the blockchain-ordered sequence of names, value hashes, and txids. added at the given block height. The order will be in tx-order. Return [{'name': name, 'value_hash': value_hash, 'txid': txid}] """

        nameops = self.get_all_blockstack_ops_at( block_id )
        ret = []
        for nameop in nameops:
            if nameop.has_key('op') and op_get_opcode_name(nameop['op']) in ['NAME_UPDATE', 'NAME_IMPORT', 'NAME_REGISTRATION', 'NAME_RENEWAL']:

                assert nameop.has_key('value_hash')
                assert nameop.has_key('name')
                assert nameop.has_key('txid')

                if nameop['value_hash'] is not None:
                    ret.append( {'name': nameop['name'], 'value_hash': nameop['value_hash'], 'txid': nameop['txid']} )

        return ret