convert method

  1. @override
String convert(
  1. Bech32 input, {
  2. int maxLength = Bech32Validations.maxInputLength,
  3. String encoding = 'bech32',
})
override

Converts input and returns the result of the conversion.

Implementation

@override
String convert(
  Bech32 input, {
  int maxLength = Bech32Validations.maxInputLength,
  String encoding = 'bech32',
}) {
  var hrp = input.hrp;
  var data = input.data;

  if (hrp.length +
          data.length +
          separator.length +
          Bech32Validations.checksumLength >
      maxLength)
    throw TooLong(
      hrp.length + data.length + 1 + Bech32Validations.checksumLength,
    );
  if (hrp.isEmpty) throw TooShortHrp();
  if (hasOutOfRangeHrpCharacters(hrp)) throw OutOfRangeHrpCharacters(hrp);
  if (isMixedCase(hrp)) throw MixedCase(hrp);

  hrp = hrp.toLowerCase();
  final checkSummed = data + _createChecksum(hrp, data, encoding: encoding);

  if (hasOutOfBoundsChars(checkSummed)) throw OutOfBoundChars('<unknown>');

  return hrp + separator + checkSummed.map((i) => charset[i]).join();
}