paint-brush
Remix で Solidity スマート コントラクト コードを記述およびコンパイルする方法: dApp 開発の基本@dansierrasam79
2,436 測定値
2,436 測定値

Remix で Solidity スマート コントラクト コードを記述およびコンパイルする方法: dApp 開発の基本

Daniel Chakraborty6m2023/03/23
Read on Terminal Reader

長すぎる; 読むには

今週のブログ投稿では、スマート コントラクトのトピックを紹介しますが、ほとんどの Web 開発者が移行しやすい言語である、Solidity について話しています。ほとんどのスマート コントラクト開発者は、Solidity から始めます。Remix Integrated Development Environment は、Solidity を使用する最初のツールです。
featured image - Remix で Solidity スマート コントラクト コードを記述およびコンパイルする方法: dApp 開発の基本
Daniel Chakraborty HackerNoon profile picture
0-item
1-item

スマート コントラクトの概念は 90 年代にさかのぼりますが、イーサリアムは、その可能性を認識し、その実装によってサードパーティの必要性を排除した最初のプラットフォームでした。


イーサリアムが注目を集める中、スマート コントラクト市場はますます勢いを増しており、 2030 年までに 83 億米ドル相当の市場規模に成長すると推定されています。明らかに、いくつかの業界のプロジェクトでスマート コントラクトが支持されているため、この需要の増加を考えると、スマート コントラクト開発者が十分な報酬を得ていることは驚くべきことではありません。


そういえば、今週のブログ投稿では、スマート コントラクトのトピックを紹介しますが、ほとんどの Web 開発者が移行しやすい言語で、Solidity について話しています。

Remix 統合開発環境

スマート コントラクトの開発を学びたい場合、理想的な選択は、人気があり、簡単に習得でき、簡単にアクセスできる開発環境を提供する言語を選択することです。


このため、ほとんどのスマート コントラクト開発者は Solidity から始めます。Remix Integrated Development Environment は、一般的にweb3 開発の旅を始める最初のツールです。ほとんどの場合、開発環境を使用するのはこれが初めてですが、Remix IDE は一般的なブラウザーのいずれでもセットアップできるため、簡単に使用できます。


Remix IDE - デフォルト画面


基本的なレベルでは、各スマート コントラクトは、Solidity という言語で記述されているため、.sol ファイルであることに注意することが重要です。また、コントラクトをコンパイルするには、使用するバージョンを選択する必要があります。スマート コントラクトを記述してコンパイルするこれらのタスクは、スマート コントラクトをテストネットまたはメインネットにデプロイする前に実行する必要があります。


そういえば、スマート コントラクトをメインネットにデプロイする前に、テストネットでテストすることが重要です。 Remix を使用する場合、Goerli または Sepolia テストネットを使用できます。ただし、このためには、最初に Web3 ウォレットを Remix に接続する必要があります。できれば Metamask ウォレットを使用してください。


メタマスクウォレット


テストネットが何かわからない場合は、テストを通じてスマート コントラクトが現実世界で使用できるかどうかを評価しながら、偽の資金を使用してコントラクトを実行できる環境と考えてください。簡単に言えば、メインネットに展開する前にスマート コントラクトがどのように機能するかをシミュレーションしたものです。


最後に、デプロイされたすべてのスマート コントラクトは一意のアドレスによって識別されることを理解する必要があります。もちろん、Remix で利用できるダミーのユーザー アカウントを使用して、スマート コントラクトに資金を出し入れできます。また、最初のスマート コントラクトを作成して実行するときに、ガス料金の支払いと、アカウントからどのように差し引かれるのかについても、できる限りのことを学ぶ必要があります。

Remix IDE を使用するための最初のステップ

ここで、Remix IDE を使用して最初のスマート コントラクトを記述してコンパイルする場合は、アイコン パネルに 4 つのアイコンがあり、使用方法を習得する必要があります。


アイコンパネル


これらの 4 つのアイコンはそれぞれ、ワークスペースの使用方法に関するさまざまな機能を表しています。

  1. ファイルエクスプローラー
  2. ファイル内を検索
  3. Solidity コンパイラ
  4. トランザクションのデプロイと実行


[ファイル エクスプローラー] を選択すると、以下に示すように、既定のワークスペースが表示されます。

デフォルトのワークスペース


ここで、フォルダーと Solidity ファイルを作成、変更、および削除できるはずです。ファイルをワークスペースにアップロードしたり、Github Gist に追加したりすることもできます。


