Hardhat + TSでコントラクトをMumbaiにデプロイするうううう


ゴリゴリする前にお茶でもどうぞ

巷で流行のスマコンのデプロイをやってみました。(ちなみに巷ってどこですか?)
hardhatを使って、contractをmumbaiにデプロイしたので備忘録でも書いてみました。
今更ながら備忘録って忘却に備える記録って書くんですね。
でも記録という単語に忘却に備える意味って含まれていないんでしょうか。。。
備忘で括ると、備忘(1+記録)= 2備忘?

Let's Happy Hacking!!!!

この辺りを参考にさせていただきました

https://hardhat.org/guides/typescript.html
https://cam-inc.co.jp/p/techblog/603394496142509097

お品書き

  • Prerequirement(install周り)
  • Let's init!!
  • Let's edit hardhat.config
  • Let's deployyyyyy!

Let's happy hacking!!

Prerequirement(install周り)

大体必要なものは以下の感じです。

  • hardhat
    npm i -D hardhat
    hardhatのinstallに少し時間がかかります。
    IKEAに行くよりかは時間が掛からないので大丈夫です。

Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software
(https://hardhat.org/getting-started/#overview)

だそうなので、ちょっとだけ時間がかかるのは仕方ないですね。
ちなみに、僕はTSが使えつつ、ロゴのキャラクターが可愛いのでhardhatを選びましたが他にも色々あるのでおすすめあれば教えてください。

Alchemy
Chainstack
QuickNode
Remix
Truffle
Hardhat
Replit

  • @openzeppelin/contracts
    npm i -D @openzeppelin/contracts
    こちらはcontractsだけとあって一瞬です、瞬殺のコ...ですね。

Let's init!!

これだけです。
npx hardhat
対話形式でちょこっと聞かれますが、お好きなようにどうぞ!!
さすれば神が導いてくれるでしょう!
そしてあなたの望みにきっと応えてくれるでしょう!!
さあ、御言葉を実行するのです!!

Let's edit hardhat.config

さて、ここらではアカウント情報とデプロイ先のネットワークを定義してあげましょう。
hardhat神も万能ではないですからね。
networksの中の第一プロパティとでも表現すればいいのでしょうか。。。そこをお好きなネットワーク名に変更するのが唯一の引っ掛かりポイントですかね。。。そこ以外はデフォです。
そのほかのプロパティ名に関しては、ちゃんと調べていかないといけないですね。。

const config: HardhatUserConfig = {
  solidity: "0.8.4",
  networks: {
    matic: {
      url: process.env.MUMBAI_RPC || "",
      accounts:
        process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    },
  },
  gasReporter: {
    enabled: process.env.REPORT_GAS !== undefined,
    currency: "USD",
  },
  etherscan: {
    apiKey: process.env.ETHERSCAN_API_KEY,
  },
};

Let's deployyyyyy!

ここまでくれば後はbuild&deploy!!!
以下のようにありがたき御言葉を実行しました!
build: npx hardhat compile
deploy: npx hardhat run scripts/deploy.ts --network matic

deploy時のtsの部分や、--network matic の部分はお好きなように切り替えてくださいね!!

いい夢みろよ!!

意外に簡単でしたね。めちゃめちゃ整えられた道に従ってコマンド打つだけでしたからね。。。
今後は、スマコンとか、今日の宿題(hardhat.configを調べる)とか、環境変数とかってどうするんだとか、その辺手を動かして行きたいですね。
おっっっと、いっけね、もうこんな時間か。ということでこの辺でドロンさせていただきます!!
いい夢みろよ!!!