Environment Setup
💡 Info This tutorial is only relevant if you wish to contribute to Starknet Foundry. If you plan to only use it as a tool for your project, you can skip this part.
Prerequisites
Rust
Install the latest stable Rust version. If you already have Rust installed make sure to upgrade it by running
$ rustup update
Scarb
You can read more about installing Scarb here.
Please make sure you're using Scarb installed via asdf - otherwise some tests may fail.
To verify, run:
$ which scarb
the result of which should be:
$HOME/.asdf/shims/scarb
If you previously installed scarb using an official installer, you may need to remove this installation or modify your PATH to make sure asdf installed one is always used.
cairo-profiler
You can read more
about installing cairo-profiler
here.
❗️ Warning
If you haven't pushed your branch to the remote yet (you've been working only locally), two tests will fail:
e2e::running::init_new_project_test
e2e::running::simple_package_with_git_dependency
After pushing the branch to the remote, those tests should pass.
Starknet Devnet
To install it run ./scripts/install_devnet.sh
Universal sierra compiler
Install the latest universal-sierra-compiler version.
Running Tests
Tests can be run with:
$ cargo test
Formatting and Lints
Starknet Foundry uses rustfmt for formatting. You can run the formatter with
$ cargo fmt
For linting, it uses clippy. You can run it with this command:
$ cargo clippy --all-targets --all-features -- --no-deps -W clippy::pedantic -A clippy::missing_errors_doc -A clippy::missing_panics_doc -A clippy::default_trait_access
Or using our defined alias
$ cargo lint
Spelling
Starknet Foundry uses typos for spelling checks.
You can run the checker with
$ typos
Some typos can be automatically fixed by running
Output:
$ typos -w
Contributing
Read the general contribution guideline here