【個人備忘】実践スマートコントラクト開発つまづきメモ
筆者情報
Reactちょっと触ったことある
→それ関連でjsちょっとわかるレベル
非エンジニア
OS : Mac monterey 12.2.1
インストール済み諸々メモ
Homebrew
nodejs
git(githubもベーシックな使い方は把握している)
p34 Parityインストールできないんじゃ!
bash <(curl https://get.parity.io -L)
色々検索してみて、githubのOpenEthereumが良いと出てきたが、それでもなぜかできず
とりあえず how to install parity でググる
で、結果としてhomebrew を使ってインストールができた
P70
import "openzeppelin-solidity/contracts/ownership/Ownable.sol";
これ謎にエラー起きた。
簡単に言うとそんなファイル無いぞ的なやつ。
でも、おかしいのが npm installも本の記載通りにやっていること。
で調査した結果、以下2つが原因だとわかった
①openzepplinのバージョンの問題なのか今は若干導入の仕方が違う
↑ここにnpm installの最新verのコマンドが書いてある
npm install @openzeppelin/contracts
その上で、
ここにて、Ownable.solのパスが書いてあるimport "@openzeppelin/contracts/access/Ownable.sol";
まずは公式Doc通りに対応
②そもそもnpm initしてない
npmコマンドって、自分も知識ないけど、パッケージマネージャコマンドであって、つまり
プロジェクト内で導入しているいろんなツールのバージョン管理的なやつのはずなのに、
packagejsonも無いし、あのopenzeppelinはどこにインストールされてたんだろうと。
※今までReact開発の勉強で、create-react-app使ってプロジェクト作ると、packagejsonは絶対作成されるし(当たり前だけど)、今回はなぜか作成されていない→そもそもただフォルダ切っただけじゃね?ということに気づいた。
つまり、nodejsを記載通りにインストールしたは良いし、greeterというアプリ構築用のフォルダも作ったのに、プロジェクトとして認識させていなかったみたいな。
なので、急いで npm init 実施その後openzepplin再度インストール。
エラーなくなった!
↑試してないけど、そもそも①は原因ではなく、②のみが原因な気がしてきた
P80
truffle migrate --network development
エラーが起きた
そんなネットワーク無いぞ、確認しろみたいなやつ
で、GanacheのRPCサーバー項目確認したら、truffle-config.jsのdevelopmentで指定しているポート番号と差分があったから、Ganache側で指定しているポート番号に直したら、解決した
P83
Goerli Faucetのサイト行っても、インターナルサーバーエラーでもらえない
だから、色々調べたらこのサイトに辿り着いた
多分Botの大量Faucet申請を防ぐために、簡単な認証を導入していて、
Twitterなり、Facebookなりで、自分のテストネットにつながってるウォレットのアドレス(要はガス代を受け取りたいアドレス)を投稿して、そのリンクを貼り付けることで、申請ができる
少し待てば、ガス代が貰える