Solidityを使ってHello Worldを作成してみましょう
SolidityでHello World!
前提条件
・Hardhat デフォルト・フォルダ構成
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と入力して実行します。
上記のように表示され、20個のアドレスがプライベートキーと共に作成されます。
これでイーサリアムの起動は完了です。
スマートコントラクトを作成
コントラクト名HelloWorldと定義し、getファンクションでHello World!と返すだけの非常に簡単なスマートコントラクトを作成します。
コードは下記の通り。
1 2 3 4 5 6 7 8 9 10 |
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.4.16 <0.9.0; // コントラクト名 HelloWorldと定義 contract HelloWorld { string data = "Hello World!"; // "Hello World"を返すgetファンクション function get() public view returns (string memory) { return data; } } |
contractsフォルダ配下にhelloworld.solファイルを作成し、上記コードをコピーして保存します。
スマートコントラクトをコンパイル
作成したスマートコントラクト(helloworld.sol)をコンパイルします。
npx hardhat compileと入力し、Compiled 1 Solidity file successfullyと表示されることを確認
スマートコントラクトをDeployするための実行ファイル作成
作成したスマートコントラクトをDeployするための実行ファイルを作成します。
スクリプトの内容は下記の通り。
- hardhatのモジュールを読み込み、hardhat ethers.jsプラグインのgetContractFactory関数を使用してHelloWorldコントラクトを呼び出し
- 呼び出したHelloWorldコントラクトをデプロイ
- HelloWorldコントラクトのgetファンクションを呼び出し、変数greetingに格納
- console.logで取得した変数を表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
const hardhat = require("hardhat"); async function main() { //hardhat ethers.jsプラグインのgetContractFactory関数でHelloWorldコントラクトを取得し、Contractに格納 const Contract = await hardhat.ethers.getContractFactory("HelloWorld"); //取得したHelloWorldコントラクトをデプロイ const contract = await Contract.deploy(); //HelloWorldコントラクトのGetファンクションを呼び出し,greetingに格納 greeting = await contract.get() //コンソールで取得した値を表示 console.log(greeting); } main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); }); |
スクリプトフォルダにhelloworld.jsというファイルを作成し、上記コードをコピーして保存。
作成したスクリプトでスマートコントラクトを呼び出し、デプロイ
helloworld.jsを実行してみましょう。
Hello World!と表示されれば正常にスマートコントラクトをDeploy出来ていることになります。