Skip to content
This repository has been archived by the owner on Aug 4, 2023. It is now read-only.

finiam/cairo-workshop

Repository files navigation

Cairo 101 Workshop

A minimal template for the Cairo 101 workshop

Installing dependencies

Step 0: Install Rust

Before we begin installing Cairo, we first need to make sure we have Rust installed.

Run the following command to check if you already have Rust installed:

cargo --version

If it returns a version number, skip to Step 1. If not, Rust is not present in your system and we need to install it.

We recommend following the instructions for your system, shown in the official Rust docs. After that, rerun the previous command to validate Rust was successfully installed.

Step 1: Install Cairo 1.0

For Cairo, since the language is still in active developmment, we recommend compiling Cairo from source like so:

# Make sure we have the latest stable Rust version
$ rustup override set stable && rustup update

# Clone the Cairo compiler to the $HOME directory
$ cd ~ && git clone [email protected]:starkware-libs/cairo.git && cd cairo

# Generate release binaries
$ cargo build --all --release

NOTE: Keeping Cairo up to date

Now that your Cairo compiler is in a cloned repository, all you will need to do is pull the latest changes and rebuild as follows:

$ cd ~/cairo && git fetch && git pull && cargo build --all --release

Step 2: Add Cairo 1.0 executables to your path

Now that we have built the Cairo 1.0 binaries, we need to add them to the PATH environment variable. Add the following in your .bashrc or .zshrc:

export PATH="$HOME/cairo/target/release:$PATH"

After that, open a new shell and check that the following command returns a version number:

cairo-compile --version

Step 3: Install the Cairo package manager Scarb

Scarb is a package manager from Software Mansion for Cairo projects.

The installation process is similar to Cairo:

# Make sure we have the latest stable Rust version
$ rustup override set stable && rustup update

# Clone the Scarb repo to the $HOME directory
$ cd ~ && git clone [email protected]:software-mansion/scarb && cd scarb

# Generate release binaries
$ cargo build --all --release

# Add the Scarb binary to PATH
export PATH="$HOME/scarb/target/release:$PATH"

Step 4 (Optional): Setup Language Server

VS Code Extension

  • Disable previous Cairo 0.x extension if you already had it
  • Install the Cairo 1 extension for proper syntax highlighting and code navigation. Just follow the steps indicated here.

Cairo Language Server

From Step 1, the cairo-language-server binary should be built and executing this command will copy its path into your clipboard.

$ which cairo-language-server | pbcopy

Update the languageServerPath of the Cairo 1.0 extension by pasting the path.

Commands

The Cairo template currently supports building and testing contracts.

Build

Build the project.

$ make build

Test

Run the tests in src/test:

$ make test

Format

Format the Cairo source code (using Scarb):

$ make fmt

License

This repo was generated from the auditless template for Cairo 1

MIT © Auditless Limited

About

Repo for the Cairo workshop

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published