lesson-2_Vercelにアプリをデプロイしよう
🙉 GitHub に 関する注意点
GitHub にコントラクト( packages/contract/
)のコードをアップロードする際は、秘密鍵を含むハードハット構成ファイルをリポジトリにアップロードしないよう注意しましょう。
秘密鍵などのファイルを隠すために、ターミナルでpackages/contract
ディレクトリに移動して、下記を実行してください。
yarn add --dev dotenv
dotenv
モジュールに関する詳しい説明は、こちらを参照してください。
dotenv
をインストールしたら、.env
ファイルを作成します。
ファイルの先頭に.
がついているファイルは、「不可視ファイル」です。
.
がついているファイルやフォルダはその名の通り、見ることができないので、「隠しファイル」「隠しフォルダ」とも呼ばれます。
操作されては困るファイルについては、このように「不可視」の属性を持たせて、一般の人が触れられないようにします。
packages/contract
ディレクトリ直下に、.env
ファイルを作成します。
packages/
└── contract/
+ └── .env
そして、.env
ファイルを下記のように更新します。
PRIVATE_KEY = hardhat.config.jsにある秘密鍵(accounts)を貼り付ける
STAGING_ALCHEMY_KEY = hardhat.config.js内にあるAlchemyのyURLを貼り付ける
PROD_ALCHEMY_KEY = イーサリアムメインネットにデプロイする際に使用するAlchemyのURLを貼り付ける(今は何も貼り付ける必要はありません)
私の.env
は、下記のようになります。
// .env
PRIVATE_KEY = 0x...
STAGING_ALCHEMY_KEY = https://...
.env
を更新したら、 hardhat.config.js
ファイルを次のように更新してください。
// hardhat.config.js
require("@nomicfoundation/hardhat-toolbox");
require("dotenv").config();
const { STAGING_ALCHEMY_KEY, PRIVATE_KEY } = process.env;
module.exports = {
solidity: "0.8.18",
defaultNetwork: "hardhat",
networks: {
sepolia: {
url: STAGING_ALCHEMY_KEY || "",
accounts: PRIVATE_KEY ? [PRIVATE_KEY] : [],
},
},
};
最後に .gitignore
に.env
が含まれていることを確認しましょう。
cat .gitignore
をターミナル上で実行します。
下記のような結果が表示されていれば成功です。
node_modules
.env
coverage
coverage.json
typechain
typechain-types
#Hardhat files
cache
artifacts
これで、GitHubにあなたの秘密鍵をアップロードせずに、GitHubにコントラクトのコードをアップロードできます。
🌎 IPFS について
IPFS は誰にも所有されていない分散型データストレージシステムです。