This section is a work in progress.
The repository includes the following projects:
- cryptography/hedera-cryptography-hints: HinTS API that allows participants to calculate their hints, generate keys, and produce and verify aggregate signatures.
- cryptography/hedera-cryptography-wraps: WRAPS 2.0 library that allows participants to generate and verify recursive proofs for AddressBooks.
- common/hedera-common-nativesupport: A Helper library providing support for working with jni and external libraries.
For the proposal that originated the work in this repository see: Tss-Library
The project is built with Gradle.
The project requires LLVM (in particular clang-cl and llvm-lib) to be installed on the host machine to perform cross-compilation of Rust code.
If you do not have it available already, you can install it as follows:
- Download distribution that matches your platform: github.com/llvm/llvm-project/releases/tag/llvmorg-19.1.0
- Extract the downloaded archive
- Add
<extracted-location>/binto yourPATH
./gradlew build
More details on the build setup and project structure can be found in the documentation of the Hiero Gradle Conventions which this project uses.
There are two release workflows in use by this project. When releasing a new official version, you would use the Publish Release one:
This is the official release workflow. It has to be triggered manually from the Actions page after which, it will do the following:
- Calculate the next version by analyzing the commit messages of the commits pushed since the last version and update the version.txt file.
- Compile the code to make sure there aren't any issues
- Publish to Maven Central using the new version
- Create a Tag and Official Release in GitHub
It can also be run with the Dry Run flag enabled which would just calculate the next expected release version by analyzing the commits since the last release and output the version in the workflow run logs.
This workflow runs automatically on a push to main and creates a new -SNAPSHOT release of the current version (sourced from the version.txt file) and publishes it to Maven Central.
If you have a question on how to use the product, please see our support guide.
Contributions are welcome. Please see the contributing guide to see how you can get involved.
This project is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code of conduct.