parseRecordData function

RecordItem parseRecordData(
  1. ProgrammaticScryptoSborValue field,
  2. RecordItem acc
)

Implementation

RecordItem parseRecordData(ProgrammaticScryptoSborValue field, RecordItem acc) {
  if (field.fieldName == 'id_additions') {
    return acc.copyWith(
        idAdditions: (field as ProgrammaticScryptoSborValueArray)
            .elements
            .map((e) => (e as ProgrammaticScryptoSborValueString).value)
            .toList());
  }

  if (field.fieldName == 'domain_id') {
    return acc.copyWith(
        domainId:
            (field as ProgrammaticScryptoSborValueNonFungibleLocalId).value);
  }

  if (field.fieldName == 'context') {
    return acc.copyWith(
        context: (field as ProgrammaticScryptoSborValueString).value);
  }

  if (field.fieldName == 'directive' &&
      (field as ProgrammaticScryptoSborValueEnum).variantName == 'Some') {
    return acc.copyWith(
        directive:
            (field.fields[0] as ProgrammaticScryptoSborValueString).value);
  }

  if (field.fieldName == 'value' &&
      (field as ProgrammaticScryptoSborValueEnum).variantName == 'Some') {
    return acc.copyWith(
        value: (field.fields[0] as ProgrammaticScryptoSborValueString).value);
  }

  if (field.fieldName == 'platform_identifier') {
    return acc.copyWith(
        platformIdentifier: ((field as ProgrammaticScryptoSborValueEnum)
                .fields[0] as ProgrammaticScryptoSborValueString)
            .value);
  }

  if (field.fieldName == 'key_image_url') {
    return acc.copyWith(
        keyImageUrl: (field as ProgrammaticScryptoSborValueString).value);
  }

  if (field.fieldName == 'domain_id') {
    return acc.copyWith(
        domainId:
            (field as ProgrammaticScryptoSborValueNonFungibleLocalId).value);
  }

  return acc;
}