Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

software-mansion/protostar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1,088 Commits

Repository files navigation

⚠️ WARNING ⚠️

This project is now considered legacy!

If you want to use Cairo 2.0 contracts, consider migrating to starknet-foundry developed by Software Mansion in collaboration with Foundry Foundation.
New features will not be added to this project.
https://github.com/foundry-rs/starknet-foundry

protostar-logo protostar-logo

Starknet smart contract development toolchain


Protostar helps with writing, deploying, and testing your smart contracts. It is loosely inspired by Foundry.

Protostar is actively developed 🔨 . We release every two weeks. Our roadmap is public, see what is coming soon!

Install with

curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash

Documentation 📄

Table of contents

Additional resources

Installation

To install Protostar, run:

curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash

If you want to specify a version, run the following command with the requested version:

curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash -s -- -v 0.3.2

Development

Setting up environment

  1. Install Python version management tool: pyenv or asdf
  2. Install Python 3.9.14 using the Python version management tool and activate that version
    • To be able to build Protostar, set the following environmental variable before installing Python: PYTHON_CONFIGURE_OPTS="--enable-shared"
  3. Clone this repository
  4. Verify the active Python version: python -V
  5. Install Poetry — a dependency manager
  6. Create Python virtual environment in the project directory: poetry env use 3.9
  7. Activate environment: poetry shell
  8. Upgrade pip: pip install --upgrade pip
  9. Install project dependencies: poetry install
    • MacBook M1/M2: CFLAGS=-I/opt/homebrew/opt/gmp/include LDFLAGS=-L/opt/homebrew/opt/gmp/lib poetry install
  10. Install bindings for the rust tools used by protostar:
  11. Patch the git's config by always allowing file transport: git config --global protocol.file.allow always (needed for some tests to pass)
  12. Verify the setup by running tests: poe test
  13. Build Protostar: poe build
    • You can find the newly created binary at dist/protostar/protostar

Bumping cairo bindings version

To bump cairo bindings version to the latest commit on fork (master branch), run:

poetry run poe bump_cairo_bindings

After this, you can pull & rebuild your local version of bindings by running:

poetry run poe install_all_bindings
Caveats:

Remember to have your working tree clean, since it creates a commit on the current branch.

The command will check if the tracking branch is master, so you don't commit/push to master by accident (would be rejected by branch protection).

Submodules development

You can use submodules from a different branch than main. Run commands

git submodule set-branch --branch <your-branch>
poetry run poe install_all_bindings

Remember to not push those changes to the repository.

Git hooks

Run the following script to enable lint checks and automatic formatting before commit/push.

./scripts/apply_hooks.sh

Updating website/docs

Please read website/README.md.

AltStyle によって変換されたページ (->オリジナル) /