Current section

Files

Jump to
bitcoinlib lib key hd derivation_path parser purpose.ex
Raw

lib/key/hd/derivation_path/parser/purpose.ex

defmodule BitcoinLib.Key.HD.DerivationPath.Parser.Purpose do
# https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose
@bip44_purpose 44
@bip44_atom :bip44
# https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki#public-key-derivation
@bip49_purpose 49
@bip49_atom :bip49
# https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki#public-key-derivation
@bip84_purpose 84
@bip84_atom :bip84
@invalid_atom :invalid
@doc """
Converts an bip integer into an atom representing the purpose
## Examples
iex> BitcoinLib.Key.HD.DerivationPath.Parser.Purpose.parse(44)
:bip44
"""
@spec parse(integer()) :: :bip44 | :bip49 | :bip84 | :invalid
def parse(purpose) when is_integer(purpose) do
case purpose do
@bip44_purpose -> @bip44_atom
@bip49_purpose -> @bip49_atom
@bip84_purpose -> @bip84_atom
_ -> @invalid_atom
end
end
end