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.
copy this repo to your local disk.
Use cd starknet.js-workshop-typescript
to go to the root of the project.
If necessary :
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.12.2, Starknet-devnet-rs v0.1.0, starknet.js v5.21.1. Due to fast iterations of Starknet and Cairo, this script will probably be quickly out-of-date.
The Account contract used in this workshop is made by OpenZeppelin, contract version 0.7.0.
Open a console, and launch the devnet cargo run --release -- --seed 0
Open a second console, and launch the script :
npx ts-node src/starknet_jsNewAccount.ts
When you see that you have to fund your new wallet, it's automatic in devnet.
Faucet for devnet, if necessary :
curl -X POST http://127.0.0.1:5050/mint -d '{"address":"0x1234","amount":50000000000000000000,"lite":true}' -H "Content-Type:application/json"
or source ./src/scripts/mintWallet.sh
More easy : use npx ts-node src/starknet_jsExistingAccount.ts
, using preexisting account #0 created automatically during Devnet-rs launch.
In the folder 'scripts', you can find many pedagogical codes :
- Create accounts
- Connect account
- Connect a contract script7
- Call
- Invoke
You can find in this repo tons of other scripts. Dig in and find many usefull exemples of code.
To simplify the test of these scripts, take advantage to install the extension code runner
. In the code window, right click, then run code
.
You can find some explanations for the use of Starknet.js with Cairo v1&v2 smart-contracts here.
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
Some explanations to interact with a contract behind a proxy here
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
This script is a fork of https://github.com/0xs34n/starknet.js-workshop