stringToU8a function

Uint8List stringToU8a(
  1. String msg, {
  2. String? enc,
  3. bool useDartEncode = true,
})

Implementation

Uint8List stringToU8a(String msg, {String? enc, bool useDartEncode = true}) {
  if (useDartEncode == false) {
    if (enc == 'hex') {
      msg = strip0xHex(msg);
      List<int> hexRes = [];
      msg = msg.replaceAll(RegExp("[^a-z0-9]"), '');
      if (msg.length % 2 != 0) msg = '0' + msg;
      for (var i = 0; i < msg.length; i += 2) {
        var cul = msg[i] + msg[i + 1];
        var result = int.parse(cul, radix: 16);
        hexRes.add(result);
      }
      return Uint8List.fromList(hexRes);
    } else {
      List<int> noHexRes = [];
      for (var i = 0; i < msg.length; i++) {
        var c = msg.codeUnitAt(i);
        var hi = c >> 8;
        var lo = c & 0xff;
        if (hi > 0) {
          noHexRes.add(hi);
          noHexRes.add(lo);
        } else {
          noHexRes.add(lo);
        }
      }

      return Uint8List.fromList(noHexRes);
    }
  } else {
    return Uint8List.fromList(utf8.encode(msg));
  }
}