導入
最後に、これまで学んだ点を1枚の絵につなげます。Solidity のコントラクトが、実際のアプリ(DApp = 分散型アプリ)の中でどう位置づくのかを俯瞰して、次の学習につなげましょう。
説明
DApp は「ブラウザ側(フロントエンド)」と「ブロックチェーン側(コントラクト)」でできています。
graph TB
subgraph local["ユーザーの手元"]
UI[Webアプリ<br/>フロントエンド]
W[ウォレット<br/>MetaMask]
end
subgraph chain["ブロックチェーン"]
C["スマートコントラクト<br/>(あなたのSolidity)"]
L[(台帳・状態)]
E[(イベントログ)]
end
UI -- 署名を依頼 --> W
W -- トランザクション送信 --> C
C -- 状態を更新 --> L
C -- emit --> E
E -- 購読して画面更新 --> UI
- ウォレット(MetaMask など) … 秘密鍵を管理し、トランザクションに署名する。
msg.senderの正体はここ。 - フロントエンド … ボタン操作をトランザクションに変えてウォレットに渡し、
eventを購読して表示を更新する(ethers.js / web3.js などのライブラリを使う)。 - コントラクト … あなたが書いた Solidity。状態を持ち、ルールどおりに実行し、イベントを出す。
このコースで学んだこと――ブロックチェーンの仕組み → 型とデータ → require と送金 → トークンとセキュリティ――は、すべてこの図の「コントラクト」の中身です。
次の一歩として、こんな道があります。
- Remix IDE でこのコースのコードを実際にデプロイして動かす。
- OpenZeppelin の実装を読み、
Ownable/ERC20/ReentrancyGuardがどう書かれているか確かめる。 - Hardhat / Foundry といった開発フレームワークで、テストを書きながら開発する。
- テストネット(Sepolia など)に本物同様にデプロイしてみる。
やってみよう
まずは Remix で、レッスン6の HelloStorage やレッスン22の MiniToken を貼り付けてデプロイし、値の書き込み・読み出し・送金を自分の手で体験してみてください。ブラウザだけで、あなたのコードが「動くお金のルール」になる瞬間を味わえます。お疲れさまでした!