GithubHelp home page GithubHelp logo

kirk-baird / starklings-cairo1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shramee/starklings-cairo1

0.0 0.0 0.0 553 KB

An interactive tutorial to get you up and running with Cairo v1 and Starknet

License: MIT License

Rust 10.22% Cairo 89.78%

starklings-cairo1's Introduction

STARKLINGS

An interactive tutorial to get you up and running with Cairo and Starknet


Setup and run

Make sure you have Rust and Cargo installed with the default toolchain.
With rustup curl https://sh.rustup.rs -sSf | sh -s

  1. Clone the repo and go in the directory,
    git clone https://github.com/shramee/starklings-cairo1.git && cd starklings-cairo1.
  2. Run cargo run -r --bin starklings, this might take a while the first time.
  3. You should see this intro message, run cargo run -r --bin starklings watch when you are ready!

Start at a specific exercise NEW

To start watch at a specific exercise pass the name of the exercise to watch command. For example, to start at starknet1,

cargo run -r --bin starklings watch starknet1

Welcome message and instructions

starklings - An interactive tutorial to get started with Cairo and Starknet

       _             _    _ _
      | |           | |  | (_)
   ___| |_ __ _ _ __| | _| |_ _ __   __ _ ___
  / __| __/ _` | '__| |/ / | | '_ \ / _` / __|
  \__ \ || (_| | |  |   <| | | | | | (_| \__ \
  |___/\__\__,_|_|  |_|\_\_|_|_| |_|\__, |___/
                                     __/ |
                                    |___/

Thanks for installing starklings!

Is this your first time? Don't worry, starklings is made for beginners! We are
going to teach you a bunch of stuff about StarkNet and Cairo.

Here's how starklings works,

1. To start starklings run `cargo run -r --bin starklings watch`
2. It'll automatically start with the first exercise. Don't get confused by
error message popping up as soon as you run starklings! This is part of the
exercise that you're supposed to solve, so open the exercise file in an editor
and start your detective work!
3. If you're stuck on an exercise, there is a helpful hint you can view by
typing `hint` (in watch mode), or running `cargo run -r --bin starklings hint
exercise_name`.
4. When you have solved the exercise successfully, Remove `// I AM NOT DONE`
comment to move on to the next exercise.
5. If an exercise doesn't make sense to you, please open an issue on GitHub!
(https://github.com/shramee/starklings-cairo1/issues/new).

Got all that? Great! To get started, run `starklings watch` in order to get the
first exercise. Make sure to have your editor open!

VSCode extension & language server

In order to have syntax highlighting and language server features, you will need to install the Cairo Language Server. The instructions available in the Cairo repository

Inspiration

Testing

For Cairo related tests

cargo test cairo

For all tests

cargo test

Contributing

Thanks for your interest in the project. You can fork the repo, create a branch with a descriptive name (maybe the issue number and a word or two to describe it) and submit a pull request.

Adding new exercises

  1. New exercises can be added in ./exercises directory.
  2. Insert information about the exercise in ./info.toml file. For example
    [[exercises]]
    name = "new_exercise"
    path = "exercises/new_module/new_exercise.cairo"
    mode = "compile" # or "test"
    hint = """"""
  3. Check that the tests pass.
  4. Send your PR!

Updating Rust logic/Cairo version

  1. Test your changes.
  2. Make sure you have solutions to all the exercises in ./solutions directory.
  3. Run cargo run -r --bin starklings compile_solutions to confirm all exercise solutions still compile.
  4. Make your pull request.

starklings-cairo1's People

Contributors

shramee avatar enitrat avatar kirk-baird avatar trangnv avatar chachaleo avatar 0xchqrles avatar barretodavid avatar printfjoby avatar lambda-0x avatar remedcu avatar tadev0 avatar antiyro avatar glihm avatar julienbrs avatar ptisserand avatar sraver avatar thelordgiveth avatar countrycousin avatar karasakalmt avatar kfastov avatar realjohnnytime avatar hollygrimm avatar ftupas avatar eckmoule avatar devival avatar clexmond avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.