概要
hardhatで開発する上で事前に目を通した方がいい内容をまとめてみました。
もしよければ参考にしてみてください
hardhat-ethers
コントラクトをデプロイする際に使用します。
デプロイ例
const MyContractFactory = await hre.ethers.getContractFactory("MyContract");
const myContract = await MyContract.deploy();
const portal = await myContract.deployed()
公式ドキュメント: https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-ethers#hardhat-ethers
nomiclabs/hardhat-waffle
コントラクトのテストをする際に使用するパッケージです。
公式ドキュメント: https://getwaffle.io/
OpenZeppelin
solidityで安全なスマートコントラクトの実装を提供するライブラリです。
開発者は独自のスマートコントラクトを構築する際に、既存の検証済みのコンポーネントを使用できます。ERC20、ERC721、アクセス制御など、多くの既存の機能があります。
有名なものだと、ownable あたりが有名だと思います。
下記コードは、オーナーのみしか実行できないようにする機能を実装したものです。
例
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyContract is Ownable {
uint256 private _data;
// オーナーのみが実行可能な関数
function setData(uint256 newData) public onlyOwner {
_data = newData;
}
// 誰でも実行可能
function getData() public view returns (uint256) {
return _data;
}
}
公式ドキュメント: https://docs.openzeppelin.com/
参考になるコードや、パッケージは追加で知ったらこの記事に追加予定です。