docs: def _extract_attr_typed_value(txn_data):
      """
      ATTR and GET_ATTR can have one of 'raw', 'enc' and 'hash' fields.
      This method checks which of them presents and return it's name
      and value in it.
      """
      existing_keys = [key for key in ALL_ATR_KEYS if key in txn_data]
      if len(existing_keys) == 0:
          raise ValueError("ATTR should have one of the following fields: {}"
                           .format(ALL_ATR_KEYS))
      if len(existing_keys) > 1:
          raise ValueError("ATTR should have only one of the following fields: {}"
                           .format(ALL_ATR_KEYS))
      existing_key = existing_keys[0]
      return existing_key, txn_data[existing_key]