パネルの 2 番目のアイコンには [ファイル内を検索] というラベルが付けられており、それを実行できます。この場合、「自動販売機」という検索語を探しており、その結果が下に表示されます。


ファイル内を検索


Solidity コンパイラ オプションを選択すると、次のような画面が表示されます。

Solidity コンパイラ


ここでは、上記のように、青いボタンを押す前に、コンパイルするコンパイラのバージョンとコントラクトを選択できます。


パネルの最後のアイコンである Deploy & Run Transactions については、このシリーズの次のブログ投稿でそのアイコンの使用方法について説明します。

初めてのソリディティ コントラクトの操作

現在、人気のあるスマート コントラクト言語の多くは、経験豊富な開発者の間ですでに人気のある言語である JavaScript、Python、Rust に似た構文を持っています。


それでも際立っているのは、イーサリアム プラットフォームが均等に開発者を雇用し続けているため、Solidity です。この言語を使用した自動販売機のスマート コントラクトの実装から旅を始めるのが最善です。自動販売機のスマート コントラクト コードは、このEthereum Web ページからコピーできます。


自動販売機をご存知ですか?


自動販売機の動作は、スマート コントラクトの機能と非常によく似ていることを指摘しておく必要があります。実際、自動販売機のスマート コントラクトでわかるように、「補充」と「購入」の 2 つの方法は、自動販売機の所有者とその購入者が実際に実行するアクションを再現します。


次に、[ファイル エクスプローラー] アイコンを選択してワークスペースに移動します。以下に示すように、[Create New File] アイコンを使用して新しい .sol ファイルを開きます。


新規ファイルの作成アイコン


次に、以下に示すように、自動販売機のスマート コントラクト コードを SPDX-License-Identifier と共にそのファイルに貼り付けます。

「自動販売機」のスマートコントラクト


この後、「pragma」ステートメントで選択したコンパイラ バージョンに基づいて、Remix で最初のスマート コントラクトをコンパイルします。もちろん、エラーのデバッグもこのプロセスの一部になります。

Remix で最初の Solidity スマート コントラクトをコンパイルする

既定のワークスペースの .sol ファイルにスマート コントラクト コードを追加したら、次のステップはコードをデバッグすることです。エラーゼロの結果として、テストネットにデプロイする前にスマート コントラクトをコンパイルします。


始める前に、Ctrl + S キーボード ショートカットでスマート コントラクトをコンパイルします。アイコン パネルの Solidity Compiler オプションに緑色のチェック マークが付いていれば、コードをデプロイする準備ができています。


コンパイル成功 (緑の目盛り付き)


もちろん、すべてが計画どおりに進むわけではありません。ほとんどの場合、記述したコードのコンパイルを成功させる前に、エラーを解決する必要があります。 Solidity Compiler アイコンは次のようになります。「1」はコード内のエラー数を示します。


コンパイルの失敗 (エラー 1 件)


一般的なエラーといえば、初心者は、以下に示すように、スマート コントラクトのプラグマ ステートメントで選択されたものと一致する適切なコンパイラ バージョンを選択できない傾向があります。


プラグマ ステートメントのエラー


これを修正するには、Solidity Compiler オプションのドロップダウン メニューにアクセスします。

コンパイラ バージョンのドロップダウン メニューの変更 (双方向矢印付き)


コンパイラのバージョンを「0.8.7+commit.e28d00a7」に変更すると、次の結果が得られます。

pragma文のように0.8.7版に変更


もう 1 つの一般的なエラーには、「cupcakeBalances」マッピングに関連するものなど、構文エラーが含まれます。


構文エラー: そのようなマッピングは以前に宣言されていませんよね?


まだ気づいていない場合は、赤いボックスで囲まれた赤い感嘆符は、エラーのあるステートメントを示しています。この場合、「k」を追加してタイプミスを修正し、Ctrl + S を押すと、その記号は消えます。


タイプミスを修正した後、エラーは解決されました


これら 2 つの単純なエラーを解決すると、Solidity Compiler アイコンとともに緑色のチェック マークが表示されます。明らかに、最初のスマート コントラクトが正常にコンパイルされました。


スマート コントラクトを Testnet にデプロイするときが来ましたが、これについては今後のブログ記事で取り上げます。


とはいえ、Web3 開発についてさらに学び、スキルを磨くために、開発者中心のメタバースを構築しています。


Lumos メタバース ホワイトリストに登録して排他的アクセスを取得: