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 official installer, you may need to remove this installation or modify your PATH to make sure asdf installed one is always used.
❗️ 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
$ typos -w
Contributing
Read the general contribution guideline here