Skip to content

Tons of Typescript code examples, to use Starknet.js to interact with Starkware Starknet network (mainly on starknet-devnet-rs)

Notifications You must be signed in to change notification settings

PhilippeR26/starknet.js-workshop-typescript

 
 

Repository files navigation

Starkware Starknet network ^0.13.2

Cairo Accounts and ERC20 Demo

Typescript code, using Starknet.js v6.15.0 and local Starknet-devnet-rs 0.2.0

Starknet.js

If you want to implement the Starknet network in your DAPP, you can use starknet.js to interact with it.

These little scripts shows how to use and test very quickly your starknet.js code without any user interface.

Even if these codes are very small, it's a good guideline to always write them in Typescript.

Starknet mainnet and testnet are slow. To speed up the execution, we use Starknet-devnet-rs, that creates a local Starknet network.

🛠️ Installation 🛠️

copy this repo to your local disk. Use cd starknet.js-workshop-typescript to go to the root of the project.

If necessary :

  • Install latest LTS version of node here

Run npm install in this directory.

This repo is configured to be able to perform debugging of your typescript code. Just CTRL+SHIFT+D, then click on the green arrow.

This script has been written with cairo v0.13.2, Starknet-devnet-rs v0.2.0, starknet.js v6.15.0. Due to fast iterations of Starknet and Cairo, these scripts will probably be quickly out-of-date.

The Account contract used in this workshop is made by OpenZeppelin, contract version 0.9.0.

🚀 Start the demo 🚀 🎆 ↘️ 💩

Open a console, and launch the script :
npx ts-node src/starknet_jsNewAccount.ts devnet-rs is automatically launched and closed in this script.

More easy : use npx ts-node src/starknet_jsExistingAccount.ts, using a preexisting account #0 created automatically at Devnet-rs launch.

📜 scripts :

In the folder 'scripts', you can find many pedagogical codes :

Accounts :

  • Create accounts
  • Connect account
    • Connect pre-deployed account (only on devnet) script1
    • Connect created account script8

Contracts :

Interactions

Devnet-rs :

Devnet-rs is launched and ended automatically in the main scripts of this tuto, using the starknet-devnet library : https://github.com/0xSpaceShard/starknet-devnet-js/blob/master/README.md
If you prefer to have a devnet-rs already launched in its own console :

const myProvider = new RpcProvider({ nodeUrl: "http://127.0.0.1:5050/rpc" });

and remove kill commands.
Most of the scripts in the subdirectories are using an already running devnet-rs.

Others :

You can find in this repo tons of other scripts. Dig in and find many useful examples of code (exotic signatures, Ledger Nano, L1L2 messaging, events handling, STRK fees, ...).
To simplify the test of these scripts, take advantage to install the extension code runner. In the code window, right click, then run code.

Demo DAPPs :

Be able to create some scripts is a good first step. The next step is the creation of DAPPs (decentralized application) ; see my demo DAPP for Starknet.
I made also an Airdrop DAPP demo.

Explore the code to see how to communicate with the wallet extensions of your browser.

🤔 Questions?

Have a look in the starknet.js documentation.

Ask in #starknet-js channel in the Starknet Discord

Philippe. ROSTAN @ critical.devs.fr - Phil26#1686 on Discord

🙏 Inspiration :

This script is a fork of https://github.com/0xs34n/starknet.js-workshop

About

Tons of Typescript code examples, to use Starknet.js to interact with Starkware Starknet network (mainly on starknet-devnet-rs)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 73.9%
  • Cairo 21.3%
  • Python 3.6%
  • JavaScript 0.9%
  • Solidity 0.2%
  • Shell 0.1%