normalizedMoveTypeToJson function

dynamic normalizedMoveTypeToJson(
  1. NormalizedMoveType type
)

Converts a gRPC NormalizedMoveType into the JSON SuiMoveNormalizedType shape normalizedTypeToMoveTypeSignature consumes. Both sides are structured, so this is a 1:1 recursion.

Implementation

dynamic normalizedMoveTypeToJson(NormalizedMoveType type) {
  return switch (type) {
    MoveTypePrimitive(:final typeName) => typeName,
    MoveTypeVector(:final element) => {
      'Vector': element == null ? null : normalizedMoveTypeToJson(element),
    },
    MoveTypeStruct(
      :final address,
      :final module,
      :final name,
      :final typeArguments,
    ) =>
      {
        'Struct': {
          'address': address,
          'module': module,
          'name': name,
          'typeArguments': typeArguments.map(normalizedMoveTypeToJson).toList(),
        },
      },
    MoveTypeParameter(:final index) => {'TypeParameter': index},
    MoveTypeReference(:final body) => {
      'Reference': normalizedMoveTypeToJson(body),
    },
    MoveTypeMutableReference(:final body) => {
      'MutableReference': normalizedMoveTypeToJson(body),
    },
  };
}