encode static method

String encode(
  1. Uint8List bytes
)

Encodes bytes to Base58 string.

Implementation

static String encode(Uint8List bytes) {
  if (bytes.isEmpty) return '';

  // Count leading zeros
  var leadingZeros = 0;
  for (final b in bytes) {
    if (b == 0) {
      leadingZeros++;
    } else {
      break;
    }
  }

  // Convert to BigInt
  var value = BigInt.zero;
  for (final b in bytes) {
    value = (value << 8) | BigInt.from(b);
  }

  // Convert to base58
  final result = StringBuffer();
  while (value > BigInt.zero) {
    final remainder = (value % BigInt.from(58)).toInt();
    value = value ~/ BigInt.from(58);
    result.write(_alphabet[remainder]);
  }

  // Add leading '1's for leading zeros
  for (var i = 0; i < leadingZeros; i++) {
    result.write('1');
  }

  return result.toString().split('').reversed.join();
}