README.md

# Tezex
[![Build Status](https://img.shields.io/github/actions/workflow/status/objkt-com/tezex/elixir.yml?branch=main)](https://github.com/objkt-com/tezex/actions) [![Hex.pm Version](https://img.shields.io/hexpm/v/tezex.svg)](https://hex.pm/packages/tezex) [![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://hexdocs.pm/tezex/)

A collection of utils to work with the Tezos blockchain using Elixir: parsing Micheline, verifying Tezos signed messages, deriving Tezos wallet addresses from public key, etc.

Read the documentation on [hexdocs](https://hexdocs.pm/tezex/).

Since what this lib provides is so far limited to what we need at [objkt.com](https://objkt.com), external contributions are most welcome.
For instance if you need to sign messages or transactions, or translating Micheline to hex, we'd love to collaborate on a PR.

## Installation

The package can be installed by adding `tezex` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:tezex, "~> 0.1.0"}
  ]
end
```

## Requirements

OTP24 or above, it needs an elixir version that uses OTP 24 or above, for instance

```
elixir 1.14.3-otp-25
erlang 25.2.3
```

or

```
elixir 1.13.3-otp-24
erlang 24.3.4
```

This lib depends on [enacl](https://github.com/jlouis/enacl#installrequirements) which requires `libsodium` and other config/compilation tools.

For macOS: `brew install libsodium gmp automake libtool gcc`.
If you have an Apple Silicon processor take a look here: https://github.com/jlouis/enacl/issues/53 .

## Test

```sh
$ mix test
$ mix test.watch
$ mix coveralls.html
```

## Generate Documentation

```sh
$ mix docs
```