exbtc v0.1.2 Exbtc.Core

Link to this section Summary

Types

jacobian number as a tuple

point on the elliptic curve ?

Functions

a()
b()

return hexdigest instead of binary digest

use charlist to represent code strings

recover the public key

if encoding base is 256, return a charlist else return a String.t

use :binary.list_to_bin, not List.to_string which expects utf-8 codepoints

the term bytes in Python 3 is used as charlist in naming the method and argument here

g()

extended Euclidean Algo

n()
p()

iex> C.sha256(‘784734adfids’) “ae616f5c8f6d338e4905f6170a90a231d0c89470a94b28e894a83aef90975557”

Link to this section Types

Link to this type jacobian_number()
jacobian_number() :: {non_neg_integer(), non_neg_integer(), non_neg_integer()}

jacobian number as a tuple

Link to this type pair()
pair() :: {non_neg_integer(), non_neg_integer()}

point on the elliptic curve ?

Link to this section Functions

Link to this function add_privkeys(p1, p2)
Link to this function add_pubkeys(p1, p2)
add_pubkeys(charlist() | String.t(), charlist() | String.t()) ::
  charlist() |
  String.t()
Link to this function b58check_to_bin(key)
b58check_to_bin(charlist()) :: charlist()
Link to this function bin_double_sha256(chars)
bin_double_sha256(charlist()) :: charlist()

return hexdigest instead of binary digest

Link to this function bin_hash160(chars)
bin_hash160(charlist()) :: charlist()
Link to this function bin_ripemd160(chars)
Link to this function bin_sha256(chars)
bin_sha256(charlist()) :: charlist()
Link to this function bin_slowsha(chars)
bin_slowsha(charlist()) :: charlist()
Link to this function bin_to_b58check(chars, magic_byte \\ 0)
bin_to_b58check(charlist(), integer()) :: charlist()
Link to this function bytes_to_hex_string(bin)
bytes_to_hex_string(binary()) :: String.t()
Link to this function changebase(str, from, to, minlen \\ 0)

use charlist to represent code strings

Link to this function compress(pubkey)
Link to this function decode(val, base)
decode(String.t() | charlist(), integer()) :: non_neg_integer()
Link to this function decode_privkey(key, format \\ nil)
decode_privkey(non_neg_integer() | charlist() | String.t(), String.t()) :: non_neg_integer()
Link to this function decode_pubkey(pub, format \\ nil)
decode_pubkey(charlist() | String.t(), String.t()) :: {non_neg_integer(), non_neg_integer()}
Link to this function decode_sig(signature)
decode_sig(String.t()) :: {integer(), integer(), integer()}
Link to this function decompress(pubkey)
Link to this function deterministic_generate_k(msg_hash, privkey)
deterministic_generate_k(String.t(), String.t()) :: non_neg_integer()
Link to this function divide(pubkey, privkey)
divide(charlist() | String.t(), charlist() | String.t()) ::
  charlist() |
  String.t()
Link to this function ecdsa_raw_recover(msg_hash, arg)
ecdsa_raw_recover(charlist(), {non_neg_integer(), non_neg_integer(), non_neg_integer()}) :: pair()

recover the public key

Link to this function ecdsa_raw_sign(msg_hash, privkey)
ecdsa_raw_sign(String.t() | charlist(), String.t() | non_neg_integer()) :: {non_neg_integer(), non_neg_integer(), non_neg_integer()}
Link to this function ecdsa_raw_verify(msg_hash, arg, pubkey)
ecdsa_raw_verify(charlist(), {non_neg_integer(), non_neg_integer(), non_neg_integer()}, String.t() | pair()) :: boolean()
Link to this function ecdsa_recover(msg, signature)
ecdsa_recover(String.t(), String.t()) :: String.t()
Link to this function ecdsa_sign(msg, privkey)
ecdsa_sign(String.t(), String.t()) :: String.t()
Link to this function ecdsa_verify(msg, sig, pub)
ecdsa_verify(String.t(), String.t(), String.t()) :: boolean()
Link to this function ecdsa_verify_address(msg, signature, address)
ecdsa_verify_address(String.t(), String.t(), String.t()) :: boolean()
Link to this function electrum_sig_hash(message)
electrum_sig_hash(String.t()) :: charlist()
Link to this function encode(val, base, minlen \\ 0)
encode(non_neg_integer(), integer(), pos_integer()) ::
  String.t() |
  charlist()
