[Hardhat]SolidityでHello Worldのスマートコントラクトを作成

プログラミング

Solidityを使ってHello Worldを作成してみましょう

SolidityでHello World!

前提条件

Hardhat デフォルト・フォルダ構成

hardhat
├── README.md
├── contracts
│ └── Greeter.sol # コントラクト
├── hardhat.config.js # 設定ファイル
├── package-lock.json
├── package.json
├── scripts
│ └── sample-script.js # デプロイ用のスクリプト
└── test
└── sample-test.js # テストコード

Hardhatについては下記記事を参照ください。

Ethereum(イーサリアム)のDApps開発環境Hardhatのインストール手順
Ethereum(イーサリアム)のローカル開発環境であるHardhatのインストール手順を記載します。 Hardhatとは? Hardhatは、Solidityなどで開発したイーサリアムのスマートコントラクト、Dappsをコ...

・Node.js,NPM

Node.jsについては下記記事を参照ください。

Node.jsとNPM(管理パッケージ)のインストール
Node.jsとNPMのインストール方法について記載します。 Node.jsとNPMとは Node.jsは、 JavaScript で記述されたプログラムを実行するために必要なランタイム環境のことです。 サーバー上でJav...

・テキストエディタ(Visual Studio Code等)

イーサリアム ブロックチェーン起動(Hardhatのローカル環境)

Hardhatのイーサリアムブロックチェーンを起動します。

hardhatフォルダにて,npx hardhat nodeと入力して実行します。

npx hardhat node
Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/
Accounts
========
WARNING: These accounts, and their private keys, are publicly known.
Any funds sent to them on Mainnet or any other live network WILL BE LOST.
Account #0: 0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (10000 ETH)
Private Key: 0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

上記のように表示され、20個のアドレスがプライベートキーと共に作成されます。

これでイーサリアムの起動は完了です。

スマートコントラクトを作成

コントラクト名HelloWorldと定義し、getファンクションでHello World!と返すだけの非常に簡単なスマートコントラクトを作成します。

コードは下記の通り。

contractsフォルダ配下にhelloworld.solファイルを作成し、上記コードをコピーして保存します。

スマートコントラクトをコンパイル

作成したスマートコントラクト(helloworld.sol)をコンパイルします。

npx hardhat compileと入力し、Compiled 1 Solidity file successfullyと表示されることを確認

npx hardhat compile
Compiled 1 Solidity file successfully

スマートコントラクトをDeployするための実行ファイル作成

作成したスマートコントラクトをDeployするための実行ファイルを作成します。

スクリプトの内容は下記の通り。

  1. hardhatのモジュールを読み込み、hardhat ethers.jsプラグインのgetContractFactory関数を使用してHelloWorldコントラクトを呼び出し
  2. 呼び出したHelloWorldコントラクトをデプロイ
  3. HelloWorldコントラクトのgetファンクションを呼び出し、変数greetingに格納
  4. console.logで取得した変数を表示

スクリプトフォルダにhelloworld.jsというファイルを作成し、上記コードをコピーして保存。

作成したスクリプトでスマートコントラクトを呼び出し、デプロイ

helloworld.jsを実行してみましょう。

npx hardhat run --network localhost scripts/helloworld.js
Hello World!

Hello World!と表示されれば正常にスマートコントラクトをDeploy出来ていることになります。

タイトルとURLをコピーしました