encode function

List<String> encode(
  1. BigInt participantId, {
  2. List<String>? wordlist,
  3. int bitCount = RecoveryConstants.defaultBitCount,
  4. EncodingConfig config = RecoveryConstants.defaultConfig,
})

Implementation

List<String> encode(
  BigInt participantId, {
  List<String>? wordlist,
  int bitCount = RecoveryConstants.defaultBitCount,
  EncodingConfig config = RecoveryConstants.defaultConfig,
}) {
  final effectiveWordlist = wordlist ?? wordlistEn;

  if (effectiveWordlist.length < (1 << config.bitsPerWord)) {
    throw ArgumentError(
      'Wordlist must have at least ${1 << config.bitsPerWord} words',
    );
  }

  final indices = encodeIdToIndices(participantId, bitCount, config);

  if (config.useChecksum) {
    final checksumIndex = computeChecksum(indices, effectiveWordlist.length);
    indices.add(checksumIndex);
  }

  return indices.map((i) => effectiveWordlist[i]).toList();
}