Hardhatを使用したスマートコントラクトのデプロイ
このチュートリアルでは、Hardhat、Hardhat Ignition、およびTypeScriptを使用してStatus Networkテストネットにスマートコントラクトをデプロイする手順を説明します。
前提条件
開始する前に、以下が必要です:
- Node.jsとnpm: 公式Node.jsウェブサイトからダウンロードしてインスト ール
- Ethereumウォレット: Status Networkテストネット用のプライベートキーを持つMetaMaskまたは他のウォレット
- テストネットETH: Status NetworkテストネットのETHが必要です
- Status NetworkテストネットのETHはフォーセットから入手できます
- 基本知識: Solidity、Hardhat、コマンドラインの基礎知識
達成目標
- TypeScriptベースのHardhatプロジェクトの初期化
- 基本的なEthereumスマートコントラクトの作成
- Status Networkテストネットデプロイ用のHardhatの設定
- Hardhat Ignitionを使用したスマートコントラクトのデプロイ
手順
1. HardhatのTypeScriptプロジェクトの初期化
まず、プロジェクトを作成し設定します:
mkdir my-hardhat-project && cd my-hardhat-project
npm init -y
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox dotenv
npx hardhat init
プロンプトが表示されたら、「Create a TypeScript project」を選択してTypeScriptベースのHardhatプロジェクトを設定します。
環境変数を設定します:
# .envファイルを作成
touch .env
# プライベートキーを追加(このファイルは絶対にコミットしないでください!)
echo "PRIVATE_KEY=your_private_key_here" >> .env
2. スマートコントラクトの作成
contracts/HelloWorld.solを作成します:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract HelloWorld {
string public greet = "Hello, Status Network!";
function setGreet(string memory _greet) public {
greet = _greet;
}
function getGreet() public view returns (string memory) {
return greet;
}
}
3. Status Network用のHardhatの設定
hardhat.config.tsを更新します:
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
import * as dotenv from "dotenv";
dotenv.config();
const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
const config: HardhatUserConfig = {
solidity: "0.8.24",
networks: {
statusTestnet: {
url: "https://public.sepolia.rpc.status.network",
chainId: 1660990954,
accounts: [PRIVATE_KEY],
},
},
};
export default config;