bchToLegacy static method
Implementation
static String bchToLegacy(String addr, {String? prefix}) {
final parts = addr.split(':');
final cashAddressPrefix = (prefix ?? parts.first).toLowerCase();
if (parts.length != 2 || !validateCashAddress(addr, cashAddressPrefix)) {
throw ArgumentError('Invalid CashAddr');
}
final payload = base32Decode(parts[1]);
final decoded = convertBits(
payload.sublist(0, payload.length - 8),
5,
8,
strictMode: true,
);
final isScriptHash = decoded.first & 0x78 == 8;
final isMainnet = cashAddressPrefix == 'bitcoincash';
final legacyVersion = isMainnet
? (isScriptHash ? 0x05 : 0x00)
: (isScriptHash ? 0xc4 : 0x6f);
return bs58check.encode(
Uint8List.fromList([legacyVersion, ...decoded.sublist(1)]),
);
}