class SimpleHDKeyChain implements EncryptableKeyChain, KeyBag {

    @Override
    public SimpleHDKeyChain toEncrypted(CharSequence password) {
        checkNotNull(password, "Attempt to encrypt with a null password.");
        checkArgument(password.length() > 0, "Attempt to encrypt with an empty password.");
        checkState(!rootKey.isEncrypted(), "Attempt to encrypt a root key that is already encrypted.");
        checkState(!rootKey.isPubKeyOnly(), "Attempt to encrypt a watching chain.");
        KeyCrypter scrypt = new KeyCrypterScrypt();
        KeyParameter derivedKey = scrypt.deriveKey(password);
        return toEncrypted(scrypt, derivedKey);
    }

    public  SimpleHDKeyChain(DeterministicKey rootkey);
      SimpleHDKeyChain(DeterministicKey rootkey, @Nullable KeyCrypter crypter);
      SimpleHDKeyChain(DeterministicKey rootkey, @Nullable KeyCrypter crypter,
                     @Nullable KeyParameter key);
    private  SimpleHDKeyChain(KeyCrypter crypter, KeyParameter aesKey, SimpleHDKeyChain chain);

}