TransactionMetadata<T>.fromJson constructor

TransactionMetadata<T>.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory TransactionMetadata.fromJson(Map<String, dynamic> json) {
  TransactionMetadataType type;
  try {
    type = TransactionMetadataType.fromName(json.keys.first);
  } on StateError {
    throw MessageException("Invalid metadata json.", details: {"json": json});
  }
  final TransactionMetadata metadata;
  switch (type) {
    case TransactionMetadataType.metadataBytes:
      metadata = TransactionMetadataBytes.fromJson(json);
      break;
    case TransactionMetadataType.metadataInt:
      metadata = TransactionMetadataInt.fromJson(json);
      break;
    case TransactionMetadataType.metadataList:
      metadata = TransactionMetadataList.fromJson(json);
      break;
    case TransactionMetadataType.metadataMap:
      metadata = TransactionMetadataMap.fromJson(json);
      break;
    default:
      metadata = TransactionMetadataText.fromJson(json);
      break;
  }
  return metadata as TransactionMetadata<T>;
}