setSeed method

  1. @override
void setSeed(
  1. String passphrase
)
override

Implementation

@override
void setSeed(String passphrase) {
  final length = passphrase.length;
  if (length >= 8) {
    var subLength = passphrase.length ~/ 4;
    restoreState([
      passphrase.substring(0, subLength).hashCode,
      passphrase.substring(subLength, 2 * subLength).hashCode,
      passphrase.substring(2 * subLength, 3 * subLength).hashCode,
      passphrase.substring(3 * subLength).hashCode
    ]);
  } else if (length >= 4) {
    restoreState([
      passphrase.hashCode,
      passphrase.substring(1).hashCode,
      passphrase.substring(2).hashCode,
      passphrase.substring(3).hashCode
    ]);
  } else {
    switch (length) {
      case 0:
        restoreState([1, 2, 3, 4]);
        break;
      case 1:
        restoreState([passphrase.hashCode, 12, 123, 0x1234]);
        break;
      case 2:
        restoreState([
          passphrase.hashCode,
          passphrase.substring(1).hashCode,
          123,
          0x1234
        ]);
        break;
      case 3:
        restoreState([
          passphrase.hashCode,
          passphrase.substring(1).hashCode,
          passphrase.substring(2).hashCode,
          0x1234
        ]);
        break;
    }
  }
}