getDynamicFieldObject method

Future<ObjectData?> getDynamicFieldObject(
  1. String parentId,
  2. String nameType,
  3. dynamic nameValue, {
  4. ObjectIncludeOptions? include,
})

The suix_getDynamicFieldObject equivalent: derives the field UID from parentId + the encoded name and fetches it (null if absent).

Implementation

Future<ObjectData?> getDynamicFieldObject(
  String parentId,
  String nameType,
  dynamic nameValue, {
  ObjectIncludeOptions? include,
}) async {
  final keyBcs = _encodeDynamicFieldName(nameType, nameValue);
  if (keyBcs == null) return null;

  final fieldId = sui_dart.deriveDynamicFieldId(
    parentObjectId: parentId,
    keyTypeTag: nameType,
    keyBcs: keyBcs,
  );

  final objects = await getObjects([
    fieldId,
  ], include: include ?? const ObjectIncludeOptions(json: true));
  if (objects.isNotEmpty && objects.first is ObjectSuccess) {
    return (objects.first as ObjectSuccess).data;
  }
  return null;
}