parseDomainData function
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;
}