def test_basic_add_delete(self): kc: Keychain = Keychain(testing=True) kc.delete_all_keys() assert kc._get_free_private_key_seed_index() == 0 assert kc._get_free_private_key_index() == 0 assert len(kc.get_all_private_keys()) == 0 mnemonic = generate_mnemonic() seed = seed_from_mnemonic(mnemonic) mnemonic_2 = generate_mnemonic() seed_2 = seed_from_mnemonic(mnemonic_2) kc.add_private_key_seed(seed) assert kc._get_free_private_key_seed_index() == 1 assert kc._get_free_private_key_index() == 0 assert len(kc.get_all_private_keys()) == 1 kc.add_private_key_seed(seed_2) kc.add_private_key_seed(seed_2) # checks to not add duplicates assert kc._get_free_private_key_seed_index() == 2 assert kc._get_free_private_key_index() == 0 assert len(kc.get_all_private_keys()) == 2 raw = ExtendedPrivateKey.from_seed(b"123") kc.add_private_key(raw) kc.add_private_key(raw) kc.add_private_key(raw) kc.add_private_key(raw) # Checks to not add duplicates raw_2 = ExtendedPrivateKey.from_seed(b"1234") kc.add_private_key(raw_2) assert kc._get_free_private_key_seed_index() == 2 assert kc._get_free_private_key_index() == 2 assert len(kc.get_all_private_keys()) == 4 assert len(kc.get_all_public_keys()) == 4 assert raw in [k for (k, s) in kc.get_all_private_keys()] kc.delete_key_by_fingerprint(raw_2.get_public_key().get_fingerprint()) assert kc._get_free_private_key_index() == 1 assert len(kc.get_all_private_keys()) == 3 seed_key_2 = ExtendedPrivateKey.from_seed(seed_2) kc.delete_key_by_fingerprint(seed_key_2.get_public_key().get_fingerprint()) assert kc._get_free_private_key_seed_index() == 1 assert len(kc.get_all_private_keys()) == 2 kc.delete_all_keys() assert kc._get_free_private_key_seed_index() == 0 assert kc._get_free_private_key_index() == 0 assert len(kc.get_all_private_keys()) == 0 kc.add_private_key_not_extended(raw_2.get_private_key()) assert kc._get_free_private_key_seed_index() == 0 assert kc._get_free_private_key_index() == 1 assert len(kc.get_all_private_keys()) == 1 assert raw_2 not in [k for (k, s) in kc.get_all_private_keys()] assert raw_2.get_private_key() in [ k.get_private_key() for (k, s) in kc.get_all_private_keys() ]
def generate_and_add(): """ Generates a seed for a private key, prints the mnemonic to the terminal, and adds the key to the keyring. """ mnemonic = generate_mnemonic() print("Generating private key.") add_private_key_seed(mnemonic)
def generate_and_print(): """ Generates a seed for a private key, and prints the mnemonic to the terminal. """ mnemonic = generate_mnemonic() print("Generating private key. Mnemonic (24 secret words):") print(mnemonic) print( "Note that this key has not been added to the keychain. Run chia keys add_seed -m [MNEMONICS] to add" ) return mnemonic
async def generate_mnemonic(self): mnemonic = generate_mnemonic() response = {"success": True, "mnemonic": mnemonic} return response
async def generate_mnemonic(self, request: Dict): return {"mnemonic": generate_mnemonic().split(" ")}
def test_basic_add_delete(self): kc: Keychain = Keychain(testing=True) kc.delete_all_keys() assert kc._get_free_private_key_index() == 0 assert len(kc.get_all_private_keys()) == 0 assert kc.get_first_private_key() is None assert kc.get_first_public_key() is None mnemonic = generate_mnemonic() entropy = bytes_from_mnemonic(mnemonic) assert bytes_to_mnemonic(entropy) == mnemonic mnemonic_2 = generate_mnemonic() kc.add_private_key(mnemonic, "") assert kc._get_free_private_key_index() == 1 assert len(kc.get_all_private_keys()) == 1 kc.add_private_key(mnemonic_2, "") kc.add_private_key(mnemonic_2, "") # checks to not add duplicates assert kc._get_free_private_key_index() == 2 assert len(kc.get_all_private_keys()) == 2 assert kc._get_free_private_key_index() == 2 assert len(kc.get_all_private_keys()) == 2 assert len(kc.get_all_public_keys()) == 2 assert kc.get_all_private_keys()[0] == kc.get_first_private_key() assert kc.get_all_public_keys()[0] == kc.get_first_public_key() assert len(kc.get_all_private_keys()) == 2 seed_2 = mnemonic_to_seed(mnemonic, "") seed_key_2 = AugSchemeMPL.key_gen(seed_2) kc.delete_key_by_fingerprint(seed_key_2.get_g1().get_fingerprint()) assert kc._get_free_private_key_index() == 0 assert len(kc.get_all_private_keys()) == 1 kc.delete_all_keys() assert kc._get_free_private_key_index() == 0 assert len(kc.get_all_private_keys()) == 0 kc.add_private_key(bytes_to_mnemonic(token_bytes(32)), "my passphrase") kc.add_private_key(bytes_to_mnemonic(token_bytes(32)), "") kc.add_private_key(bytes_to_mnemonic(token_bytes(32)), "third passphrase") assert len(kc.get_all_public_keys()) == 3 assert len(kc.get_all_private_keys()) == 1 assert len(kc.get_all_private_keys(["my passphrase", ""])) == 2 assert len( kc.get_all_private_keys( ["my passphrase", "", "third passphrase", "another"])) == 3 assert len(kc.get_all_private_keys(["my passhrase wrong"])) == 0 assert kc.get_first_private_key() is not None assert kc.get_first_private_key(["bad passphrase"]) is None assert kc.get_first_public_key() is not None kc.delete_all_keys() kc.add_private_key(bytes_to_mnemonic(token_bytes(32)), "my passphrase") assert kc.get_first_public_key() is not None