概要
今年色々あったTerraチェーン上でスマートコントラクトを構築してみたかったので、
Terra Academy で公開されているチュートリアルを追ってみました。
今回は追ってみるのは2回目なのですが、1回目の時はスマートコントラクトへの理解すらなかったため、
今ならもっと良くやっていることを理解できるのではないかと考えています。
具体的には、Solidity
や Solana
で開発を行った経験が加わったので、
Terra
におけるこのツールやコマンドは、ああ、これに対応するのね、みたいなのが分かればいいなと思っています。
チュートリアルを追って、つまづきやすいところなどに言及したりしつつ、
最終的にはdAppを構成することを目標にします。
今回は手順とそれらのSolidity
との対応などをみようと思います。
別記事でプログラムの詳細についても見て詳細を書こうかと思っています。
ドキュメント
Terrain でスマートコントラクトの雛形作成
Terrain
はスマートコントラクトをビルドしたり、デプロイしたりできる開発ツールであり、
Solidity
ではTruffle
みたいなイメージで大丈夫だと思います。
ただ、チュートリアルに沿って
terrain new my_terra_dapp
でプロジェクトを生成した際に、このレポジトリにはフロントエンドのコードも含まれることに気づきました。その意味でもっとオールインなツールだなと感じました。
LocalTerra
Local
でTerra chain
を走らせるためのツール(というかDockerサービス)です。
Solidity
の時はGanache
を使いましたね。
LocalTerra
にも同じように開発用のウォレットが10個プレインストールされています。
詳細はこちら。
インストールはgithub
経由で行います。
git clone https://github.com/terra-project/localterra
cd
docker-compose up
Terrain でスマートコントラクトのビルドとデプロイ
ワンコマンドでTerrain
を用いてスマートコントラクトを先ほどのLocalTerra
にデプロイすることができます。
cd my_terra_dapp/
terrain deploy my_terra_dapp
デプロイした後は、terrain console
を用いて、cli からスマートコントラクトのAPIにアクセスすることも可能です。
フロントエンドコードと組み合わせる
chrome extension のterra station
を用いることで、
フロントエンドからスマートコントラクトを操作するデモアプリを使用することができます。
cd frontend
npm start
ここで、ウォレットはLocalTerra
にあらかじめ登録されているものをインポートするので、以下のneumonic を使用します。
satisfy adjust timber high purchase tuition stool faith fine install that you unaware feed domain license impose boss human eager hat rent enjoy dawn
既存のウォレットをインポートして、ネットワークをLocal Terra
に変更して接続すると、
ご覧のようにプリセットされた開発用Lunaが入っていることが確認できます。
以下のようにカウントが更新されていることが確認できました。
これで公式の Terarin
+ LocalTerra
のチュートリアルは完了となります。
お疲れ様でした。
まとめ
今回は、Terra Academy
およびTerra Docs
で公開されている
公式のチュートリアルに沿って、LocalTerra
によりローカルに擬似的に生成したチェーン上にスマートコントラクトをデプロイし、実際にエンドポイントのAPIをcli
, フロントエンド
から呼ぶところまで実行してみました。
一度Solidity
やSolana
などでウェブ3アプリの開発経験があれば、すんなりとチュートリアルは実行できたのではないでしょうか、
次の記事では実際のスマートコントラクトを構成するプログラムおよび、クライアントコードの中身についてもみていけたらなと思います。
今回はこの辺で。