Link to this function encode_privkey(key, format, vbyte \\ 0)
encode_privkey(non_neg_integer() | charlist() | String.t(), String.t(), integer()) ::
  charlist() |
  String.t()
Link to this function encode_pubkey(pub, format)
encode_pubkey({non_neg_integer(), non_neg_integer()}, String.t()) ::
  charlist() |
  String.t()

if encoding base is 256, return a charlist else return a String.t

Link to this function encode_sig(v, r, s)
encode_sig(integer(), integer(), integer()) :: String.t()

use :binary.list_to_bin, not List.to_string which expects utf-8 codepoints

Link to this function fast_add(a, b)
fast_add(pair(), pair()) :: pair()
Link to this function fast_multiply(a, n)
fast_multiply(pair(), non_neg_integer()) :: pair()
Link to this function from_jacobian(p)
from_jacobian(jacobian_number()) :: pair()
Link to this function from_string_to_bytes(s)

the term bytes in Python 3 is used as charlist in naming the method and argument here

Link to this function get_code_string(base)
get_code_string(integer()) :: charlist()
Link to this function get_privkey_format(key)
get_privkey_format(charlist() | non_neg_integer()) :: String.t()
Link to this function get_pubkey_format(key)
get_pubkey_format(charlist() | String.t()) :: String.t()
Link to this function get_version_byte(address)
get_version_byte(String.t()) :: integer()
Link to this function hash_to_int(x)
hash_to_int(String.t() | charlist()) :: integer()

extended Euclidean Algo

Link to this function is_address(address)
Link to this function is_privkey(key)
Link to this function jacobian_add(p, q)
Link to this function jacobian_double(p)
jacobian_double(jacobian_number()) :: jacobian_number()
Link to this function jacobian_multiply(a, n)
jacobian_multiply(jacobian_number(), jacobian_number()) :: jacobian_number()
Link to this function lpad(msg, symbol, len)
Link to this function multiply(pubkey, privkey)
multiply(charlist() | String.t(), charlist() | String.t()) ::
  charlist() |
  String.t()
Link to this function multiply_privkeys(p1, p2)
Link to this function neg_privkey(key)
neg_privkey(charlist() | String.t() | non_neg_integer()) ::
  charlist() |
  String.t()
Link to this function neg_pubkey(key)
neg_pubkey(charlist() | String.t()) :: charlist() | String.t()
Link to this function num_to_var_int(x)
num_to_var_int(integer()) :: charlist()
Link to this function privkey_to_address(key, magicbyte \\ 0)
Link to this function privkey_to_pubkey(key)
privkey_to_pubkey(charlist() | String.t()) :: String.t() | charlist()
privkey_to_pubkey(charlist() | String.t()) :: String.t() | charlist()
Link to this function pubkey_to_address(key, magicbyte \\ 0)
pubkey_to_address({non_neg_integer(), non_neg_integer()} | String.t() | charlist(), non_neg_integer()) :: String.t()
Link to this function random_electrum_seed()
Link to this function random_key()
random_key() :: String.t()

iex> C.sha256(‘784734adfids’) “ae616f5c8f6d338e4905f6170a90a231d0c89470a94b28e894a83aef90975557”

Link to this function slowsha(chars)
slowsha(charlist()) :: String.t()
Link to this function substract(p1, p2)
Link to this function subtract_privkey(p1, p2)
subtract_privkey(charlist() | String.t() | non_neg_integer(), charlist() | String.t() | non_neg_integer()) ::
  charlist() |
  String.t() |
  non_neg_integer()
Link to this function subtract_pubkeys(p1, p2)
subtract_pubkeys(charlist() | String.t(), charlist() | String.t()) ::
  charlist() |
  String.t()
Link to this function to_jacobian(p)
to_jacobian(pair()) :: {non_neg_integer(), non_neg_integer(), 1}