encodeData method

String encodeData(
  1. String primaryType,
  2. Map<String, dynamic> data,
  3. Map<String, dynamic> types
)

Encodes a Map<String, dynamic> by encoding and concatenating each of its members

@param {string} primaryType - Root type @param {Map<String,dynamic>} data - Map<String,dynamic> to encode @param {Map<String,dynamic>} types - Type definitions @returns {Uint8List} - Encoded representation of an Map<String,dynamic>

Implementation

String encodeData(
  String primaryType,
  Map<String, dynamic> data,
  Map<String, dynamic> types,
) {
  List<String> encodedTypes = ['bytes32'];
  List<dynamic> encodedValues = List<dynamic>.from([]);
  encodedValues.add(hashType(primaryType, types));
  for (var field in types[primaryType]) {
    final _enc = encodeField(
      field["name"],
      field["type"],
      data[field["name"]],
      types,
    );
    encodedTypes.add(_enc[0]);
    encodedValues.add(_enc[1]);
  }

  final _res = _abiHelper.rawEncode(encodedTypes, encodedValues);

  return HEX.encode(_res);
}