deserializeKeyBytes static method

Bip32DeserializedKey deserializeKeyBytes(
  1. List<int> serKeyBytes, {
  2. Bip32KeyNetVersions? keyNetVer,
})

Implementation

static Bip32DeserializedKey deserializeKeyBytes(
  List<int> serKeyBytes, {
  Bip32KeyNetVersions? keyNetVer,
}) {
  // Get if key is public/private depending on the net version
  final isPublic = _getIfPublic(
    serKeyBytes,
    keyNetVer ?? Bip32Const.mainNetKeyNetVersions,
  );

  // Validate length
  if (isPublic &&
      serKeyBytes.length != Bip32KeySerConst.serializedPubKeyByteLen) {
    throw Bip32KeyError('Invalid extended public key.');
  }
  if (!isPublic &&
      !Bip32KeySerConst.serializedPrivKeyByteLen.contains(
        serKeyBytes.length,
      )) {
    throw Bip32KeyError('Invalid extended private key.');
  }

  // Get parts back
  final keyParts = _getPartsFromBytes(serKeyBytes, isPublic);

  return Bip32DeserializedKey(keyParts.$1, keyParts.$2, isPublic);
}