Starknet Hackathon

Hackathon project ideas for Starknet Hackathon Amsterdam

Cairo by Example

Curate a list of Cairo samples. Inspired by Solidity by Example. These already exists so consider contributing to:

CRISP in Cairo

Reimplement CRISP in Cairo

Front-end for Starknet-Cairo-101

Create an Ethernaut inspired front-end for: https://github.com/starknet-edu/starknet-cairo-101

[Optional] Create a leaderboard

Improve DevX on Nile

  1. nile deploy currently gives you back a transaciton hash. It would be nice if you got a terminal notification once the transaction was processed on L2 and viewable in Voyager. To do this, we can poll:
    ​​​​starknet get_transaction_receipt --hash 0x601537d063bf0c4457bf280695e5dabd03cd84e3734aa48b97e57f58c9a1621 --network alpha-goerli
    
  2. Implement nile verify-contract. Similar idea to https://github.com/OpenZeppelin/nile/issues/95
  3. Implement nile fmt

Add disconnect wallet to starknet-react

https://github.com/apibara/starknet-react/issues/79

Add abigen to caigo

Inspiration: https://github.com/dontpanicdao/caigo/issues/1

We want to support something like:

$ abigen --abi token.abi --pkg main --type Token --out token.go

Where the flags are:
--abi: Mandatory path to the contract ABI to bind to
--pkg: Mandatory Go package name to place the Go code into
--type: Optional Go type name to assign to the binding struct
--out: Optional output path for the generated Go source file (not set = stdout)

Research

https://geth.ethereum.org/docs/dapp/native-bindings

Entrypoint: https://github.com/ethereum/go-ethereum/blob/master/cmd/abigen/main.go

Bind: https://github.com/ethereum/go-ethereum/blob/9e0a10004edde44b03988497b82875ee7efc0bc4/accounts/abi/bind/bind.go#L50

Prevent users from interacting with fraudulent contracts

Create a list of fraudulent contracts. Prevent user from interacting with these contracts. Fork Argent X

Docker image with all Cairo tools

Problem: installing Cairo and Nile on an M1 Mac is non-trivial. If we provide a docker image with the latest versions of Cairo, Nile, other Cairo tools, it can save developer time on-boarding to the Starknet ecosystem.

We like want a dockerfile where it is easy to bump up versions of these tools. Configure GitHub actions to auto-publish docker images to a registry.

Provide a README for devs to use this image. Provide example aliases for developers to easily interact with docker container.

Ref: https://github.com/starknet-edu/starknet-erc721#with-docker=

Staking contract