serializeExtendedKey function

String serializeExtendedKey(
  1. ParsedExtendedKey parsed, {
  2. bool private = false,
  3. String? format,
})

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)]);
}