前提条件: ノード バージョン > 12、npm、git などをインストールします。
1. フォルダーを作成し、webstorm などの使い慣れたツールで開きます。
2. 開いた後、「npm init -y」を実行すると、出力されます。コンソール上:
{ "名前": "76-learn-hardhat"、"バージョン": "1.0.0"、"説明": ""、"メイン": "index.js"、"スクリプト": { "テスト": " echo “エラー: テストが指定されていません” && 終了 1” }, “キーワード”: [], “作成者”: “”, “ライセンス”: “ISC” }
3. npm install --save-dev hardware を実行し、成功すると次のようになります。
注: エラーの解決策: npm install --save-dev “@nomiclabs/hardhat-ethers@^2.0.0” “ethereum-waffle@^3.2.0” “ethers@^5.0.0”
4. これにより、ハードハット プロジェクトをインストールした後、npx (npm サブコマンド) を使用してnpx ハードハットを実行およびテストできます。成功を証明するために次の画像がポップアップ表示されます。5
. この期間中、いくつかのプラグインをインストールするように求められます。 6.利用
可能なコマンド npxhardhat --help 7. コントラクトのコンパイルに使用 npxhardhatcompile
8. 次に、小さなトークン コントラクトを書き換えます
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;
import "hardhat/console.sol";
contract Token {
string public name='my token';
string public symbol = 'Mtn';
uint256 public total = 100000;
address public owner;
mapping(address =>uint) balances;
constructor() {
owner = msg.sender;
balances[msg.sender] =total;
}
function tranfer(address to,uint amount) external{
balances[msg.sender] -=amount;
balances[to] +=amount;
}
function getamount(address account) view external returns(uint a){
a = balances[account];
}
}
9. コンパイル後、テスト スクリプトを作成します。
const {
expect } = require("chai");
const {
ethers } = require("hardhat");
describe("Token", function () {
let Token, token, owner,address
beforeEach(async ()=>{
Token = await ethers.getContractFactory('Token');
token = await Token.deploy();//部署
[owner,address,] = await ethers.getSigners();
})
describe('test',()=>{
it('所有者', async ()=> {
expect(await token.owner()).to.equal(owner.address);
})
})
});
10. コマンドを実行してテストします: npx hardware test
注: 初めて実行するときに次のエラーが報告される場合があります: エラー: モジュール 'chai' が見つかりません 解決策: npm install
–save-dev chai
以下に示すように、テストは正常に実行されます。