parseDomainData function

DomainData parseDomainData(
  1. ProgrammaticScryptoSborValue field,
  2. DomainData acc
)

Implementation

DomainData parseDomainData(ProgrammaticScryptoSborValue field, DomainData acc) {
  if (field.fieldName == 'primary_domain' &&
      field.kind == ProgrammaticScryptoSborValueKind.enum_ &&
      (field as ProgrammaticScryptoSborValueEnum).variantName != 'None') {
    return acc.copyWith(
        primaryDomain:
            (field.fields[0] as ProgrammaticScryptoSborValueNonFungibleLocalId)
                .value);
  }

  if (field.kind == ProgrammaticScryptoSborValueKind.string &&
      field.fieldName != null) {
    if (field.fieldName == 'name') {
      return acc.copyWith(
          name: (field as ProgrammaticScryptoSborValueString).value);
    } else if (field.fieldName == 'key_image_url') {
      return acc.copyWith(
          keyImageUrl: (field as ProgrammaticScryptoSborValueString).value);
    }
  }
  if (field.fieldName == 'created_timestamp' &&
      field.kind == ProgrammaticScryptoSborValueKind.i64) {
    return acc.copyWith(
        createdTimestamp:
            int.parse((field as ProgrammaticScryptoSborValueI64).value) * 1000);
  }
  if (field.fieldName == 'last_valid_timestamp' &&
      field.kind == ProgrammaticScryptoSborValueKind.enum_ &&
      (field as ProgrammaticScryptoSborValueEnum).variantName != 'None' &&
      field.fields[0].kind == ProgrammaticScryptoSborValueKind.i64) {
    return acc.copyWith(
        lastValidTimestamp: int.parse(
                (field.fields[0] as ProgrammaticScryptoSborValueI64).value) *
            1000);
  }

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