lesson-2_フロントエンドの構築
ウェブフロントエンドページを作成する
🛠 プロジェクトの生成
ChainIDEの画面下にある、ターミナルパネルを操作していきます。
まずは「Sandbox」を選択し、「Click to add Sandbox +」をクリックします。
Sandboxが立ち上がったことを確認しましょう。
node
のバージョンが18.17.0以上になっていることを確認します。
node -v
それより古かった場合、安定バージョンをインストールして、新しくインストールしたバージョンを確認します。
# Node.js バージョン管理のため n をインストール
npm install -g n
# Node.js を安定バージョンをインストールして有効にする
n stable
# バージョンが18.17.0以上になっているか確認
node -v
プロジェクトのルートディレクトリにいることを確認して、下記のコマンドを実行します。
yarn create next-app
プロジェクト名はclient
とし、以下のように選択肢を選んでプロジェクトを作成しましょう。
✔ What is your project named? … client
✔ Would you like to use TypeScript? … [Yes]
✔ Would you like to use ESLint? … [Yes]
✔ Would you like to use Tailwind CSS? … [No]
✔ Would you like to use `src/` directory? … [No]
✔ Would you like to use App Router? (recommended) … [No]
✔ Would you like to customize the default import alias? … [No]
client/
が作成されたことを確認しましょう。
clientフォルダに移動して、必要なパッケージをインストールします。
cd client
yarn add @metamask/providers@^13.0.0 ethers@^5
ファイルの整理をしましょう。
pages/api/
を削除します。
それでは、ファイルの更新をしていきます。
styles/global.css
を下記のコードで上書きしましょう。
html,
body {
width: 100%;
height: 100%;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
styles/Home.module.css
を下記のコードで上書きしましょう。
.container {
width: 100%;
max-width: 500px;
}
.container label {
font-size: 1.5rem;
margin-right: 0.5rem;
}
.container input {
width: 70%;
font-size: 1.25rem;
padding: 10px;
border-radius: 5px;
}
.container button {
width: 100%;
font-size: 1.25rem;
padding: 12px 20px;
margin-right: 0.5rem;
border-radius: 5px;
}
.container button:hover {
background-color: #ddd;
}
clientフォルダの中に、@types/global.d.ts
を作成します。
下記のコードを記述しましょう。
import { MetaMaskInpageProvider } from "@metamask/providers";
declare global {
interface Window {
ethereum: MetaMaskInpageProvider;
}
}