Current section

Files

Jump to
ex_base58 lib ex_base58.ex
Raw

lib/ex_base58.ex

defmodule ExBase58 do
@moduledoc """
Base58 encoding and decoding.
It uses https://github.com/debris/base58 rust library
"""
alias ExBase58.Impl
@doc """
Encodes into Base58 format
## Examples
iex> ExBase58.encode("hey")
"c4oi"
iex> ExBase58.encode("hello")
"Cn8eVZg"
"""
@spec encode(binary()) :: String.t()
def encode(binary), do: Impl.encode(binary)
@doc """
Decodes from Base58 format
## Examples
iex> ExBase58.decode("c4oi")
{:ok, "hey"}
iex> ExBase58.decode("Cn8eVZg")
{:ok, "hello"}
iex> ExBase58.decode("Hello")
{:error, :decode_error}
"""
@spec decode(String.t()) :: {:ok, binary()} | {:error, :decode_error}
def decode(encoded), do: Impl.decode(encoded)
end