![見出し画像](https://assets.st-note.com/production/uploads/images/112045591/rectangle_large_type_2_1d8c6df185a679aca90e0f7cda42b133.png?width=800)
【完全保存版】AstarのWASMのサンプルコントラクトを作ってみよう!
0 はじめに
1 環境設定について
事前に、下の部分から、お手持ちのPCに合わせて、環境設定を行なってください。
![](https://assets.st-note.com/img/1690616748347-mQGMGGV0ph.png?width=800)
2 Shibuyaトークンの取得について
次に、Polkadot-jsでウォレットを作成し、Shibuyaトークンを取得します。
取得方法は、こちらをご参照ください
1 実際に作ってみよう!
1 Git cloneを行う
では、具体的な処理に移っていきましょう。
次のコマンドで、git cloneを行います。
git clone https://github.com/ytakahashi2020/flipper_test.git
![](https://assets.st-note.com/img/1690614306919-gW7kMvBdQf.png?width=800)
なお、こちらのGithubを使っています。
2 コンパイルを行う
では、コンパイルを行いましょう。
次に、下のように、コントラクトのあるフォルダに移動します。
cd flipper_test/contracts/flipper
![](https://assets.st-note.com/img/1690614332757-AyPCR4Hm37.png?width=800)
下のコマンドでコンパイルを行います。
cargo contract build
![](https://assets.st-note.com/img/1690614354552-72zBcHoNka.png?width=800)
下のようになれば、成功です。
この「~.contract」というファイルを使うことになります。
![](https://assets.st-note.com/img/1690614398806-XaxzBWgB4g.png?width=800)
3 デプロイする
Substrateに行き、デプロイしましょう。
「Astar Shibuya」であることを確認し、下のように、「Upload New Contract Code」を実行します。
![](https://assets.st-note.com/img/1690672424490-YtCpQfJEMq.png?width=800)
ここで使用するファイルを選択します。
ここで選ぶのが、コンパイル時にできた、「flipper.contract」です。
![](https://assets.st-note.com/img/1690614651687-EnHI7p0bwF.png?width=800)
このように、選択し、「Next」で進みます。
![](https://assets.st-note.com/img/1690614704741-nWdH40SBQ5.png?width=800)
ここで、初期値の設定などが行われます。
今回は、このまま、「Next」で進みます。
![](https://assets.st-note.com/img/1690614738775-E4tK69uB7H.png?width=800)
「Upload and Instantiate」でデプロイを行います。
![](https://assets.st-note.com/img/1690614768410-ubjZ84riph.png?width=800)
Polkadot.jsが立ち上がるので、実行を行います。
![](https://assets.st-note.com/img/1690672744533-VCd1UKC8q7.png?width=800)
これで、完成しました!
コントラクトを作ることができました。
![](https://assets.st-note.com/img/1690614838196-q3OwBbjTBf.png?width=800)
3 ファイル構成の概要を知ろう
1 lib.rs
実際のコントラクトの中身が書いてあるのが、こちらの「lib.rs」です。
拡張子が「.rs」とあるように、Rustで書かれています。
![](https://assets.st-note.com/img/1690673339521-Es08sziqTG.png?width=800)
2 Cargo.toml
このファイルで、依存関係やどのファイルをビルドするかなどを定義します。
なお、CargoはRustのパッケージ管理ツールです。
![](https://assets.st-note.com/img/1690673450376-6DkZ4OcoFD.png?width=800)
3 rust-toolchain.toml
こちらは、その名の通り、Rustのツールチェーンの設定を行うためのファイルです。
こちらは、なくても大丈夫ですが、あると便利です。
![](https://assets.st-note.com/img/1690673710095-bsBSBtFfU7.png?width=800)
追記 コントラクトのコンパイルがうまくいかないときは
コントラクトのコンパイルがうまくいかないものの、フロントエンドとの繋ぎ込みの部分だけでもやりたいケースもあると思います。
1 フォルダの作成
まずは、「flipper」フォルダに「target」、「ink」フォルダを下のように作成して下さい。
フォルダ名を間違わないようにご注意ください。
![](https://assets.st-note.com/img/1695690414200-Yag1b61qCP.png?width=800)
2 ファイルのダウンロード
次に、こちらのGithubの下の部分から、この3つのファイルをダウンロードします。
3 ファイルの設定
最後に、下のように、ファイルを設定します。
また、デプロイ時には、こちらの「flipper.contract」を使用することでデプロイが可能です。
![](https://assets.st-note.com/img/1695690414148-VrROszqh3X.png?width=800)
今回は、以上です。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