Awesome
Aepp SDK Elixir
Elixir SDK targeting the æternity node implementation.
Installation
To start using this project, simply use source code or compiled binaries, provided in our releases.
Installation as a dependency
An installation as library, basic usage guide can be found here.
Using code from master/other branches
In order to use code from master branch:
- First, you will need to install Java
v11
or higher and Mavenv3.3.3
or higher:
sudo apt-install default-jdk
sudo apt-install maven
- Then, you will have to set-up the project.
These dependencies are used by our OpenAPI Code Generator, which builds low-level API calls, needed for Aeternity Node and Aeternity Middleware.
Prerequisites
Using released versions: Ensure that you have Elixir and wget installed.
Using code from master/other branches, as mentioned before, additionally, you will have to install Java and Maven.
Setup the project
git clone https://github.com/aeternity/aepp-sdk-elixir
cd aepp-sdk-elixir
mix build_api v1.2.1-elixir v5.4.1 v0.13.0
Where:
v1.2.1-elixir
- OpenAPI client generator release version.v5.4.1
- Aeternity node API specification file.v0.13.0
- Aeternity middleware API specification file.
Implemented functionality
Consists of definition of a client structure and other helper functions. Client structure helps us collect and manage all data needed to perform various requests to the HTTP endpoints.
Contains various functions to interact with aeternity account, e.g. getting an account, spending and etc.
In chain module we implemented chain-related activities, like getting current blocks, generations, transactions and others.
This module covers oracle-related activities such as: registering a new oracle, querying an oracle, responding from an oracle, extending an oracle, retrieving oracle and queries functionality.
Module implements functions needed to: deploy, call, compile Aeternity's Sophia smart contracts.
Naming system module has many functionalities, needed to manipulate Aeternity naming system. It allows developers to: pre-claim, claim, update, transfer and revoke names.
Module, containing implemented and tested all channel on-chain transactions and activities. They are: getting channel info by id, opening a channel, depositing to a channel, withdrawing from a channel, closing solo and closing mutually a channel and many others.
Module, which works with enoise protocol, which is used by Aeternity. Implemented connection between peers and listening for new blocks, transactions and other stuff.
Simple high-module which performs various requests to exposed endpoints in Aeternity Middleware project.
Full documentation can be found here.
Use Docker image
In order to play around with the Elixir SDK, you can use docker image:
docker pull aeternity/aepp-sdk-elixir:latest
docker run -it aeternity/aepp-sdk-elixir:latest
Example to defined a client can be found here.