環境構築
以下を参考にhardhatを導入した。
https://hardhat.org/hardhat-runner/docs/getting-started
このリポジトリはすでに導入済みなので、下記でパッケージをインストールする。
npm ci
コントラクトのローカルネットワークへのデプロイ手順
ノードを立ち上げ、scripts/deploy.tsを実行してコントラクトをデプロイする。
ノードの立ち上げ
$ npx hardhat node
デプロイ
npx hardhat run scripts/deploy.ts --network localhost
デモデータの作成
立候補データ
複数のアカウントが現在開催されているpollに立候補します。
npx hardhat run scripts/demo/candidate.ts --network localhost
GuerliもしくはMumbaiへのデプロイ
.envファイルを作成して適切な値を入れたのち、以下のコマンドでデプロイを実行
export PRIVATE_KEY=<ウォレットの秘密鍵を入れる>
# Goerliへのデプロイ
npx hardhat run scripts/deploy.ts --network goerli
# Mumbaiへのデプロイ
npx hardhat run scripts/deploy.ts --network maticmum
# Polygon Mainnetへのデプロイ
npx hardhat run scripts/deploy.ts --network polygon
EtherscanでVerifyする
Etherscan上でソースコードを確認できるようになる
例(ネットワーク名、コントラクトアドレス、初期値は適切に変更すること)
npx hardhat verify --contract contracts/DAOToken.sol:DAOToken --network polygon 0x5427aC1c36c560D602D41dD0F2609DB296dd3CF9 Englister ENG 0
npx hardhat verify --contract contracts/DAOTreasury.sol:DAOTreasury --network polygon 0x80CF3dEdf0F03441bd47037Dfa8640eF9f35626a
npx hardhat verify --contract contracts/ContributionPoll.sol:ContributionPoll --network polygon 0x7674214b5daedb9069D55e6F6C47F2c936E47d1B
npx hardhat verify --contract contracts/TokenSupplySystem.sol:TokenSupplySystem --network polygon 0x77F78729699342EdB653553525570aE2c4F6B98B
npx hardhat verify --contract contracts/DAONFT.sol:DAONFT --network polygon 0x77F78729699342EdB653553525570aE2c4F6B98B EnglisterDAOMembership EDM
npx hardhat verify --contract contracts/DAONFTCrowdSale.sol:DAONFTCrowdSale --network polygon 0x77F78729699342EdB653553525570aE2c4F6B98B
Polygonへのデプロイ
https://docs.polygon.technology/docs/develop/hardhat/ を参考にテストネットにデプロイを行なった
mumbai testnetをmetamaskに追加
https://rpc-mumbai.maticvigil.com/ をメタマスクに追加する。
mumbai testnetのMATICを取得
デプロイ
npx hardhat run scripts/deploy.ts --network matic