lib/block_keys.ex
defmodule BlockKeys do
@moduledoc """
Generates or restores a wallet from mnemonic phrases
"""
alias BlockKeys.Mnemonic
alias BlockKeys.CKD
def generate(network \\ :mainnet) do
phrase = Mnemonic.generate_phrase()
%{
mnemonic: phrase,
root_key: from_mnemonic(phrase, network)
}
end
def from_mnemonic(phrase, network \\ :mainnet) do
phrase
|> Mnemonic.generate_seed()
|> CKD.master_keys()
|> CKD.master_private_key(network)
end
end