[Final Report] Grant report Elixir SDK

Hello community of Æternity!
Here is the summary of my and @Arthur 's work on Elixir SDK project.

Summary of Elixir SDK development

At the current state, Elixir SDK v0.5.4 should be compatible to the latest(at the moment of writing this article) - v5.4.1 Aeternity node described HTTP API endpoints.

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.