Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aeternity/aepp-sdk-elixir
Elixir SDK targeting the æternity node implementation
https://github.com/aeternity/aepp-sdk-elixir
Last synced: about 2 months ago
JSON representation
Elixir SDK targeting the æternity node implementation
- Host: GitHub
- URL: https://github.com/aeternity/aepp-sdk-elixir
- Owner: aeternity
- License: isc
- Created: 2019-02-25T11:08:43.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-31T09:55:31.000Z (almost 5 years ago)
- Last Synced: 2024-10-31T17:39:30.720Z (2 months ago)
- Language: Elixir
- Homepage:
- Size: 1.39 MB
- Stars: 19
- Watchers: 10
- Forks: 5
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-aeternity - Elixir
- awesome-aeternity - aepp-sdk-elixir - Outdated. (Development / Software Development Kits (SDKs))
README
# Aepp SDK Elixir
Elixir SDK targeting the [æternity node](https://github.com/aeternity/aeternity) implementation.
## Installation
To start using this project, simply use source code or compiled binaries, provided in our [releases](https://github.com/aeternity/aepp-sdk-elixir/releases).
## Installation as a dependency
An installation as library, basic usage guide can be found [here](https://github.com/aeternity/aepp-sdk-elixir/tree/master/examples/usage.md).
## Using code from master/other branches
In order to use code from master branch:
1. First, you will need to install **Java** `v11` or higher and **Maven** `v3.3.3` or higher:
```
sudo apt-install default-jdk
sudo apt-install maven
```
2. Then, you will have to [set-up the project](https://github.com/aeternity/aepp-sdk-elixir#setup-the-project).These dependencies are used by our [OpenAPI Code Generator](https://github.com/aeternity/openapi-generator), which builds low-level API calls, needed for [Aeternity Node](https://github.com/aeternity/aeternity) and [Aeternity Middleware](https://github.com/aeternity/aepp-middleware).
## Prerequisites
**Using released versions:**
Ensure that you have [Elixir](https://elixir-lang.org/install.html) and [wget](https://www.gnu.org/software/wget/) installed.**Using code from master/other branches**, as mentioned before, additionally, you will have to install [Java](https://java.com/en/download/help/download_options.xml) and [Maven](https://maven.apache.org/install.html).
## 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](https://github.com/aeternity/openapi-generator/tree/elixir-adjustment#openapi-generator) [release](https://github.com/aeternity/openapi-generator/releases) version.
- `v5.4.1` - Aeternity node API [specification file](https://github.com/aeternity/aeternity/blob/v5.4.1/apps/aehttp/priv/swagger.yaml).
- `v0.13.0` - Aeternity middleware API [specification file](https://github.com/aeternity/aepp-middleware/blob/v0.13.0/swagger/swagger.json).## Implemented functionality
- [**Client module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Client.html#content)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.
- [**Account module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Account.html#content)
Contains various functions to interact with aeternity account, e.g. getting an account, spending and etc.
- [**Chain module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Chain.html#content)
In chain module we implemented chain-related activities, like getting current blocks, generations, transactions and others.
- [**Oracle module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Oracle.html#content)
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.
- [**Contract module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Contract.html#content)
Module implements functions needed to: deploy, call, compile Aeternity's Sophia smart contracts.
- [**Naming system module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.AENS.html#content)
Naming system module has many functionalities, needed to manipulate Aeternity naming system. It allows developers to: pre-claim, claim, update, transfer and revoke names.
- [**Channel module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Channel.OnChain.html#content)
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.
- [**Noise listener module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Listener.html#content)
Module, which works with enoise protocol, which is used by Aeternity. Implemented connection between peers and listening for new blocks, transactions and other stuff.
- [**Middleware high-level module**](http://aeternity.com/aepp-sdk-elixir/AeppSDK.Middleware.html#content)
Simple high-module which performs various requests to exposed endpoints in [Aeternity Middleware](https://github.com/aeternity/aepp-middleware) project.
**Full documentation can be found [here](http://aeternity.com/aepp-sdk-elixir/api-reference.html).**
## 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](https://github.com/aeternity/aepp-sdk-elixir/blob/master/examples/usage.md#define-a-client).