generateIntermediatePassphrase static method
Generate an intermediate passphrase from a regular passphrase.
This method creates an intermediate passphrase from the given regular passphrase. It includes lot and sequence numbers if provided, and follows BIP38 standards for encoding.
passphrase: The regular passphrase to be transformed.lotNum: The optional lot number.sequenceNum: The optional sequence number.- Returns: A BIP38-compliant intermediate passphrase.
 
Implementation
static String generateIntermediatePassphrase(String passphrase,
    {int? lotNum, int? sequenceNum}) {
  /// Determine if lot and sequence numbers are included.
  final hasLotSeq = lotNum != null && sequenceNum != null;
  /// Generate owner entropy based on lot and sequence numbers.
  final ownerEntropy = hasLotSeq
      ? Bip38EcUtils.ownerEntropyWithLotSeq(lotNum, sequenceNum)
      : Bip38EcUtils.ownerEntropyNoLotSeq();
  /// Derive passfactor and passpoint from the passphrase and owner entropy.
  final passfactor =
      Bip38EcUtils.passFactor(passphrase, ownerEntropy, hasLotSeq);
  final passpoint = Bip38EcUtils.passPoint(passfactor);
  /// Determine the appropriate magic number based on lot and sequence numbers.
  final magic = hasLotSeq
      ? Bip38EcConst.intPassMagicWithLotSeq
      : Bip38EcConst.intPassMagicNoLotSeq;
  /// Encode the intermediate passphrase
  final intermediatePassphrase = Base58Encoder.checkEncode(
      List<int>.from([...magic, ...ownerEntropy, ...passpoint]));
  return intermediatePassphrase;
}