normalizedMoveTypeToJson function
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),
},
};
}