Skip to content

hashgraph/hedera-sdk-rust

Hedera™ Rust SDK

The SDK for interacting with Hedera Hashgraph: the official distributed consensus platform built using the Hashgraph consensus algorithm for fast, fair and secure transactions. Hedera enables and empowers developers to build an entirely new class of decentralized applications.

Maintained with ❤️ by LaunchBadge, Swirlds Labs, and the Hedera community

Requirements

Clone this repository and its submodules:

git clone --recursive https://github.com/hashgraph/hedera-sdk-rust.git

Update \protobufs submodule to recent version (if necessary):

git submodule update --recursive --remote

To check dependencies validity, run the following command in the root directory:

cargo check

API Docs

Check out the Hedera Rust SDK API reference docs.

Community and Support

If you have any questions on the Hedera SDK or Hedera more generally, you can join our team and hundreds of other developers using Hedera in our community Discord:

Examples

To the run an example, set an operator id and operator key in the .env file. By default, these run against testnet.

# Account that will pay query and transaction fees.
OPERATOR_ID=
# Default private key to use to sign for all transactions and queries.
OPERATOR_KEY=

Cargo Command:

cargo run --release --example <EXAMPLE_FILENAME>

Create Account Example:

cargo run --release --example create_account

Tests

Before running the integration tests, an operator key, operator id, and a network name must be set in an .env file.

# Account that will pay query and transaction fees.
TEST_OPERATOR_ID=
# Default private key to use to sign for all transactions and queries.
TEST_OPERATOR_KEY=
# Network names: "localhost", "testnet", "previewnet", "mainnet".
TEST_NETWORK_NAME=
# Running on-chain tests if this value is set to 1.
TEST_RUN_NONFREE=

Run the tests using cargo test

# Run all tests (unit and integration tests)
cargo test

# Run specific tests in a module
cargo test <MODULE_NAME>::<FILE_NAME>::<FUNCTION_NAME>

e.g.

# Run account module tests
cargo test account
# Run account module tests in file
cargo test account::create
# Run a single test
cargo test account::create::initial_balance_and_key

Local Environment Testing

Hedera offers a way to run tests through your localhost using the hedera-local-node service.

For instructions on how to set up and run local node, follow the steps in the git repository: https://github.com/hashgraph/hedera-local-node

Once the local node is running in Docker, use these environment variables in the .env.

# Account that will pay query and transaction fees.
TEST_OPERATOR_ID=0.0.2
# Default private key to use to sign for all transactions and queries.
TEST_OPERATOR_KEY=302e020100300506032b65700422042091132178e72057a1d7528025956fe39b0b847f200ab59b2fdd367017f3087137
# Network names: "localhost", "testnet", "previewnet", "mainnet".
TEST_NETWORK_NAME=localhost
# Running on-chain tests if this value is set to 1.
TEST_RUN_NONFREE=1

Lastly, run the tests using cargo test

Contributing

Contributions are welcome. Please see the contributing guide to see how you can get involved.

Code of Conduct

This project is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code of conduct. Please report unacceptable behavior to [email protected].

License

Apache License 2.0