Web3 開発はこれからも続きます。イーサリアムのメインネットに展開されているスマート コントラクトの数が何らかの兆候であるとすれば、2021 年以降のこの急成長は今後も続くことになるでしょう。
そういえば、この数字の伸びは2021 年から 2022 年にかけて 293% という驚くべき数字に達しています。それでも十分ではない場合、Goerli テストネットでは、スマート コントラクトの導入が年間 721% という大幅な増加を見せています。
これらすべては、特にFTXの崩壊が起こったときに、暗号通貨の衰退にもかかわらず発生しました。これは、より多くの Web3 開発者がスキルを磨き、展開されるスマート コントラクトの増大するリストに追加する余地があることを意味します。
それでは、まず、Sepolia を使用して、これらのスマート コントラクトがイーサリアム テストネットにどのようにデプロイされるかを詳しく見てみましょう。しかしその前に、イーサリアム テストネットとは何か、そしてテストネット イーサを入手してそれを使用する方法を理解しましょう。
以前のブログ投稿で述べたように、パブリック テストネットは、開発者が Ether や MATIC などのテスト トークンを使用してスマート コントラクトをテストできる環境です。これは、スマート コントラクトをメインネットに展開するかなり前に行われるため、すべての不具合を事前に解決できます。実稼働環境に展開する前にソフトウェアをテストする他のテクノロジー分野の開発者と同じです。
コントラクトがデプロイされると変更はできないため、これを実行することが重要です。
したがって、バグがある場合、コードを変更することはできません。
ただし、テストネットが現実世界の対応物をどれほど厳密にシミュレートしているかを考えると、完全に正しくなるまでコードのデバッグとリファクタリングが可能です。それでも、100% バグのないスマート コントラクトは存在しないため、完璧であることが望ましい一方で、必ずしも達成できるわけではありません。
ここで、イーサリアム テストネットの話に移ります。いくつかのテストネットは、生まれては消えていったと言っても過言ではありません。 Ropstein、Kovan、Rinkeby は現在、あと数か月間動作する Goerli とともに非推奨とみなされています。 2023 年の時点では、Sepolia Testnet がアプリケーション開発を処理するために使用するのに適切なネットワークであると考えられています。
しかし、Sepolia Testnet を使用できるようにするには、ガス料金を支払うためにテスト Ether が必要です。 Sepolia Testnet には、蛇口から入手する必要がある独自のテスト Ether があることを覚えておく必要があります。たとえば、Testnet Ether に関するフォーセットは、テスト Ether (この場合は Sepolia test Ether) をリクエストできる Web サイトです。
現在、Sepolia 用の Testnet Ether を入手するにはいくつかの方法があり、指定されたフォーセットにアクセスして Sepolia Ether をアカウントに送信することも含まれます。
Metamask のようなウォレットにリンクされた Ethereum アドレスをすでに持っていると仮定すると、最も簡単な方法は、Sepolia Ether のマイニングを可能にするこのWeb ページに移動することです。イーサリアム アドレスを貼り付け、「私はロボットではありません」の再キャプチャを完了したら、「マイニングの開始」を選択します。ご覧のとおり、セポリア イーサの採掘が長くなるほど、より多くのものが収集できます。
十分なセポリア イーサを集めたら、「採掘を停止して報酬を受け取る」オプションを選択します。
最後に、10 ~ 20 秒後にウォレットをチェックして、Sepolia Ether を受け取ったかどうかを確認してください。まだの場合は、イーサリアム ウォレットの詳細を確認して、最初からやり直してください。
十分なテスト Ether がある場合は、Doughnut Vending Machine Solidity スマート コントラクトを Sepolia テストネットに展開します。
ここで、スマート コントラクトの展開がどのように機能するかを理解するには、Remix 統合開発環境を使用する必要がありますが、実装が容易に理解できるスマート コントラクトを使用する必要があります。
この目的のために、このGithub リンクで入手可能な Donut Vending Machine Solidity スマート コントラクトを選択しました。スマート コントラクト コードをコピーしたら、Remix の新しい .sol ファイルに追加し、Solidity Compiler アイコンの一部として緑色のチェック マークが表示されるまでコントラクトをコンパイルします。
以上で、取得した Sepolia Testnet Ether を使用してスマート コントラクトをデプロイします。このためには、以下に示すように「トランザクションのデプロイと実行」アイコンを選択します。
この手順を完了すると、「トランザクションのデプロイと実行」セクションが表示されるはずです。
「環境」の下のドロップメニューから「挿入されたプロバイダー - メタマスク」を選択し、パスワードを使用してメタマスク ウォレットのロックを解除します。
「デプロイ」を選択し、メタマスクウォレットが開いたら「確認」を押して規定のガス料金を支払います。
「デプロイされたコントラクト」セクションでデプロイされたスマート コントラクトを開きます。
最後に、ドーナツ 2 個を 1 イーサで購入したい場合は、必ず「金額」セクションを 1 イーサで更新し、購入方法テキスト ボックスに 2 を追加して、赤い「購入」ボタンを押してください。
もう一度言いますが、メタマスクウォレットでトランザクションを承認することで購入を確認する必要があります。
更新された契約残高で購入が完了したことを示す確認が届くはずです。
ただし、以下に示すように、getBalance 関数を呼び出してドーナツの数をカウントすることもできます。
ドーナツの初期数は 100 個でしたが、購入が完了するとその数は 98 個に減りました。
ここで、経験豊富な開発者が Hardhat と Truffle を使用していることを言及しなければなりませんが、それについては別の日に説明します。
Donut Vending Machine スマート コントラクトにより顧客の購入が可能になるため、スマート コントラクトを使用して行われたトランザクションを追跡することができます。先ほど説明した EtherScan というツールが思い浮かびます。
Sepolia Testnet トランザクションに EtherScan を使用するには、 https://sepolia.etherscan.io/に移動し、Remix の [Deployed Contracts] セクションにあるスマート コントラクトのアドレスを貼り付ける必要があります。
一見すると、EtherScan 上でドーナツ自動販売機のスマート コントラクトがどのように見えるかがわかります。
お気づきでないかもしれませんが、リストの最初のトランザクションは契約の作成として定義されています。上記の方法で購入が行われると、購入トランザクションが EtherScan で更新されます
そうは言っても、スマートコントラクトには、ドーナツ 2 個の購入に対して 1 ETH の残高もあります。
終わったね!
次回のブログ投稿では、必要な UI コンポーネントを含む基本的な Web ページを構築することで、顧客がスマート コントラクトと対話する方法を示します。
とはいえ、私たちは、包括的なカリキュラムでブロックチェーン開発概念を教えることに特化した Web3 教育プラットフォームであるLumos Academyも構築しています。
見て学習曲線を先取りしましょう: https://academy.lumoslabs.co/