This is a demo for a simple WASM contract. The contract name is Flipper. Flipper contract has two method.
- One transaction method
flip - One query method
get.
Flipper contract is meant to show a hello world use case for WASM, Swanky and connect the contract via a React frontend.
The contract folder contains the contract code. The UI folder contains the UI code. UI is written in Next.js and React.
Install swanky cli https://github.com/AstarNetwork/swanky-cli
npm install -g @astar-network/[email protected]- Init
cd contract
swanky init flipperand chose ink as a contract language and flipper as template and a chosen contract name. Chose Y when asking to download the Swanky node.
- Start the local node
cd flipper
swanky node startThen swanky node starts running in your local environment.
- Build the contract
Open new tab
swanky contract compile flipper(Try rustup update if you face error which Swanky doesn't return error)
- Deploy the contract
Local
swanky contract deploy flipper --account alice -g 100000000000 -a trueShibuya
swanky contract deploy flipper --account alice --gas 100000000000 --args true --network shibuyaCopy paste the contract address.
Install Dependencies
cd ../..
yarnStart Next.js server
yarn devGo to http://localhost:3000 and enter the contract address. Flip button flips the boolean value.
Example is set up to connect to Shibuya network. If you want to connect to local environment, you need to change the setting in app.tsx file in ui/components:
// local
// const WS_PROVIDER = 'ws://127.0.0.1:9944'
// shibuya
const WS_PROVIDER = 'wss://shibuya-rpc.dwellir.com'Also, you need to add predefined Substrate Developer Accounts to your browser extension so you can sign the flip() call with Alice account existing on Swanky node.
You can find instructions how to do that in this article