Skip to content

Commit

Permalink
feat: Cairo 1 update (#55)
Browse files Browse the repository at this point in the history
feat: Cairo 1 update
  • Loading branch information
julio4 authored Nov 27, 2023
1 parent ebde9ac commit 5e2d31c
Show file tree
Hide file tree
Showing 3 changed files with 576 additions and 196 deletions.
256 changes: 256 additions & 0 deletions CAIRO_0_ARCHIVE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
<div align="center">
<img alt="starknet logo" src="./assets/starknet.png" width="200" >
<h1 align="center">Awesome StarkNet</h1>
<p align="center">
<a href="https://github.com/sindresorhus/awesome">
<img alt="awesome list badge" src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg">
</a>
<a href="#buildstatus">
<img alt="build status badge" src="https://github.com/gakonst/awesome-starknet/workflows/Build/badge.svg">
</a>
<a href="https://github.com/gakonst/awesome-starknet/graphs/contributors">
<img alt="GitHub contributors" src="https://img.shields.io/github/contributors/gakonst/awesome-starknet">
</a>
<a href="http://makeapullrequest.com">
<img alt="pull requests welcome badge" src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat">
</a>
</p>

<p align="center" style="color: red;">This list is archived and based on Cairo 0. You might want to read the new maintained <a href="README.md">Cairo 1 Awesome Starknet</a>.</p>

<p align="center">A curated list of awesome <a href="https://medium.com/starkware/starknet-alpha-is-coming-to-mainnet-b825829eaf32">StarkNet</a> resources, libraries, tools and more.</p>
<p align="center">Please check the <a href="CONTRIBUTING.md">contribution guidelines</a> for information on formatting and writing pull requests.</p>

</div>

### Contents

- [Resources](#resources)
- [Official](#official)
- [Ecosystem](#ecosystem)
- [Tutorials](#tutorials)
- [Articles](#articles)
- [Security](#security)
- [Cryptography](#cryptography)
- [Examples](#examples)
- [Educational](#educational)
- [Built / Deployed on StarkNet](#built--deployed-on-starknet)
- [Templates](#templates)
- [Books](#books)
- [Practice](#practice)
- [Jobs](#jobs)
- [Starknet client libraries](#starknet-client-libraries)
- [Libraries](#libraries)
- [Tools](#tools)
- [General](#general)
- [Utility](#utility)
- [Audit](#audit)
- [Editor Plugins](#editor-plugins)
- [Vim](#vim)
- [Visual Studio Code](#visual-studio-code)
- [License](#license)

## Resources

#### Official

- [StarkNet and Cairo Documentation](https://www.cairo-lang.org/docs/0.12.0/) -
Official Documentation.
- [Setting up the environment](https://www.cairo-lang.org/docs/quickstart.html) -
How to install Cairo and StarkNet.
- [How Cairo Works](https://www.cairo-lang.org/docs/how_cairo_works/index.html) -
Low-level explanation of Cairo's mechanics.
- [Hello StarkNet](https://www.cairo-lang.org/docs/hello_starknet/index.html) -
Tutorial for writing and deploying a contract.
- [Hello Cairo](https://www.cairo-lang.org/docs/hello_cairo/index.html) -
Tutorials for writing various simple Cairo contracts.
- [Cairo Reference](https://www.cairo-lang.org/docs/reference/index.html) -
Explanation of Cairo's syntax
- [Cairo – a Turing-complete STARK-friendly CPU architecture](https://eprint.iacr.org/2021/1063.pdf) -
Cairo Whitepaper
- [A verified algebraic representation of Cairo program execution](https://arxiv.org/abs/2109.14534) -
Proof Cairo's soundness using the
[Lean proof assistant](<https://en.wikipedia.org/wiki/Lean_(proof_assistant)>)
- [Cairo Playground](https://www.cairo-lang.org/playground/) - In-browser Cairo
IDE, examples and puzzles
- [StarkNet Voting Workshop](https://starkware.notion.site/starkware/StarkNet-Voting-Workshop-b61ef5f4a62d45af86892cba3158f7e6) -
End to end tutorial on building a voting app
- [YouTube channel](https://www.youtube.com/channel/UCnDWguR8mE2oDBsjhQkgbvg/playlists) - Official StarkWare YouTube channel.

#### Ecosystem

- [StarkNet Ecosystem](https://starknet-ecosystem.com) -
A [community-driven](https://github.com/419Labs/starknet-ecosystem.com) initiative to showcase projects and teams building on StarkNet.

#### Tutorials
- [Full-Stack StarkNet](https://github.com/sambarnes/fullstack-starknet) - Tutorials introducing a little bit of everything in a DApp.
- [Interactive Tutorials for StarkNet Development](https://github.com/onlydustxyz/starklings) - Interactive tutorials teaching all the different concepts in Cairo from beginner to advanced.
- [Unit Testing in StarkNet](https://perama-v.github.io/cairo/examples/unit_test/) -
Using [`pytest`](https://docs.pytest.org/en/6.2.x/) to test contracts
- [Managing StarkNet deployments using Nile ⛵️✨](https://medium.com/@martriay/manage-your-starknet-deployments-with-nile-%EF%B8%8F-e849d40546dd)
- [starknet-cairo-101](https://github.com/starknet-edu/starknet-cairo-101) - Interactive Cairo workshop using [Voyager](https://voyager.online/) with puzzles and tokens as prizes.
- [starknet-erc20](https://github.com/starknet-edu/starknet-erc20) - Learn about the ERC20 standard and how to deploy your own token, and collect points
- [starknet-erc721](https://github.com/starknet-edu/starknet-erc721) - Learn about the ERC721 standard and how to deploy your own NFT
- [starknet-messaging-bridge](https://github.com/starknet-edu/starknet-messaging-bridge) - Learn how to build your own bridge between Ethereum and StarkNet
- [starknet-accounts](https://github.com/starknet-edu/starknet-accounts) - Discover the wonders of account abstraction and create your own smart wallet
- [Debugging](https://github.com/starknet-edu/starknet-debug) - Debug contracts in an efficient way

#### Articles

- [Going all in - starknet](https://koopxyz.notion.site/going-all-in-starkware-f250983d562c454384384a5408bddf9c)
Notion site of helpful resources
- [Perama's Blog](https://perama-v.github.io/cairo/intro/) - Large set of
educational StarkNet / Cairo resources
- [Practical StarkNet lessons learned](https://hackmd.io/@RoboTeddy/BJZFu56wF) -
Helpful tips for new StarkNet/Cairo programmers
- [Cairo Common Library](https://perama-v.github.io/cairo/cairo-common-library/) -
Docs for the Cairo Common Library (stdlib equivalent)

- [Cairo Concepts Overview](https://perama-v.github.io/cairo/description/) -
High level overview of concepts encountered in the Cairo ecosystem (Ethereum,
Smart Contracts, Decentralization, Scaling, L2, Rollups, ZKPs etc.)
- [Account Abstraction](https://perama-v.github.io/cairo/account-abstraction/) -
Explanation of StarkNet's account abstraction
- [Test Accounts](https://perama-v.github.io/cairo/examples/test_accounts/) -
Explanation of building test accounts
- [Amarna Static Analysis](https://blog.trailofbits.com/2022/04/20/amarna-static-analysis-for-cairo-programs/) - Amarna: Static analysis for Cairo programs

#### Security

- [ChainSecurity DAI Bridge Audit](https://chainsecurity.com/wp-content/uploads/2021/12/ChainSecurity_MakerDAO_StarkNet-DAI-Bridge_audit.pdf) - Audit of MakerDAO's DAI bridge by ChainSecurity.
- [not-so-smart-cairo](https://github.com/crytic/building-secure-contracts/tree/master/not-so-smart-contracts/cairo) - Examples of common Cairo smart contract vulnerabilities by Trail of Bits.

#### Cryptography
- [ethSTARK Documentation](https://eprint.iacr.org/2021/58) - Computational

This comment has been minimized.

Copy link
@rocki202

rocki202 Feb 15, 2024

fix this

integrity of STARKs explanation.

#### Examples

- [Cairo by Example](https://perama-v.github.io/cairo/by-example/) - An
introduction to [Cairo](https://www.cairo-lang.org/) with simple examples.
- [Skeleton for StarkNet](https://perama-v.github.io/cairo/examples/building_blocks/skeleton/program_starknet.html)
- Quick example of a Minimum verifiable program
- [Skeleton for SHARP](https://perama-v.github.io/cairo/examples/building_blocks/skeleton/program_sharp.html)
- SHARP programs differ from Cairo programs, this shows how to use
SHARP for your own custom Cairo deploys (e.g. if you'd use StarkEx)
- [Starknet by Example](https://starknet-by-example.voyager.online/) - Introduction to writing Starknet contracts in Cairo with simple examples.

##### Educational

- [StarkWare | Scaling Ethereum, ZK-rollups, Layer 1's, and more!](https://youtu.be/aq7EV-4K7Vk) -
Interview with Louis Guthmann, Ecosystem Lead @ StarkWare
- [StarkNet Basecamp](https://github.com/starknet-edu/basecamp) - Learn how Starks, Cairo and StarkNet work, from the ground up.

##### Built / Deployed on StarkNet

- [ZigZagExchange](https://github.com/ZigZagExchange/starknet-contracts) -
Orderbook DEX
- [physics-puzzle](https://github.com/guiltygyoza/physics-puzzle-starknet) -
Physics puzzle
- [RYO](https://github.com/dopedao/RYO) - Dope Wars game engine
- [qasr](https://github.com/mortimr/qasr) - ETH <> StarkNet NFT Bridge
- [starknet-dai-bridge](https://github.com/makerdao/starknet-dai-bridge) - ETH
<> StarkNet DAI Bridge
- [rk4-starknet](https://github.com/guiltygyoza/rk4-starknet) - Runge Kutta 4th
Order Method on StarkNet
- [stardrop](https://github.com/kobigurk/stardrop) - Anonymous rewards
- [tictactoe](https://github.com/guiltygyoza/tictactoe-on-starknet) - RL Agent
playing Tic-Tac-Toe
- [tiny-dnn-on-starknet](https://github.com/guiltygyoza/tiny-dnn-on-starknet) -
Deep Neural Net PoC
- [argent-contracts-starknet](https://github.com/argentlabs/argent-contracts-starknet) -
[Argent](https://www.argent.xyz/)'s Account contracts
- [briq](https://github.com/briqNFT/briq-protocol) - NFT building & composability protocol
- [Empiric Network](https://github.com/42labs/Empiric) - Oracle providing decentralized, transparent and composable data.

#### Templates

- [Contracts Wizard for Cairo](https://wizard.openzeppelin.com/cairo) - Interactive smart contract generator based on OpenZeppelin Contracts for Cairo.
- [starknet-hardhat-example](https://github.com/Shard-Labs/starknet-hardhat-example) -
Example usage of the Starknet Hardhat plugin.
- [starknet-react-example](https://github.com/fracek/starknet-react-example) -
Connect your ReactApp to StarkNet
- [vue-stark-boil](https://github.com/dontpanicdao/vue-stark-boil) -
Boilerplate for Argent-X/Vue.js.
- [starknet-scaffold](https://github.com/tarrencev/starknet-scaffold) - Cario development scaffold using nile and pytest

#### Books

#### Practice

#### Jobs
- [Dapp Developer at Shard labs](https://almanac.io/docs/starknet-dapp-developer-shard-labs-8UMOmydaLJX7jzQAZReYJTcC0o4RtE1m).
- [Open source developer at Open Zeppelin](https://openzeppelin.com/jobs/opening/?gh_jid=4554917003&gh_src=2742d3093us).
- [Cairo engineers at Immutable](https://discord.com/channels/793094838509764618/898210860030386178/898330663281905725).
- [Chainlink integration team](https://discord.com/channels/793094838509764618/898210860030386178/905842249840074783).
- [Blockchain software engineer at JellyFi](https://mango-cry-b61.notion.site/Blockchain-software-engineer-9634a0236c454e6ab7679a93478f2f8b).

## Starknet client libraries
- [starknet.go](https://github.com/NethermindEth/starknet.go) - Golang library
- [starknet.js](https://github.com/seanjameshan/starknet.js) - Javascript library
- [starknet-jvm](https://github.com/software-mansion/starknet-jvm) - Library for JVM languages (java, kotlin and others).
- [starknet.py](https://github.com/software-mansion/starknet.py) - Python library
- [starknet-rs](https://github.com/xJonathanLEI/starknet-rs) - Rust library
- [starknet-react](https://github.com/auclantis/starknet-react) - React hooks library

## Libraries

- [get-starknet](https://github.com/starknet-community-libs/get-starknet) - wallet <-> dApp bridge
- [starknet-hardhat-plugin](https://github.com/Shard-Labs/starknet-hardhat-plugin) -
A plugin for integrating Starknet tools into Hardhat projects
- [cairo-contracts](https://github.com/OpenZeppelin/cairo-contracts) -
OpenZeppelin Contracts written in Cairo
- [cairomate](https://github.com/a5f9t4/cairomate) - Structured, dependable legos for Starknet development.

## Tools

#### General
- [Braavos](https://chrome.google.com/webstore/detail/braavos-wallet/jnlgamecbpmbajjfhmmmlhejkemejdma) - Browser extension wallet.
- [argent-x](https://github.com/argentlabs/argent-x) - Browser extension wallet
- [cairo_kernel](https://github.com/ankitchiplunkar/cairo-jupyter) - Jupyter
kernel for Cairo.
- [fossil](https://github.com/OilerNetwork/fossil) - L1 state verification with STARKs.
- [juno](https://github.com/NethermindEth/juno) - Client (GoLang).
- [nile](https://github.com/OpenZeppelin/nile) - CLI tool to develop StarkNet
projects written in Cairo by OpenZeppelin
- [protostar](https://docs.swmansion.com/protostar/) - CLI tool for developing and testing contracts in Cairo.
- [starknet-devnet](https://github.com/Shard-Labs/starknet-devnet) - Local
testnet
- [starkops](https://github.com/seanjameshan/starkops) - StarkNet CLI
- [voyager](https://voyager.online) - Block explorer.
- [starktx](https://starktx.info/) - StarkTx Transaction Decoder.
- [amarna](https://github.com/crytic/amarna) - Static-analyzer and linter for the Cairo programming language.
- [tayt](https://github.com/crytic/tayt) - StarkNet smart contract fuzzer.
- [ape-cairo](https://github.com/ApeWorX/ape-cairo) - Compiler plugin for ape for the Cairo-lang.
- [ape-starknet](https://github.com/ApeWorX/ape-starknet) - Ape plugin for the StarkNet networks.

#### Utility

- [warp](https://github.com/NethermindEth/warp) - Solidity to cairo transpiler

#### Audit

## Editor Plugins

#### Vim

- [cairo.vim](https://github.com/miguelmota/cairo.vim) - (Outdated) vim syntax
plugin for Cairo

#### Visual Studio Code

- [Cairo VS Code](https://www.cairo-lang.org/docs/quickstart.html#visual-studio-code-setup) -
VS Code syntax support for Cairo (requires manual installation)
- [Cairo language support](https://marketplace.visualstudio.com/items?itemName=ericglau.cairo-ls) -
Code assistance and compile error highlighting in VS Code.

---

## License

[![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)

To the extent possible under law,
[Keep Starknet Strange](https://github.com/keep-starknet-strange) has waived all copyright
and related or neighboring rights to this work.

2 changes: 1 addition & 1 deletion PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
- [ ] Each description starts with an uppercase character and ends with a
period.<br>Example: `cairo - The Cairo programming language.`
- [ ] Drop all `A` / `An` prefixes at the start of the description.
- [ ] Avoid using the word `StarkNet` in the description.
- [ ] Avoid using the word `Starknet` in the description.
Loading

1 comment on commit 5e2d31c

@brentyphoto
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

impressive

Please sign in to comment.