Skip to content

lightshiftdev/starknet-bootcamp

Repository files navigation

Starknet Bootcamp

Starknet Logo

Welcome to the official repo for the Starknet Bootcamp @ DevConnect and Starknet Workshop @ Activate Miami.

If you're here, it's likely you signed up to join us at DevConnect Amsterdam 2022 or other future events. Or you just stumbled upon this, which is fine too

Details on the bootcamp itself are provided in the Notion page.

This repo is your main tool to get going through the bootcamp, and hopefully teach you all the practical details programming in Starknet, ahead of the Starknet Hackathon.

It consists of three main components:

  • packages/contracts a Hardhat project, with all the starknet goodness pre-installed, and some sample code;
  • packages/web A next.js app ready to interact with starknet contracts;
  • docker-compose.yml A docker setup that makes it easy to manage the Starknet & Ethereum nodes required for development.

The entire project is intended for local development only (We use starknet-devnet and Ganache instead of testnets), and favors JavaScript tooling instead of Python. We opted for this since that's what most commonly known by Solidity developers, which according to sign ups, make up the vast majority of this bootcamp.

Useful links

Bootcamp slides - Day 1 Goerli Faucet Voyager Explorer Cairo playground Starknet playground

Setup Guide

Follow these steps to setup the repo and get ready for the bootcamp

1. Clone the repo

git clone git@github.com/lighshiftdev/starknet-bootcamp
cd starknet-bootcamp
git submodule init && git submodule update

2. Install Requirements

3. Install packages

# Install dependencies
yarn install

4. Compile the contracts

yarn run compile

5. Start the development nodes

While in the repository's root directory, docker-compose up -d will spin up two containers:

6. Run the test suite

yarn run test

If you get only green tests here, it means you're done and ready to rock 🚀

7. Deploy to local nodes

yarn run deploy:starknet:devnet

8. Bonus: Get the UI running

yarn ui:start

And go to http://localhost:3000.

Your (future) tasks

The repository is already setup with a sample Counter contract, as well as an NFT, and some boilerplate code that will be useful for future tasks.

During the bootcamp, we'll start by getting familiar with cairo code, by doing a code walkthrough of both Counter and NFT

Your task will be to implement a Rock Paper Scissor game with the following mechanics:

  1. Provide the ability for two players to compete in a rock paper scissor game
  2. The winner of a game is gifted with a newly minted NFT
  3. This NFT can later be transfered to an L1 contract throught using cross-chain messaging.

About

This repository was put together with love by Lightshift Capital.