encodeKey static method

dynamic encodeKey({
  1. required TransactionMetadata key,
  2. required MetadataSchemaConfig config,
})

Implementation

static dynamic encodeKey(
    {required TransactionMetadata key,
    required MetadataSchemaConfig config}) {
  switch (key.type) {
    case TransactionMetadataType.metadataText:
      return key.toJsonSchema(config: config);
    case TransactionMetadataType.metadataBytes:
      if (config.jsonSchema != MetadataJsonSchema.noConversions) {
        return key.toJsonSchema(config: config);
      }
      break;
    case TransactionMetadataType.metadataInt:
      if (config.jsonSchema != MetadataJsonSchema.noConversions) {
        return key.toJsonSchema(config: config).toString();
      }
      break;
    case TransactionMetadataType.metadataList:
    case TransactionMetadataType.metadataMap:
      return key.toJsonSchema(config: config);
  }
  throw MessageException(
      "Key type not allowed in JSON under specified schema.",
      details: {"Key": key, "type": key.type});
}