encode static method

String encode(
  1. String hrp,
  2. int witnessVersion,
  3. Uint8List witnessProgram
)

Encodes a witness program to a Bech32 address.

hrp is the human-readable part (e.g., 'bc' for mainnet, 'tb' for testnet). witnessVersion is 0 for SegWit v0, 1 for Taproot. witnessProgram is the hash (20 bytes for P2WPKH, 32 bytes for P2WSH/P2TR).

Implementation

static String encode(
    String hrp, int witnessVersion, Uint8List witnessProgram) {
  final useBech32m = witnessVersion > 0;
  final data = _convertBits(witnessProgram, 8, 5, true);
  final combined = [witnessVersion, ...data];
  final checksum = _createChecksum(hrp, combined, useBech32m);

  final result = StringBuffer(hrp);
  result.write('1');
  for (final d in [...combined, ...checksum]) {
    result.write(_charset[d]);
  }

  return result.toString();
}