serializeExtendedKey function
Implementation
String serializeExtendedKey(ParsedExtendedKey parsed,
{bool private = false, String? format}) {
final selected = _formats[format ?? parsed.format];
if (selected == null) {
throw WalletHDDerivationException(
'unsupported extended-key format: $format');
}
if (private && parsed._node.isPublicOnly) {
throw const WalletHDDerivationException(
'private material is not available from an extended public key');
}
final sourceValue = private
? parsed._node.privateKey.toExtended
: parsed._node.publicKey.toExtended;
final payload = Base58Decoder.checkDecode(sourceValue);
final version =
BytesUtils.fromHexString(private ? selected.private : selected.public);
return Base58Encoder.checkEncode([...version, ...payload.sublist(4)]);
}