Open8

【個人備忘】実践スマートコントラクト開発つまづきメモ

EverydayNewbieEverydayNewbie

筆者情報
Reactちょっと触ったことある
→それ関連でjsちょっとわかるレベル
非エンジニア

EverydayNewbieEverydayNewbie

p34 Parityインストールできないんじゃ!

bash <(curl https://get.parity.io -L)

色々検索してみて、githubのOpenEthereumが良いと出てきたが、それでもなぜかできず
とりあえず how to install parity でググる

で、結果としてhomebrew を使ってインストールができた
https://github.com/paritytech/homebrew-paritytech

EverydayNewbieEverydayNewbie

P70

import "openzeppelin-solidity/contracts/ownership/Ownable.sol";

これ謎にエラー起きた。
簡単に言うとそんなファイル無いぞ的なやつ。

でも、おかしいのが npm installも本の記載通りにやっていること。

で調査した結果、以下2つが原因だとわかった
①openzepplinのバージョンの問題なのか今は若干導入の仕方が違う
https://docs.openzeppelin.com/contracts/4.x/
↑ここにnpm installの最新verのコマンドが書いてある

npm install @openzeppelin/contracts

その上で、
https://docs.openzeppelin.com/contracts/4.x/api/access
ここにて、Ownable.solのパスが書いてある

import "@openzeppelin/contracts/access/Ownable.sol";

まずは公式Doc通りに対応

②そもそもnpm initしてない
npmコマンドって、自分も知識ないけど、パッケージマネージャコマンドであって、つまり
プロジェクト内で導入しているいろんなツールのバージョン管理的なやつのはずなのに、
packagejsonも無いし、あのopenzeppelinはどこにインストールされてたんだろうと。
※今までReact開発の勉強で、create-react-app使ってプロジェクト作ると、packagejsonは絶対作成されるし(当たり前だけど)、今回はなぜか作成されていない→そもそもただフォルダ切っただけじゃね?ということに気づいた。

つまり、nodejsを記載通りにインストールしたは良いし、greeterというアプリ構築用のフォルダも作ったのに、プロジェクトとして認識させていなかったみたいな。

なので、急いで npm init 実施その後openzepplin再度インストール。

エラーなくなった!

EverydayNewbieEverydayNewbie

↑試してないけど、そもそも①は原因ではなく、②のみが原因な気がしてきた

EverydayNewbieEverydayNewbie

P80

truffle migrate --network development

エラーが起きた
そんなネットワーク無いぞ、確認しろみたいなやつ

で、GanacheのRPCサーバー項目確認したら、truffle-config.jsのdevelopmentで指定しているポート番号と差分があったから、Ganache側で指定しているポート番号に直したら、解決した

EverydayNewbieEverydayNewbie

P83
Goerli Faucetのサイト行っても、インターナルサーバーエラーでもらえない

だから、色々調べたらこのサイトに辿り着いた
https://goerli-faucet.mudit.blog/

多分Botの大量Faucet申請を防ぐために、簡単な認証を導入していて、
Twitterなり、Facebookなりで、自分のテストネットにつながってるウォレットのアドレス(要はガス代を受け取りたいアドレス)を投稿して、そのリンクを貼り付けることで、申請ができる

少し待てば、ガス代が貰える