encode static method
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();
}