クリック二回、の裏に隠されていたもの
まずは土台づくり
きのうは記事の完コピで、しかもRemixというなんだかとても便利なものを使ったから、いわばただの作業だったわけだけれど、今日からはもうちょっと頭を使って悩んでいくことにする。
といったって、まずはUNCHAINの作業をおさらいするだけなのだけれど、いったん違う視点を手に入れたことで、UNCHAINで黙々と繰り返してきたことに新しい理解が生まれるんじゃなかろうか、と、ちょっと期待する。
terminalで
- mkdir Voting-dApp
- cd Voting-dApp
- mkdir my-voting-dapp
- cd my-voting-dapp
- npm init -y
- npm install --save-dev hardhat
- npx hardhat
- npx hardhat accounts
- npx hardhat compile
- npx hardhat test
この辺までが、きのうRemixが一回目のクリック以前にやってくれていたことかな。つまりRemixの裏側にはhardhatに相当するものが隠れていたということだろう。
自動的に作成されたたくさんのファイルのうち、要らないものをちょっと整理して、メインのsol fileをつくる。そしてようやく4つの関数を書き込む。
ここからはVSCodeで作業。記事を写しただけのファイルではエラーが出る。新しく加えるのは
- // SPDX-License-Indentifier: UNLICENCED
- import "hardhat/console.sol";
1行目は、コメントアウトされているのに機能する不思議な呪文だ。SPDXライセンス識別子というらしいが、具体的に何をしているのかよくわからない。が、それはなぜ朝にはおはようというの、というぐらいの疑問だと判断して先に行く。
2行目はもうちょとわかりやすい。
- scripts 内に run.js をつくる。
これはlocal環境でテストするためのファイルだ。
まずはUNCHAINの第一課題で使った一番シンプルなrun.jsをコピーして、しげしげと読む。当然のことながら、まずは「名前」の違ってるところを差し替える。差し替えるだけで意味をなすかどうかまだわからないけれども、そうする以外に手立てがない。実はきのうのRemixに類似のファイルができてないか探してみたけれど、見つからなかった。だからあとは、トライ&エラーで突破するしかない。ところが
Compiling 1 file with 0.8.4
Solidity compilation finished successfully
Here is my first smart contract!
WavePortal address: 0x....
あら、できた。
でも、これはぬか喜びでしょうね。ここから関数に合わせた各種書き換えが出てきます。
先は長いよ〜、でも今日はここまで。
次回以降、理解もせずに書き殴ってきたコードに逆襲されることでしょう
前の記事はこちら
続きはこちら