๐ Vertices SDK
May 21, 2021 ยท View on GitHub
๐ Specifications
The Vertices SDK provides developers with an easy way for devices to interact with Blockchains.
We are doing our best to achieve those goals:
- C library, can be included into C++ projects.
- Can be easily imported into any project
- Examples provided:
- Unix-based OSes
- ESP-IDF
- Zephyr (soon)
- Connect to any Algorand API (local or remote provider)
- Build with CMake and Make
- Continuous Integration to maintain code quality:
- Build static library for several targets
- Unit-Testing
At Vertices Network, we want to free your mind from the hassle of a safe design. Here are other projects we are working on:
- Secure Element support for future and more secure designs
- Encrypted Flash for current designs
โ ๏ธ IMPORTANT
- The current version of the SDK is still very early.
- It is not advised to use it in a production environment.
- Use it at your own risk.
๐งญ Repository structure
.
โโโ CMakeLists.txt # root CMakeLists: use it if you want to try the examples
โโโ examples # examples
โ โโโ unix # Unix example to run the wallet on your machine or Raspberry Pi...
โ โโโ ... # more to come
โโโ external # external libraries
โ โโโ mpack # we've got mpack for example
โ โโโ cJson # cJSON to parse JSON payloads
โโโ inc # public include directory: you'll need those files to use the library
โ โโโ vertices.h # for example, `vertices.h`
โ โโโ ...
โโโ lib #
โ โโโ inc # "private" header files, used within the library
โ โโโ algorand # implementation of Vertices with Algorand. The Algorand provider is the first implemented.
โ โโโ http # HTTP wrappers functions, GET, POST... several implementations available for several stacks (libcurl, ESP-IDF...)
โ โโโ CMakeLists.txt # CMake of the Vertices SDK, exports a package to be imported in your project, see examples' CMakeLists
โ โโโ ... # source files
โโโ mdk # the SDK is running on several architecture, those files provide some compiler abstraction
โ โโโ compilers.h
โโโ utils # tools to make things easier, clearer, smarter :)
โโโ utils.cmake
๐งฐ Installation
This repository is intended to be used as an external component to your project such as a submodule.
# clone into a directory
git clone <url> [path]
# clone into a directory including its submodules
git clone --recurse-submodules <url> [path]
# clone as submodule into an optionally specified location
git submodule add <url> [path]
Checkout the documentation to get started.
๐ We might also provide a Docker container once we have set up CI/CD.
Configuration
A config file provides an easy way to configure the SDK: include/vertices_config.h. The file is fully documented.
Compilation
CMake is currently used to build the library and examples (GNU Make is on the roadmap).
CMake
In order to build the source using CMake in a separate directory (recommended), just enter at the command line:
mkdir build && cd build
cmake ..
# build static library: lib/libvertices.a
make vertices
# build Unix example
make unix_example
Make
๐ Soon.
๐ Getting started
๐ More to come about how to import the package into your build system.
๐ก Vertices is providing examples with various major SDKs, such as the ESP-IDF for Espressif microcontrollers. You can probably copy-paste our source code into your project ๐.
Examples
Full documentation is available at docs.vertices.network.
๐ Tests
Make sure you have cpputest installed:
- Linux -
sudo apt-get install cpputest lcov - OSX -
brew install cpputest lcov
From /tests you will be able to launch the unique command to run all the tests:
make
Checkout the Readme for more information.
๐ Contributing
๐ค We gratefully accept bug reports and contributions from the community.
- Check for open issues or start a discussion around a feature idea or a bug.
- Fork the repository on GitHub to start making your changes. As a general rule, you should use the "development" branch as a basis.
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Send a pull request and bug us until it gets merged and published. Contributions may need some modifications, so work with us to get your change accepted!