<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_block(self, crypto, block_hash='', block_number='', latest=False):
 """ Get block based on either block height, block number or get the latest block. Only one of the previous arguments must be passed on. Returned is a dictionary object with the following keys: * required fields: block_number - int size - size of block time - datetime object of when the block was made hash - str (must be all lowercase) tx_count - int, the number of transactions included in thi block. * optional fields: confirmations - int sent_value - total value moved from all included transactions total_fees - total amount of tx fees from all included transactions mining_difficulty - what the difficulty was when this block was made. merkle_root - str (lower case) previous_hash - str (lower case) next_hash - str (lower case) (or `None` of its the latest block) miner - name of miner that first relayed this block version - block version """

        raise NotImplementedError(
            self.name + " does not support getting getting block data. "
            "Or rather it has no defined 'get_block' method."
        )