Note: This repo is still in early development and is not ready for production use.
Ths repository builds off the developer experience within https://github.com/stacks-network/sbtc-developer-release.
All decisions are made and tracked via GitHub issues where they and their rationale can be verified publicly. Due to sBTC's critical nature extensive research and planning has been done to ensure all funds remain secure on launch.
Before going any further please review our code of conduct
This section is under development and may be missing some tools. Please open a GitHub issue if you believe some tools are missing.
The following are the developer tools that you should install on your local machine in order to build and run the sources in this repository.
- Cargo - Installation Guide - Builds rust packages.
- npm - Installation Guide - Manages node packages
- Smithy - Installation Guide - Generates OpenAPI templates
- OpenAPI Generator - Installation Guide - Generates API clients
- Java 21 - Installation Guide - Required for OpenAPI Generator
- AWS CDK - Installation Guide - Compiles cloud infrastructure templates
This command should check the version of the dependencies required for the sBTC resources to be built and tested.
echo "\n--- sBTC tool versions ---" \
&& cargo --version \
&& echo "npm $(npm --version)" \
&& echo "cdk $(cdk --version)" \
&& echo "smithy $(smithy --version)" \
&& echo "openapi-generator $(openapi-generator-cli version)" \
&& java --version
Below is the output on a machine that is able to build and run all the sources and tests.
--- sBTC tool versions ---
cargo 1.77.2 (e52e36006 2024-03-26)
npm 10.5.0
cdk 2.139.1 (build b88f959)
smithy 1.47.0
openapi-generator 7.5.0
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment Homebrew (build 21.0.2)
OpenJDK 64-Bit Server VM Homebrew (build 21.0.2, mixed mode, sharing)
To build the sources you will need to run the following command before compiling the rest of the sources. This is due to the rust code autogeneration that the emily package requires.
cargo build --package emily
After running that command you can build the rest of the sources by running cargo as usual.
cargo build && cargo test
This project currently supports development on UNIX-based operating systems but does not support development on Windows or z/OS.