tagToString static method

String tagToString(
  1. dynamic tag
)

Implementation

static String tagToString(TypeTag tag) {
  final data = tag as Map;
  if (data.containsKey('bool')) {
    return 'bool';
  }
  if (data.containsKey('u8')) {
    return 'u8';
  }
  if (data.containsKey('u16')) {
    return 'u16';
  }
  if (data.containsKey('u32')) {
    return 'u32';
  }
  if (data.containsKey('u64')) {
    return 'u64';
  }
  if (data.containsKey('u128')) {
    return 'u128';
  }
  if (data.containsKey('u256')) {
    return 'u256';
  }
  if (data.containsKey('address')) {
    return 'address';
  }
  if (data.containsKey('signer')) {
    return 'signer';
  }
  if (data.containsKey('vector')) {
    return "vector<${TypeTagSerializer.tagToString(data["vector"])}>";
  }
  if (data.containsKey('struct')) {
    final struct = tag["struct"];
    final typeParams = struct["typeParams"]
      .map(TypeTagSerializer.tagToString)
      .join(', ');
    return "${struct["address"]}::${struct["module"]}::${struct["name"]}${
      typeParams != null && typeParams.toString().isNotEmpty ? "<$typeParams>" : ''
    }";
  }
  throw ArgumentError('Invalid TypeTag');
}