概要
今年色々あった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アプリの開発経験があれば、すんなりとチュートリアルは実行できたのではないでしょうか、
次の記事では実際のスマートコントラクトを構成するプログラムおよび、クライアントコードの中身についてもみていけたらなと思います。
今回はこの辺で。



